178 lines
5.8 KiB
C
178 lines
5.8 KiB
C
/*
|
|
* ntddpcm.h PCMCIA device I/O control codes
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _NTDDPCMH_
|
|
#define _NTDDPCMH_
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Primitive data types */
|
|
#ifdef _NTDDK_
|
|
typedef ULONG MEMORY_SPACE;
|
|
#endif
|
|
|
|
/* PCMCIA device name */
|
|
#define DD_PCMCIA_DEVICE_NAME "\\\\.\\Pcmcia"
|
|
|
|
/* PCMCIA device I/O control codes */
|
|
#define IOCTL_PCMCIA_BASE FILE_DEVICE_CONTROLLER
|
|
#define IOCTL_GET_TUPLE_DATA \
|
|
CTL_CODE( IOCTL_PCMCIA_BASE, 3000, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_SOCKET_INFORMATION \
|
|
CTL_CODE( IOCTL_PCMCIA_BASE, 3004, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_PCMCIA_HIDE_DEVICE \
|
|
CTL_CODE( IOCTL_PCMCIA_BASE, 3010, METHOD_BUFFERED, FILE_WRITE_ACCESS )
|
|
#define IOCTL_PCMCIA_REVEAL_DEVICE \
|
|
CTL_CODE( IOCTL_PCMCIA_BASE, 3011, METHOD_BUFFERED, FILE_WRITE_ACCESS )
|
|
|
|
/* Name lengths */
|
|
#define MANUFACTURER_NAME_LENGTH 64
|
|
#define DEVICE_IDENTIFIER_LENGTH 64
|
|
#define DRIVER_NAME_LENGTH 32
|
|
|
|
/* PCMCIA controller type special value */
|
|
#define PcmciaInvalidControllerType 0xFFFFFFFFL
|
|
|
|
/* PCMCIA memory access types */
|
|
#ifdef _NTDDK_
|
|
#define PCMCIA_MEMORY_8BIT_ACCESS 0
|
|
#define PCMCIA_MEMORY_16BIT_ACCESS 1
|
|
#endif
|
|
|
|
/* PCMCIA VPP levels */
|
|
#ifdef _NTDDK_
|
|
#define PCMCIA_VPP_0V 0
|
|
#define PCMCIA_VPP_12V 1
|
|
#define PCMCIA_VPP_IS_VCC 2
|
|
#endif
|
|
|
|
/* PCMCIA memory spaces */
|
|
#ifdef _NTDDK_
|
|
#define PCCARD_PCI_CONFIGURATION_SPACE 0L
|
|
#define PCCARD_ATTRIBUTE_MEMORY 1L
|
|
#define PCCARD_COMMON_MEMORY 2L
|
|
#define PCCARD_ATTRIBUTE_MEMORY_INDIRECT 3L
|
|
#define PCCARD_COMMON_MEMORY_INDIRECT 4L
|
|
#define PCMCIA_CONFIG_SPACE PCCARD_ATTRIBUTE_MEMORY
|
|
#endif
|
|
|
|
/* PCMCIA socket request */
|
|
typedef struct _PCMCIA_SOCKET_REQUEST {
|
|
USHORT Socket;
|
|
} PCMCIA_SOCKET_REQUEST;
|
|
typedef PCMCIA_SOCKET_REQUEST *PPCMCIA_SOCKET_REQUEST;
|
|
|
|
/* Tuple request */
|
|
typedef struct _TUPLE_REQUEST {
|
|
USHORT Socket;
|
|
} TUPLE_REQUEST;
|
|
typedef TUPLE_REQUEST *PTUPLE_REQUEST;
|
|
|
|
/* PCMCIA controller classes */
|
|
typedef enum _PCMCIA_CONTROLLER_CLASS {
|
|
PcmciaInvalidControllerClass = -1,
|
|
PcmciaIntelCompatible = 0,
|
|
PcmciaCardBusCompatible = 1,
|
|
PcmciaElcController = 2,
|
|
PcmciaDatabook = 3,
|
|
PcmciaPciPcmciaBridge = 4,
|
|
PcmciaCirrusLogic = 5,
|
|
PcmciaTI = 6,
|
|
PcmciaTopic = 7,
|
|
PcmciaRicoh = 8,
|
|
PcmciaDatabookCB = 9,
|
|
PcmciaOpti = 10,
|
|
PcmciaTrid = 11,
|
|
PcmciaO2Micro = 12,
|
|
PcmciaNEC = 13,
|
|
PcmciaNEC_98 = 14
|
|
} PCMCIA_CONTROLLER_CLASS;
|
|
typedef PCMCIA_CONTROLLER_CLASS *PPCMCIA_CONTROLLER_CLASS;
|
|
|
|
/* PCMCIA socket information */
|
|
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 Reserved;
|
|
UCHAR CardInSocket;
|
|
UCHAR CardEnabled;
|
|
ULONG ControllerType;
|
|
} PCMCIA_SOCKET_INFORMATION;
|
|
typedef PCMCIA_SOCKET_INFORMATION *PPCMCIA_SOCKET_INFORMATION;
|
|
|
|
/* PCMCIA callbacks */
|
|
#ifdef _NTDDK_
|
|
typedef BOOLEAN (NTAPI PCMCIA_MODIFY_MEMORY_WINDOW)( PVOID, ULONGLONG, ULONGLONG, BOOLEAN, ULONG, UCHAR, UCHAR, BOOLEAN );
|
|
typedef BOOLEAN (NTAPI PCMCIA_SET_VPP)( PVOID, UCHAR );
|
|
typedef BOOLEAN (NTAPI PCMCIA_IS_WRITE_PROTECTED)( PVOID );
|
|
typedef ULONG (NTAPI PCMCIA_READ_CONFIG)( PVOID, ULONG, PUCHAR, ULONG, ULONG );
|
|
typedef ULONG (NTAPI PCMCIA_WRITE_CONFIG)( PVOID, ULONG, PUCHAR, ULONG, ULONG );
|
|
typedef PCMCIA_MODIFY_MEMORY_WINDOW *PPCMCIA_MODIFY_MEMORY_WINDOW;
|
|
typedef PCMCIA_SET_VPP *PPCMCIA_SET_VPP;
|
|
typedef PCMCIA_IS_WRITE_PROTECTED *PPCMCIA_IS_WRITE_PROTECTED;
|
|
typedef PCMCIA_READ_CONFIG *PPCMCIA_READ_CONFIG;
|
|
typedef PCMCIA_WRITE_CONFIG *PPCMCIA_WRITE_CONFIG;
|
|
#endif
|
|
|
|
/* PCMCIA interface standard */
|
|
#ifdef _NTDDK_
|
|
typedef struct _PCMCIA_INTERFACE_STANDARD {
|
|
USHORT Size;
|
|
USHORT Version;
|
|
PINTERFACE_REFERENCE InterfaceReference;
|
|
PINTERFACE_DEREFERENCE InterfaceDereference;
|
|
PVOID Context;
|
|
PPCMCIA_MODIFY_MEMORY_WINDOW ModifyMemoryWindow;
|
|
PPCMCIA_SET_VPP SetVpp;
|
|
PPCMCIA_IS_WRITE_PROTECTED IsWriteProtected;
|
|
} PCMCIA_INTERFACE_STANDARD;
|
|
typedef PCMCIA_INTERFACE_STANDARD *PPCMCIA_INTERFACE_STANDARD;
|
|
#endif
|
|
|
|
/* PCMCIA bus interface standard */
|
|
#ifdef _NTDDK_
|
|
typedef struct _PCMCIA_BUS_INTERFACE_STANDARD {
|
|
USHORT Size;
|
|
USHORT Version;
|
|
PVOID Context;
|
|
PINTERFACE_REFERENCE InterfaceReference;
|
|
PINTERFACE_DEREFERENCE InterfaceDereference;
|
|
PPCMCIA_READ_CONFIG ReadConfig;
|
|
PPCMCIA_WRITE_CONFIG WriteConfig;
|
|
} PCMCIA_BUS_INTERFACE_STANDARD;
|
|
typedef PCMCIA_BUS_INTERFACE_STANDARD *PPCMCIA_BUS_INTERFACE_STANDARD;
|
|
#endif
|
|
|
|
/* Functions implemented as macros */
|
|
#define PcmciaClassFromControllerType( x ) \
|
|
((PCMCIA_CONTROLLER_CLASS)((x) & 0x000000FFL))
|
|
#define PcmciaModelFromControllerType( x ) (((x) >> 8) & 0x0003FFFFL)
|
|
#define PcmciaRevisionFromControllerType( x ) ((x) >> 26)
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _NTDDPCMH_ */
|