This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/ddk/ntddpcm.h

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_ */