home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / AutoPC / apcsdk10.exe / data1.cab / Emulation_Include_Files / cardserv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-13  |  17.9 KB  |  480 lines

  1. /*++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 1995, 1996, 1997  Microsoft Corporation
  7.  
  8. Module Name:  
  9.  
  10.     cardserv.h
  11.  
  12. Abstract:  
  13.  
  14.     This file implements the Windows CE PCMCIA Card Services structures and
  15.     definitions.  This is provided as a sample to platform writers and is
  16.     expected to be able to be used without modification on most (if not
  17.     all) hardware platforms.
  18.  
  19. Functions:
  20.  
  21.  
  22. Notes:
  23.  
  24.  
  25. --*/
  26.  
  27. #ifndef __CARDSERV_H__
  28. #define __CARDSERV_H__
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34.  
  35. //**********************************************************************
  36. // Card Services Event Codes.
  37. //**********************************************************************
  38.  
  39. typedef UINT32 CARD_EVENT;
  40.  
  41. #define CE_BATTERY_DEAD          0x01
  42. #define CE_BATTERY_LOW           0x02
  43. #define CE_CARD_LOCK             0x03
  44. #define CE_CARD_READY            0x04
  45. #define CE_CARD_REMOVAL          0x05
  46. #define CE_CARD_UNLOCK           0x06
  47. #define CE_EJECTION_COMPLETE     0x07
  48. #define CE_EJECTION_REQUEST      0x08
  49. #define CE_INSERTION_COMPLETE    0x09
  50. #define CE_INSERTION_REQUEST     0x0A
  51. #define CE_PM_RESUME             0x0B    // Power management
  52. #define CE_PM_SUSPEND            0x0C    // Power management
  53. #define CE_EXCLUSIVE_COMPLETE    0x0D
  54. #define CE_EXCLUSIVE_REQUEST     0x0E
  55. #define CE_RESET_PHYSICAL        0x0F
  56. #define CE_RESET_REQUEST         0x10
  57. #define CE_CARD_RESET            0x11
  58. #define CE_MTD_REQUEST           0x12
  59. #define CE_CLIENT_INFO           0x14
  60. #define CE_TIMER_EXPIRED         0x15
  61. #define CE_SS_UPDATED            0x16
  62. #define CE_WRITE_PROTECT         0x17
  63. #define CE_CARD_INSERTION        0x40
  64. #define CE_RESET_COMPLETE        0x80
  65. #define CE_ERASE_COMPLETE        0x81
  66. #define CE_REGISTRATION_COMPLETE 0x82
  67. #define CE_STATUS_CHANGE_INTERRUPT 0xFE   // The card generated a status change interrupt
  68.  
  69. //**********************************************************************
  70. // Card Services Return Codes.
  71. //**********************************************************************
  72.  
  73. typedef UINT32 STATUS;
  74.  
  75. #define CERR_SUCCESS              0x00
  76. #define CERR_BAD_ADAPTER          0x01
  77. #define CERR_BAD_ATTRIBUTE        0x02
  78. #define CERR_BAD_BASE             0x03
  79. #define CERR_BAD_EDC              0x04
  80. #define CERR_BAD_IRQ              0x06
  81. #define CERR_BAD_OFFSET           0x07
  82. #define CERR_BAD_PAGE             0x08
  83. #define CERR_READ_FAILURE         0x09
  84. #define CERR_BAD_SIZE             0x0A
  85. #define CERR_BAD_SOCKET           0x0B
  86. #define CERR_BAD_TYPE             0x0D
  87. #define CERR_BAD_VCC              0x0E
  88. #define CERR_BAD_VPP              0x0F
  89. #define CERR_BAD_WINDOW           0x11
  90. #define CERR_WRITE_FAILURE        0x12
  91. #define CERR_NO_CARD              0x14
  92. #define CERR_UNSUPPORTED_SERVICE  0x15
  93. #define CERR_UNSUPPORTED_MODE     0x16
  94. #define CERR_BAD_SPEED            0x17
  95. #define CERR_BUSY                 0x18
  96. #define CERR_GENERAL_FAILURE      0x19
  97. #define CERR_WRITE_PROTECTED      0x1A
  98. #define CERR_BAD_ARG_LENGTH       0x1B
  99. #define CERR_BAD_ARGS             0x1C
  100. #define CERR_CONFIGURATION_LOCKED 0x1D
  101. #define CERR_IN_USE               0x1E
  102. #define CERR_NO_MORE_ITEMS        0x1F
  103. #define CERR_OUT_OF_RESOURCE      0x20
  104. #define CERR_BAD_HANDLE           0x21
  105. #define CERR_BAD_VERSION          0x22
  106.  
  107. //*********************************************************************
  108. // Card Services Interface Structures.
  109. // (Must be packed to one byte to guarantee conformance to the
  110. //  card services specification).
  111. //*********************************************************************/
  112.  
  113. #pragma pack(1)
  114.  
  115. typedef PVOID CARD_CLIENT_HANDLE;
  116. typedef PVOID CARD_WINDOW_HANDLE;
  117.  
  118. //*****************************************************************
  119. // Socket handle (formed by concatenating the 0 based socket number
  120. // and the 0 based function number)
  121. //*****************************************************************/
  122.  
  123. typedef struct _CARD_SOCKET_HANDLE {
  124.     UINT8 uSocket;
  125.     UINT8 uFunction;
  126. } CARD_SOCKET_HANDLE, *PCARD_SOCKET_HANDLE;
  127.  
  128.  
  129. //*****************************************************************
  130. // Event Mask Structures.
  131. //*****************************************************************/
  132.  
  133. #define EVENT_ATTR_SOCKET_ONLY        0x0001    // 0 for global event mask
  134.  
  135. //
  136. // Event masks used in calls to CardRequestSocketMask, CardGetEventMask,
  137. // CardSetEventMask and CardRegisterClient
  138. //
  139. // CARD_REGISTER_PARMS.fEventMask
  140. // CARD_EVENT_MASK_PARMS.fEventMask
  141. // CardRequestSocketMask(fEventMask)
  142. // CARD_STATUS.fCardState
  143. // CARD_STATUS.fSocketState
  144. // (PCARD_SOCKET_INFO.fInterruptEvents)
  145. // (PCARD_SOCKET_INFO.fNotifyEvents)
  146. //
  147. #define EVENT_MASK_WRITE_PROTECT    0x0001 // write protect change
  148. #define EVENT_MASK_CARD_LOCK        0x0002 // card lock change
  149. #define EVENT_MASK_EJECT_REQ        0x0004 // ejection request
  150. #define EVENT_MASK_INSERT_REQ       0x0008 // insertion request
  151. #define EVENT_MASK_BATTERY_DEAD     0x0010 // battery dead
  152. #define EVENT_MASK_BATTERY_LOW      0x0020 // battery low
  153. #define EVENT_MASK_CARD_READY       0x0040 // ready change
  154. #define EVENT_MASK_CARD_DETECT      0x0080 // card detect change
  155. #define EVENT_MASK_POWER_MGMT       0x0100 // power management change
  156. #define EVENT_MASK_RESET            0x0200 // card resets
  157. #define EVENT_MASK_STATUS_CHANGE    0x0400 // card generated status change interrupts
  158.  
  159. typedef struct _CARD_EVENT_MASK_PARMS {
  160.     CARD_SOCKET_HANDLE    hSocket;
  161.     UINT16  fAttributes;
  162.     UINT16  fEventMask;
  163. } CARD_EVENT_MASK_PARMS, *PCARD_EVENT_MASK_PARMS;
  164.  
  165.  
  166. //******************************************************************
  167. // Callback function parameter block
  168. //******************************************************************
  169.  
  170. typedef struct _CARD_EVENT_PARMS {
  171.     UINT32 uClientData;
  172.     UINT32 Parm1;
  173.     UINT32 Parm2;
  174. } CARD_EVENT_PARMS, *PCARD_EVENT_PARMS;
  175.  
  176. typedef STATUS (*CLIENT_CALLBACK)(CARD_EVENT, CARD_SOCKET_HANDLE, PCARD_EVENT_PARMS);
  177. typedef CLIENT_CALLBACK *PCLIENT_CALLBACK;
  178.  
  179. //
  180. // Client driver interrupt service routine prototype
  181. //
  182. typedef VOID (*CARD_ISR)(UINT32);
  183. typedef CARD_ISR *PCARD_ISR;
  184.  
  185. //******************************************************************
  186. // Register Client Flags
  187. //******************************************************************
  188.  
  189. //
  190. // CARD_REGISTER_PARMS.fAttributes
  191. //
  192. #define CLIENT_ATTR_MEM_DRIVER       0x0001   // memory client driver
  193. #define CLIENT_ATTR_MTD_DRIVER       0x0002   // memory technology driver
  194. #define CLIENT_ATTR_IO_DRIVER        0x0004   // i/o client driver
  195. #define CLIENT_ATTR_NOTIFY_SHARED    0x0008   // sharable PC cards
  196. #define CLIENT_ATTR_NOTIFY_EXCLUSIVE 0x0010   // exclusively used PC cards
  197.  
  198. typedef struct _CARD_REGISTER_PARMS {
  199.     UINT16 fAttributes;
  200.     UINT16 fEventMask;
  201.     UINT32 uClientData;
  202. } CARD_REGISTER_PARMS,*PCARD_REGISTER_PARMS;
  203.  
  204. //*****************************************************************
  205. // Window packet structures.
  206. //****************************************************************
  207.  
  208. //
  209. // Window attribute masks used in calls to
  210. // CardRequestWindow and CardModifyWindow
  211. //
  212. // Usage:
  213. // CARD_WINDOW_PARMS.fAttributes
  214. // CardModifyWindow(fAttributes)
  215. //
  216. #define WIN_ATTR_IO_SPACE      0x0001        // 1 = I/O window
  217.                                              // 0 = memory window
  218. #define WIN_ATTR_ATTRIBUTE     0x0002        // 1 = attribute, 0 = common
  219. #define WIN_ATTR_ENABLED       0x0004        // 1 = window is enabled
  220.                                              // 0 = window is disabled
  221. #define WIN_ATTR_16BIT         0x0008        // 1 = 16 bit, 0 = 8 bit
  222. #define WIN_ATTR_PAGED         0x0010        // 1 = size is 16K multiple
  223. #define WIN_ATTR_SHARED        0x0020        // 1 = shared memory request
  224. #define WIN_ATTR_FIRST_SHARED  0x0040        // 1 = first shared request
  225. #define WIN_ATTR_OFFSETS_SIZED 0x0100        // card offsets window sized
  226. #define WIN_ATTR_ACCESS_SPEED_VALID 0x0200   // Used to cause CardModifyWindow 
  227.                                              // to change the window's access speed
  228.  
  229. //
  230. // Memory window speed encodings
  231. //
  232. // Usage:
  233. // CARD_WINDOW_PARMS.fAccessSpeed
  234. // CardModifyWindow(fAccessSpeed)
  235. // (PDCARD_WINDOW_INFO.fSlowest)
  236. // (PDCARD_WINDOW_INFO.fFastest)
  237. // (PDCARD_WINDOW_STATE.fSpeed)
  238. //
  239. #define WIN_SPEED_EXP_MASK  0x07    // Exponent mask
  240. #define WIN_SPEED_EXP_1NS   0x00    // 1 nanosecond
  241. #define WIN_SPEED_EXP_10NS  0x01
  242. #define WIN_SPEED_EXP_100NS 0x02
  243. #define WIN_SPEED_EXP_1US   0x03    // 1 microsecond
  244. #define WIN_SPEED_EXP_10US  0x04
  245. #define WIN_SPEED_EXP_100US 0x05
  246. #define WIN_SPEED_EXP_1MS   0x06    // 1 millisecond
  247. #define WIN_SPEED_EXP_10MS  0x07
  248.  
  249. #define WIN_SPEED_MANT_MASK 0x78    // Mantissa mask
  250. #define WIN_SPEED_MANT_10   0x08    // 1.0
  251. #define WIN_SPEED_MANT_12   0x10    // 1.2
  252. #define WIN_SPEED_MANT_13   0x18    // 1.3
  253. #define WIN_SPEED_MANT_15   0x20    // 1.5
  254. #define WIN_SPEED_MANT_20   0x28    // 2.0
  255. #define WIN_SPEED_MANT_25   0x30    // 2.5
  256. #define WIN_SPEED_MANT_30   0x38    // 3.0
  257. #define WIN_SPEED_MANT_35   0x40    // 3.5
  258. #define WIN_SPEED_MANT_40   0x48    // 4.0
  259. #define WIN_SPEED_MANT_45   0x50    // 4.5
  260. #define WIN_SPEED_MANT_50   0x58    // 5.0
  261. #define WIN_SPEED_MANT_55   0x60    // 5.5
  262. #define WIN_SPEED_MANT_60   0x68    // 6.0
  263. #define WIN_SPEED_MANT_70   0x70    // 7.0
  264. #define WIN_SPEED_MANT_80   0x78    // 8.0
  265.  
  266. #define WIN_SPEED_USE_WAIT  0x80    // Use wait if available
  267.  
  268. typedef struct _CARD_WINDOW_PARMS {
  269.     CARD_SOCKET_HANDLE hSocket;
  270.     UINT16 fAttributes;
  271.     UINT32 uWindowSize;
  272.     UINT8  fAccessSpeed;
  273. } CARD_WINDOW_PARMS, *PCARD_WINDOW_PARMS;
  274.  
  275.  
  276. //*****************************************************************
  277. // Configuration packet structures.
  278. //****************************************************************
  279.  
  280. //
  281. // CARD_CONFIG_INFO.fAttributes
  282. //
  283. #define CFG_ATTR_EXCLUSIVE    0x0001
  284. #define CFG_ATTR_IRQ_STEERING 0x0002    // Enable interrupts from PC card to host
  285. #define CFG_ATTR_IRQ_WAKEUP   0x0004    // Allow PCMCIA ints to wake system from
  286.                                         // suspend mode. 
  287. #define CFG_ATTR_KEEP_POWERED 0x0008    // Keep the PCMCIA bus powered while the
  288.                                         // system is in the suspended state.
  289. #define CFG_ATTR_ENABLE_DMA   0x0040
  290. #define CFG_ATTR_VALID_CLIENT 0x0100    
  291. #define CFG_ATTR_VS_OVERRIDE  0x0200
  292.  
  293. //
  294. // CARD_CONFIG_INFO.fInterfaceType
  295. // (PDCARD_SOCKET_STATE.fInterfaceType)
  296. //
  297. #define CFG_IFACE_MEMORY    0x0001  // Put socket controller in memory only interface mode
  298. #define CFG_IFACE_MEMORY_IO 0x0002  // Put socket controller in memory and I/O interface mode
  299.  
  300. //
  301. // CARD_CONFIG_INFO.fRegisters
  302. //
  303. // Each of these bits indicates the presence one of the standard function and
  304. // configuration registers in the attribute space of the PC card.  Using the API
  305. // CardRequestConfiguration, a driver can set these registers to desired initial
  306. // values.  The fRegisters field indicates which registers to write.
  307. //
  308. #define CFG_REGISTER_CONFIG   0x01  // Configuration Option Register (uConfigReg)
  309. #define CFG_REGISTER_STATUS   0x02  // Function Configuration and Status Register (uStatusReg)
  310. #define CFG_REGISTER_PIN      0x04  // Pin Replacement Register (uPinReg)
  311. #define CFG_REGISTER_COPY     0x08  // Socket and Copy Register (uCopyReg)
  312. #define CFG_REGISTER_EXSTATUS 0x10  // Extended Status register (uExtendedStatus)
  313.  
  314. typedef struct _CARD_CONFIG_INFO {
  315.     CARD_SOCKET_HANDLE  hSocket;
  316.     UINT16 fAttributes;
  317.     UINT8  fInterfaceType;
  318.     UINT8  uVcc;
  319.     UINT8  uVpp1;
  320.     UINT8  uVpp2;
  321.     UINT8  fRegisters;
  322.     UINT8  uConfigReg;
  323.     UINT8  uStatusReg;
  324.     UINT8  uPinReg;
  325.     UINT8  uCopyReg;
  326.     UINT8  uExtendedStatus;
  327. } CARD_CONFIG_INFO, *PCARD_CONFIG_INFO;
  328.  
  329. //
  330. // Function Configuration Register offsets
  331. //
  332. #define FCR_OFFSET_COR   0   // Configuration Option Register
  333. #define FCR_OFFSET_FCSR  1   // Function and Configuration Status Register
  334. #define FCR_OFFSET_PRR   2   // Pin Replacement Register
  335. #define FCR_OFFSET_SCR   3   // Socket and Copy Register
  336. #define FCR_OFFSET_ESR   4   // Extended Status Register
  337. #define FCR_OFFSET_IOB0  5   // I/O Base Register 0
  338. #define FCR_OFFSET_IOB1  6   // I/O Base Register 1
  339. #define FCR_OFFSET_IOB2  7   // I/O Base Register 2
  340. #define FCR_OFFSET_IOB3  8   // I/O Base Register 3
  341. #define FCR_OFFSET_IOSZ  9   // I/O Size Register
  342.  
  343. //
  344. // Configuration Option Register Bit Masks
  345. // CARD_CONFIG_INFO.uConfigReg
  346. //
  347. // Note: The lower 6 bits of the configuration option register are used to
  348. //       specify which configuration number to use for single function cards.
  349. //
  350. #define FCR_COR_LEVEL_IREQ  0x40    // 1 = level mode interrupts, 0 = pulse mode
  351. #define FCR_COR_SRESET      0x80    // 1 = soft reset
  352.  
  353. //
  354. // Function and Configuration Status Register Bit Masks
  355. // CARD_CONFIG_INFO.uStatusReg
  356. //
  357. #define FCR_FCSR_INTR_ACK   0x01    // interrupt acknowledge
  358. #define FCR_FCSR_INTR       0x02    // interrupt pending
  359. #define FCR_FCSR_PWR_DOWN   0x04    // place PC card in power down mode
  360. #define FCR_FCSR_AUDIO      0x08    // enable audio signal on BVD2 (pin 62)
  361. #define FCR_FCSR_IO_IS_8    0x20    // used by host to indicate 8 bit only I/O
  362. #define FCR_FCSR_STSCHG     0x40    // Enable status change (STSCHG, pin 63) from PC card
  363. #define FCR_FCSR_CHANGED    0x80    // Set if one of the status changed bits is set in
  364.                                     // the pin replacement register.
  365.  
  366. #define FCR_FCSR_REQUIRED_BITS (FCR_FCSR_INTR_ACK|FCR_FCSR_IO_IS_8)
  367.  
  368. //
  369. // CARD_CONFIG_INFO.uPinReg
  370. //
  371. #define FCR_PRR_RWP         0x01    // Current state of write protect
  372. #define FCR_PRR_RREADY      0x02    // Current state of Ready
  373. #define FCR_PRR_RBVD2       0x04    // Current state of BV2
  374. #define FCR_PRR_RBVD1       0x08    // Current state of BV1
  375. #define FCR_PRR_CWP         0x10    // Write protect changed
  376. #define FCR_PRR_CRDY        0x20    // Ready changed
  377. #define FCR_PRR_CBVD2       0x40    // BVD2 changed
  378. #define FCR_PRR_CBVD1       0x80    // BVD1 changed
  379.  
  380.  
  381. //
  382. //  Used for CardAccessConfigurationRegister function
  383. //
  384. #define CARD_FCR_READ  0
  385. #define CARD_FCR_WRITE 1
  386.  
  387. //*****************************************************************
  388. // CardGetStatus structure
  389. //*****************************************************************
  390.  
  391. typedef struct _CARD_STATUS {
  392.     CARD_SOCKET_HANDLE  hSocket;
  393.     UINT16  fCardState;
  394.     UINT16  fSocketState;
  395. } CARD_STATUS, *PCARD_STATUS;
  396.  
  397. //*****************************************************************
  398. // Tuple request structures.
  399. // NOTE:
  400. //         - The tuple flags structure is only used internally by card
  401. //           services and is defined as required by an implementation.
  402. //         - A variable length tuple data area immediately follows
  403. //           the tuple data packet structure.
  404. //****************************************************************
  405.  
  406. //
  407. // CARD_TUPLE_PARMS.fAttributes
  408. // CARD_DATA_PARMS.fAttributes
  409. //
  410. #define TUPLE_RETURN_LINKS  0x0001   // return link tuples
  411.  
  412. typedef struct _CARD_TUPLE_PARMS {
  413.     CARD_SOCKET_HANDLE  hSocket;
  414.     UINT16 fAttributes;
  415.     UINT8  uDesiredTuple;
  416.     UINT8  uReserved;
  417.     UINT16 fFlags;
  418.     UINT32 uLinkOffset;
  419.     UINT32 uCISOffset;
  420.     UINT8  uTupleCode;
  421.     UINT8  uTupleLink;
  422. } CARD_TUPLE_PARMS, *PCARD_TUPLE_PARMS;
  423.  
  424. typedef struct _CARD_DATA_PARMS {
  425.     CARD_SOCKET_HANDLE  hSocket;
  426.     UINT16 fAttributes;
  427.     UINT8  uDesiredTuple;
  428.     UINT8  uTupleOffset;
  429.     UINT16 fFlags;
  430.     UINT32 uLinkOffset;
  431.     UINT32 uCISOffset;
  432.     UINT16 uBufLen;
  433.     UINT16 uDataLen;
  434. } CARD_DATA_PARMS, *PCARD_DATA_PARMS;
  435.  
  436.  
  437. #pragma pack()   // return packing to normal
  438.  
  439.  
  440.  
  441. //
  442. // Card Services Function Prototypes
  443. //
  444. CARD_CLIENT_HANDLE CardRegisterClient(CLIENT_CALLBACK CallBackFn, PCARD_REGISTER_PARMS pParms);
  445. STATUS CardDeregisterClient(CARD_CLIENT_HANDLE hCardClient);
  446. STATUS CardGetFirstTuple(PCARD_TUPLE_PARMS pGetTupleParms);
  447. STATUS CardGetNextTuple(PCARD_TUPLE_PARMS pGetTupleParms);
  448. STATUS CardGetTupleData(PCARD_DATA_PARMS pGetTupleData);
  449. STATUS CardGetParsedTuple(CARD_SOCKET_HANDLE hSocket, UINT8 uDesiredTuple, PVOID pBuf, PUINT32 pnItems);
  450. STATUS CardRequestExclusive(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSocket);
  451. STATUS CardReleaseExclusive(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSocket);
  452. STATUS CardRequestSocketMask(CARD_CLIENT_HANDLE hCardClient,
  453.                              CARD_SOCKET_HANDLE hSock, UINT16 fEventMask);
  454. STATUS CardReleaseSocketMask(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSock);
  455. STATUS CardGetEventMask(CARD_CLIENT_HANDLE hCardClient, PCARD_EVENT_MASK_PARMS pMaskParms);
  456. STATUS CardSetEventMask(CARD_CLIENT_HANDLE hCardClient, PCARD_EVENT_MASK_PARMS pMaskParms);
  457. STATUS CardResetFunction(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSock);
  458. CARD_WINDOW_HANDLE CardRequestWindow(CARD_CLIENT_HANDLE hCardClient, PCARD_WINDOW_PARMS pCardWinParms);
  459. STATUS CardReleaseWindow(CARD_WINDOW_HANDLE hCardWin);   
  460. STATUS CardModifyWindow(CARD_WINDOW_HANDLE hCardWindow, UINT16 fAttributes, UINT8 fAccessSpeed);
  461. PVOID CardMapWindow(CARD_WINDOW_HANDLE hCardWindow, UINT32 uCardAddress, UINT32 uSize, PUINT32 pGranularity);
  462. STATUS CardGetStatus(PCARD_STATUS pStatus);
  463. STATUS CardRequestIRQ(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSocket,
  464.                       CARD_ISR ISRFunction, UINT32 uISRContextData);
  465. STATUS CardReleaseIRQ(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSocket);
  466. STATUS CardRequestConfiguration(CARD_CLIENT_HANDLE hCardClient, PCARD_CONFIG_INFO pParms);
  467. STATUS CardReleaseConfiguration(CARD_CLIENT_HANDLE hCardClient, CARD_SOCKET_HANDLE hSock);
  468.  
  469. STATUS CardAccessConfigurationRegister(CARD_CLIENT_HANDLE hCardClient,
  470.                                        CARD_SOCKET_HANDLE hSock,UINT8 rw_flag,
  471.                                        UINT8 offset,UINT8 *pValue);
  472.  
  473.  
  474. #ifdef __cplusplus
  475. }
  476. #endif
  477.  
  478.  
  479. #endif
  480.