diff options
Diffstat (limited to '')
-rw-r--r-- | private/ntos/ndis/madge/driver/head_mod/sys_cs.h | 651 |
1 files changed, 651 insertions, 0 deletions
diff --git a/private/ntos/ndis/madge/driver/head_mod/sys_cs.h b/private/ntos/ndis/madge/driver/head_mod/sys_cs.h new file mode 100644 index 000000000..14ea4dfd9 --- /dev/null +++ b/private/ntos/ndis/madge/driver/head_mod/sys_cs.h @@ -0,0 +1,651 @@ +/****************************************************************************/ +/****************************************************************************/ +/* */ +/* THE DOS SYSTEM SPECIFIC MODULE (INTERFACE TO PCMCIA CARD SERVICES) */ +/* ================================================================== */ +/* */ +/* SYS_CS.H : Part of the FASTMAC TOOL-KIT (FTK) */ +/* */ +/* Copyright (c) Madge Networks Ltd. 1991-1994 */ +/* Developed by VL */ +/* CONFIDENTIAL */ +/* */ +/* */ +/****************************************************************************/ +/* */ +/* The purpose of the DOS system specific module is to provide those */ +/* services that are influenced by the operating system. This includes */ +/* memory allocation routines, interrupt and DMA channel enabling/disabling */ +/* routines, and routines for accessing IO ports. */ +/* */ +/* This SYS_CS.H file contains the exported function definitions for the */ +/* SYS_CS.ASM module. */ +/* */ +/****************************************************************************/ + +/****************************************************************************/ +/* */ +/* VERSION_NUMBER of FTK to which this SYS_CS.H belongs : */ +/* */ + +#define FTK_VERSION_NUMBER_SYS_CS_H 221 + +/****************************************************************************/ +/* */ +/* Routine to invoke PCMCIA Card Services. */ +/* */ +/* PCMCIA spec. defines card services as: */ +/* */ +/* Status = CardServices (Function, Handle, Pointer, ArgLength, ArgPointer) */ +/* */ +/* Note that Handle and Pointer can be both input and output argument. So */ +/* in our C function, the second and third argument are pointer to Handle */ +/* and pointer to Pointer respectively. */ +/* */ +/* NOTE THAT NO ARGUMENT CHECKING IS DONE HERE, MAKE SURE THAT YOU PASS IN */ +/* CORRECT ARGUMENTS. */ +/* */ + +extern WORD CardServices ( + BYTE Function, + WORD FAR * PHandle, + void * FAR * PPointer, + WORD ArgLength, + BYTE FAR * ArgPointer ); + + +/****************************************************************************/ +/* */ +/* This is the prototype of the Callback function. When user make */ +/* RegisterClient call to card services, pointer to callback function must */ +/* be supplied. Card Services will then notify the user of any event by */ +/* calling this Callback function. */ +/* */ + +extern WORD Callback ( + WORD Function, + WORD Socket, + WORD Info, + void FAR * MTDRequest, + void FAR * Buffer, + WORD Misc, + WORD ClientData1, + WORD ClientData2, + WORD ClientData3 ); + + + +/****************************************************************************/ +/* */ +/* #DEFINES */ +/* ======== */ + + +/****************************************************************************/ +/* */ +/* This is the version number of the Card Services specification upon which */ +/* the following Card Services constants are based. It is stored in BCD */ +/* format. */ + +#define CARD_SERVICES_VERSION 0x0201 + + +/****************************************************************************/ +/* */ +/* This is the version number of the Socket Services specification upon */ +/* which the following Socket Services constants are based. It is stored in */ +/* BCD format. */ +/* */ + +#define SOCKET_SERVICES_VERSION 0x0210 + + +/****************************************************************************/ +/* */ +/* These are the Card Services Functions available through the CardServices */ +/* Function call to Socket Services. */ +/* */ + +#define CS_GetCardServicesInfo 0x0B +#define CS_RegisterClient 0x10 +#define CS_DeregisterClient 0x02 +#define CS_GetStatus 0x0C +#define CS_ResetCard 0x11 +#define CS_SetEventMask 0x31 +#define CS_GetEventMask 0x2E + +#define CS_RequestIO 0x1F +#define CS_ReleaseIO 0x1B +#define CS_RequestIRQ 0x20 +#define CS_ReleaseIRQ 0x1C +#define CS_RequestWindow 0x21 +#define CS_ModifyWindow 0x17 +#define CS_ReleaseWindow 0x1D +#define CS_MapMemPage 0x14 +#define CS_RequestSocketMask 0x22 +#define CS_ReleaseSocketMask 0x2F +#define CS_RequestConfiguration 0x30 +#define CS_GetConfiguration 0x04 +#define CS_ModifyConfiguration 0x27 +#define CS_ReleaseConfiguration 0x1E + +#define CS_OpenMemory 0x18 +#define CS_ReadMemory 0x19 +#define CS_WriteMemory 0x24 +#define CS_CopyMemory 0x01 +#define CS_RegisterEraseQueue 0x0F +#define CS_CheckEraseQueue 0x26 +#define CS_DeregisterEraseQueue 0x25 +#define CS_CloseMemory 0x00 + +#define CS_GetFirstTuple 0x07 +#define CS_GetNextTuple 0x0A +#define CS_GetTupleData 0x0D +#define CS_GetFirstRegion 0x06 +#define CS_GetNextRegion 0x09 +#define CS_GetFirstPartition 0x05 +#define CS_GetNextPartition 0x08 + +#define CS_ReturnSSEntry 0x23 +#define CS_MapLogSocket 0x12 +#define CS_MapPhySocket 0x15 +#define CS_MapLogWindow 0x13 +#define CS_MapPhyWindow 0x16 +#define CS_RegisterMTD 0x1A +#define CS_RegisterTimer 0x38 +#define CS_SetRegion 0x39 +#define CS_ValidateCIS 0x2B +#define CS_RequestExclusive 0x2C +#define CS_ReleaseExclusive 0x2D +#define CS_GetFirstClient 0x0E +#define CS_GetNextClient 0x2A +#define CS_GetClientInfo 0x03 +#define CS_AddSocketServices 0x32 +#define CS_ReplaceSocketServices 0x33 +#define CS_VendorSpecific 0x34 +#define CS_AdjustResourceInfo 0x35 + +#define CS_AccessConfigurationRegister 0x36 + + +/****************************************************************************/ +/* */ +/* These are the Card Services Callback Function codes */ +/* */ + +#define BATTERY_DEAD 0x01 +#define BATTERY_LOW 0x02 +#define CARD_LOCK 0x03 +#define CARD_READY 0x04 +#define CARD_REMOVAL 0x05 +#define CARD_UNLOCK 0x06 +#define EJECTION_COMPLETE 0x07 +#define EJECTION_REQUEST 0x08 +#define INSERTION_COMPLETE 0x09 +#define INSERTION_REQUEST 0x0A +#define EXCLUSIVE_COMPLETE 0x0D +#define EXCLUSIVE_REQUEST 0x0E +#define RESET_PHYSICAL 0x0F +#define RESET_REQUEST 0x10 +#define CARD_RESET 0x11 +#define CLIENT_INFO 0x14 +#define TIMER_EXPIRED 0x15 +#define SS_UPDATED 0x16 +#define CARD_INSERTION 0x40 +#define RESET_COMPLETE 0x80 +#define REGISTRATION_COMPLETE 0x82 + + +/****************************************************************************/ +/* */ +/* These are the SocketServices/CardServices Return codes */ +/* */ + +#define CMD_SUCCESS 0x00 +#define BAD_ADAPTER 0x01 +#define BAD_ATTRIBUTE 0x02 +#define BAD_BASE 0x03 +#define BAD_EDC 0x04 +#define BAD_IRQ 0x06 +#define BAD_OFFSET 0x07 +#define BAD_PAGE 0x08 +#define READ_FAILURE 0x09 +#define BAD_SIZE 0x0A +#define BAD_SOCKET 0x0B +#define BAD_TYPE 0x0D +#define BAD_VCC 0x0E +#define BAD_VPP 0x0F +#define BAD_WINDOW 0x11 +#define WRITE_FAILURE 0x12 +#define NO_CARD 0x14 +#define BAD_FUNCTION 0x15 +#define BAD_MODE 0x16 +#define BAD_SPEED 0x17 +#define BUSY 0x18 +#define GENERAL_FAILURE 0x19 +#define WRITE_PROTECTED 0x1A +#define BAD_ARG_LENGTH 0x1B +#define BAD_ARGS 0x1C +#define CONFIGURATION_LOCKED 0x1D +#define IN_USE 0x1E +#define NO_MORE_ITEMS 0x1F +#define OUT_OF_RESOURCE 0x20 +#define BAD_HANDLE 0x21 + + + +/****************************************************************************/ +/* */ +/* These are the bit definitions for Event Mask Functions */ +/* */ + +#define MASK_WRITE_PROTECT 0x0001 +#define MASK_CARD_LOCK 0x0002 +#define MASK_EJECTION 0x0004 +#define MASK_INSERTION 0x0008 +#define MASK_BATTERY_DEAD 0x0010 +#define MASK_BATTERY_LOW 0x0020 +#define MASK_READY 0x0040 +#define MASK_CARD_DETECT 0x0080 +#define MASK_PM 0x0100 +#define MASK_RESET 0x0200 +#define MASK_SS_UPDATE 0x0400 + +/****************************************************************************/ +/* */ +/* These are the bit definition for RegisterClient attribute */ +/* */ + +#define RC_ATTR_MEMORY_CLIENT_DRIVER 0x0001 +#define RC_ATTR_MEMORY_TECH_DRIVER 0x0002 +#define RC_ATTR_IO_CLIENT_DEVICE_DRIVER 0x0004 +#define RC_ATTR_IO_INSERTION_SHARABLE 0x0008 +#define RC_ATTR_IO_INSERTION_EXCLUSIVE 0x0010 + +/****************************************************************************/ +/* */ +/* These are definition for AdjustResourceInfo Action */ +/* */ + +#define ARI_ACTION_REMOVE 0x00 +#define ARI_ACTION_ADD 0x01 +#define ARI_ACTION_GET_FIRST 0x02 +#define ARI_ACTION_GET_NEXT 0x03 + +/****************************************************************************/ +/* */ +/* These are definition for AdjustResourceInfo Resource */ +/* */ + +#define ARI_RESOURCE_MEMORY 0x00 +#define ARI_RESOURCE_IO 0x01 +#define ARI_RESOURCE_IRQ 0x02 + +/****************************************************************************/ +/* */ +/* These are definition for RequestIO Attributes */ +/* */ + +#define RIO_ATTR_SHARED 0x01 +#define RIO_ATTR_FIRST_SHARED 0x02 +#define RIO_ATTR_FORCE_ALIAS_ACCESS 0x04 +#define RIO_ATTR_16_BIT_DATA 0x08 + +/****************************************************************************/ +/* */ +/* These are definition for RequestIRQ Attributes */ +/* */ + +#define RIRQ_ATTR_TYPE_EXCLUSIVE 0x0000 +#define RIRQ_ATTR_TYPE_TIME_MULTIPLEX 0x0001 +#define RIRQ_ATTR_TYPE_DYMANIC_SHARE 0x0002 +#define RIRQ_ATTR_TYPE_RESERVED 0x0003 + + +/****************************************************************************/ +/* */ +/* These are definition for RequestIRQ IRQInfos */ +/* */ + + +#define IRQ_INFO1_INFO2_ENABLE 0x10 + +#define IRQ_INFO1_LEVEL 0x20 +#define IRQ_INFO1_PULSE 0x40 +#define IRQ_INFO1_SHARE 0x80 + +#define IRQ_0 0x0001 +#define IRQ_1 0x0002 +#define IRQ_2 0x0004 +#define IRQ_3 0x0008 +#define IRQ_4 0x0010 +#define IRQ_5 0x0020 +#define IRQ_6 0x0040 +#define IRQ_7 0x0080 +#define IRQ_8 0x0100 +#define IRQ_9 0x0200 +#define IRQ_10 0x0400 +#define IRQ_11 0x0800 +#define IRQ_12 0x1000 +#define IRQ_13 0x2000 +#define IRQ_14 0x4000 +#define IRQ_15 0x8000 + +/****************************************************************************/ +/* */ +/* These are RequestConfiguration related things */ +/* */ + +#define RC_ATTR_ENABLE_IRQ_STEERING 0x02 + + +#define RC_PRESENT_OPTION_REG 0x01 +#define RC_PRESENT_STATUS_REG 0x02 +#define RC_PRESENT_PIN_REPLACEMENT 0x04 +#define RC_PRESENT_COPY_REG 0x08 + +#define RC_INTTYPE_MEMORY 0x01 +#define RC_INTTYPE_MEMORY_AND_IO 0x02 + + +/****************************************************************************/ +/* */ +/* These are AccessConfigurationRegister related things */ +/* */ + +#define ACR_ACTION_READ 0x00 +#define ACR_ACTION_WRITE 0x01 + + +/****************************************************************************/ +/* */ +/* These are the codes for tuples within the CIS (Card Information */ +/* Structure) */ +/* */ + +#define CISTPL_NULL 0x00 +#define CISTPL_DEVICE 0x01 +#define CISTPL_CHECKSUM 0x10 +#define CISTPL_LONGLINK_A 0x11 +#define CISTPL_LONGLINK_C 0x12 +#define CISTPL_LINKTARGET 0x13 +#define CISTPL_NO_LINK 0x14 +#define CISTPL_VERS_1 0x15 +#define CISTPL_ALTSTR 0x16 +#define CISTPL_DEVICE_A 0x17 +#define CISTPL_JEDEC_C 0x18 +#define CISTPL_JEDEC_A 0x19 +#define CISTPL_CONFIG 0x1A +#define CISTPL_CFTABLE_ENTRY 0x1B +#define CISTPL_DEVICE_OC 0x1C +#define CISTPL_DEVICE_OA 0x1D +#define CISTPL_DEVICE_GEO 0x1E +#define CISTPL_DEVICE_GEO_A 0x1F + +#define CISTPL_MANFID 0x20 +#define CISTPL_FUNCID 0x21 +#define CISTPL_FUNCE 0x22 +#define CISTPL_SWIL 0x23 +#define CISTPL_VERS_2 0x40 +#define CISTPL_FORMAT 0x41 +#define CISTPL_GEOMETRY 0x42 +#define CISTPL_BYTEORDER 0x43 +#define CISTPL_DATE 0x44 +#define CISTPL_BATTERY 0x45 + + +/****************************************************************************/ +/* */ +/* These are argument block definitions for various card services functions */ +/* */ +/****************************************************************************/ +/* */ + +/****************************************************************************/ +/* */ +/* Argument for GetCardServicesInfo */ +/* */ + +struct STRUCT_CS_GET_CS_INFO_ARG +{ + WORD InfoLen; + BYTE Signature[2]; + WORD Count; + WORD Revision; + WORD CSLevel; + WORD VStrOff; + WORD VStrLen; + BYTE VendorString[1]; +}; + +typedef struct STRUCT_CS_GET_CS_INFO_ARG CS_GET_CS_INFO_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for RegisterClient */ +/* */ + +struct STRUCT_CS_REGISTER_CLIENT_ARG +{ + WORD Attributes; + WORD EventMask; + WORD ClientData[4]; + WORD Version; +}; + +typedef struct STRUCT_CS_REGISTER_CLIENT_ARG CS_REGISTER_CLIENT_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for GetFirstTuple */ +/* */ + +struct STRUCT_CS_GET_FIRST_TUPLE_ARG +{ + WORD Socket; + WORD Attributes; + BYTE DesiredTuple; + BYTE Reserved; + WORD Flags; + DWORD LinkOffset; + DWORD CISOffset; + BYTE TupleCode; + BYTE TupleLink; +}; + +typedef struct STRUCT_CS_GET_FIRST_TUPLE_ARG CS_GET_FIRST_TUPLE_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for GetTupleData */ +/* */ + +struct STRUCT_CS_GET_TUPLE_DATA_ARG +{ + WORD Socket; + WORD Attributes; + BYTE DesiredTuples; + BYTE TupleOffset; + WORD Flags; + DWORD LinkOffset; + DWORD CISOffset; + WORD TupleDataMax; + WORD TupleDataLen; + BYTE TupleData[1]; +}; + +typedef struct STRUCT_CS_GET_TUPLE_DATA_ARG CS_GET_TUPLE_DATA_ARG; + + + +/****************************************************************************/ +/* */ +/* Argument for AdjustResouceInfo ( IO resources ) */ +/* */ + +struct STRUCT_CS_ADJ_IO_RESOURCE_ARG +{ + BYTE Action; + BYTE Resource; + WORD BasePort; + BYTE NumPorts; + BYTE Attributes; + BYTE IOAddrLines; +}; + +typedef struct STRUCT_CS_ADJ_IO_RESOURCE_ARG CS_ADJ_IO_RESOURCE_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for RequestIO */ +/* */ + +struct STRUCT_CS_REQUEST_IO_ARG +{ + WORD Socket; + WORD BasePort1; + BYTE NumPorts1; + BYTE Attributes1; + WORD BasePort2; + BYTE NumPorts2; + BYTE Attributes2; + BYTE IOAddrLines; + +}; + +typedef struct STRUCT_CS_REQUEST_IO_ARG CS_REQUEST_IO_ARG; + +/****************************************************************************/ +/* */ +/* Argument for RequestIRQ */ +/* */ + +struct STRUCT_CS_REQUEST_IRQ_ARG +{ + WORD Socket; + WORD Attributes; + BYTE AssignedIRQ; + BYTE IRQInfo1; + WORD IRQInfo2; +}; + +typedef struct STRUCT_CS_REQUEST_IRQ_ARG CS_REQUEST_IRQ_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for RequestConfiguration */ +/* */ + +struct STRUCT_CS_REQUEST_CONFIG_ARG +{ + WORD Socket; + WORD Attributes; + BYTE Vcc; + BYTE Vpp1; + BYTE Vpp2; + BYTE IntType; + DWORD ConfigBase; + BYTE Status; + BYTE Pin; + BYTE Copy; + BYTE ConfigIndex; + BYTE Present; +}; + +typedef struct STRUCT_CS_REQUEST_CONFIG_ARG CS_REQUEST_CONFIG_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for AccessConfigurationRegister */ +/* */ + +struct STRUCT_CS_ACCESS_CONFIG_REG_ARG +{ + WORD Socket; + BYTE Action; + BYTE Offset; + BYTE Value; +}; + +typedef struct STRUCT_CS_ACCESS_CONFIG_REG_ARG CS_ACCESS_CONFIG_REG_ARG; + +/****************************************************************************/ +/* */ +/* Argument for ReleaseIO */ +/* */ + +struct STRUCT_CS_RELEASE_IO_ARG +{ + WORD Socket; + WORD BasePort1; + BYTE NumPorts1; + BYTE Attributes1; + WORD BasePort2; + BYTE NumPorts2; + BYTE Attributes2; + BYTE IOAddrLines; +}; + +typedef struct STRUCT_CS_RELEASE_IO_ARG CS_RELEASE_IO_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for ReleaseIRQ */ +/* */ + +struct STRUCT_CS_RELEASE_IRQ_ARG +{ + WORD Socket; + WORD Attributes; + BYTE AssignedIRQ; +}; + +typedef struct STRUCT_CS_RELEASE_IRQ_ARG CS_RELEASE_IRQ_ARG; + + +/****************************************************************************/ +/* */ +/* Argument for ReleaseConfiguration */ +/* */ + +struct STRUCT_CS_RELEASE_CONFIG_ARG +{ + WORD Socket; +}; + +typedef struct STRUCT_CS_RELEASE_CONFIG_ARG CS_RELEASE_CONFIG_ARG; + + +/****************************************************************************/ +/* */ +/* Client Information Structure */ +/* */ + +struct STRUCT_CS_CLIENT_INFO +{ + WORD MaxLen; + WORD InfoLen; + WORD Atrributes; + WORD Revision; + WORD CSLevel; + WORD RevDate; + WORD NameOff; + WORD NameLen; + WORD VStringOff; + WORD VStringLen; +}; + +typedef struct STRUCT_CS_CLIENT_INFO CS_CLIENT_INFO; + +/* */ +/* */ +/************** End of SYS_CS.H file ****************************************/ +/* */ +/* */ |