summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/ntddpcm.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/ntddpcm.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/public/sdk/inc/ntddpcm.h b/public/sdk/inc/ntddpcm.h
new file mode 100644
index 000000000..0ff9a7eb6
--- /dev/null
+++ b/public/sdk/inc/ntddpcm.h
@@ -0,0 +1,161 @@
+/*++
+
+Copyright (c) 1994 Digital Equipment Corporation
+
+Module Name:
+
+ ntddpcm.h
+
+Abstract:
+
+ This is the include file that defines all constants and types for
+ accessing the PCMCIA Adapters.
+
+Author:
+
+ Jeff McLeman
+
+Revision History:
+
+--*/
+
+#ifndef _NTDDPCMH_
+#define _NTDDPCMH_
+
+//
+// Device Name - this string is the name of the device. It is the name
+// that should be passed to NtOpenFile when accessing the device.
+//
+// Note: For devices that support multiple units, it should be suffixed
+// with the Ascii representation of the unit number.
+//
+
+#define IOCTL_PCMCIA_BASE FILE_DEVICE_CONTROLLER
+
+#define DD_PCMCIA_DEVICE_NAME "\\\\.\\Pcmcia"
+
+
+//
+// IoControlCode values for this device.
+//
+// Warning: Remember that the low two bits of the code specify how the
+// buffers are passed to the driver!
+//
+
+#define IOCTL_GET_TUPLE_DATA CTL_CODE(FILE_DEVICE_CONTROLLER, 3000, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_CONFIGURE_CARD CTL_CODE(FILE_DEVICE_CONTROLLER, 3001, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_CARD_EVENT CTL_CODE(FILE_DEVICE_CONTROLLER, 3002, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_CARD_REGISTERS CTL_CODE(FILE_DEVICE_CONTROLLER, 3003, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SOCKET_INFORMATION CTL_CODE(FILE_DEVICE_CONTROLLER, 3004, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PCMCIA_CONFIGURATION CTL_CODE(FILE_DEVICE_CONTROLLER, 3005, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_OPEN_ATTRIBUTE_WINDOW CTL_CODE(FILE_DEVICE_CONTROLLER, 3006, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_CLOSE_ATTRIBUTE_WINDOW CTL_CODE(FILE_DEVICE_CONTROLLER, 3007, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+//
+// Tuple request parameters.
+//
+
+#define PCMCIA_MAX_IO_PORT_WINDOWS 2
+#define PCMCIA_MAX_MEMORY_WINDOWS 4
+
+typedef struct _TUPLE_REQUEST {
+ USHORT Socket;
+} TUPLE_REQUEST, *PTUPLE_REQUEST;
+
+typedef struct _PCMCIA_CONFIG_REQUEST {
+ USHORT Socket;
+ UCHAR ConfigureIo;
+ UCHAR ConfigurationIndex;
+
+ //
+ // Query just returns the current socket configuration.
+ //
+
+ UCHAR Query;
+
+ //
+ // Power - zero means power off the socket (i.e. remove configuration)
+ //
+
+ UCHAR Power;
+
+ //
+ // IRQ support.
+ //
+
+ UCHAR DeviceIrq;
+ UCHAR CardReadyIrq;
+
+ //
+ // I/O port support.
+ //
+
+ ULONG NumberOfIoPortRanges;
+ USHORT IoPorts[PCMCIA_MAX_IO_PORT_WINDOWS];
+ USHORT IoPortLength[PCMCIA_MAX_IO_PORT_WINDOWS];
+ USHORT IoPort16[PCMCIA_MAX_IO_PORT_WINDOWS];
+
+ //
+ // Memory window support.
+ //
+
+ ULONG NumberOfMemoryRanges;
+ ULONG HostMemoryWindow[PCMCIA_MAX_MEMORY_WINDOWS];
+ ULONG PCCARDMemoryWindow[PCMCIA_MAX_MEMORY_WINDOWS];
+ ULONG MemoryWindowLength[PCMCIA_MAX_MEMORY_WINDOWS];
+ BOOLEAN AttributeMemory[PCMCIA_MAX_MEMORY_WINDOWS];
+} PCMCIA_CONFIG_REQUEST, *PPCMCIA_CONFIG_REQUEST;
+
+#define MANUFACTURER_NAME_LENGTH 64
+#define DEVICE_IDENTIFIER_LENGTH 64
+#define DRIVER_NAME_LENGTH 32
+
+//
+// Controller types returned in socket information structure.
+//
+
+#define PcmciaIntelCompatible 0
+#define PcmciaElcController 1
+#define PcmciaCirrusLogic 2
+#define PcmciaDatabook 3
+
+typedef struct _PCMCIA_SOCKET_INFORMATION {
+
+ USHORT Socket;
+ USHORT TupleCrc;
+ UCHAR Manufacturer[MANUFACTURER_NAME_LENGTH];
+ UCHAR Identifier[DEVICE_IDENTIFIER_LENGTH];
+ UCHAR DriverName[DRIVER_NAME_LENGTH];
+ UCHAR DeviceFunctionId;
+ UCHAR ControllerType;
+ UCHAR CardInSocket;
+ UCHAR CardEnabled;
+
+} PCMCIA_SOCKET_INFORMATION, *PPCMCIA_SOCKET_INFORMATION;
+
+//
+// Structure returned to provide current configuration information
+// for pcmcia driver.
+//
+
+typedef struct _PCMCIA_CONFIGURATION {
+
+ USHORT Sockets;
+ UCHAR Reserved;
+ UCHAR ControllerType;
+ USHORT IoPortBase;
+ USHORT IoPortSize;
+ ULONG MemoryWindowPhysicalAddress;
+
+} PCMCIA_CONFIGURATION, *PPCMCIA_CONFIGURATION;
+
+#endif
+