PCCardEnablerPlugin.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:25k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       PCCardEnablerPlugin.h
  3.  
  4.      Contains:   Interfacer for PCCard Manager 3.0
  5.  
  6.      Version:    Technology: Mac OS 8.5
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1997-2001 by Apple Computer, Inc. and SystemSoft Corporation.  All rights reserved.
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __PCCARDENABLERPLUGIN__
  18. #define __PCCARDENABLERPLUGIN__
  19. #ifndef __MACTYPES__
  20. #include "MacTypes.h"
  21. #endif
  22. #ifndef __NAMEREGISTRY__
  23. #include "NameRegistry.h"
  24. #endif
  25. #ifndef __INTERRUPTS__
  26. #include "Interrupts.h"
  27. #endif
  28. #ifndef __PCCARD__
  29. #include "PCCard.h"
  30. #endif
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #if PRAGMA_IMPORT
  38. #pragma import on
  39. #endif
  40. #if PRAGMA_STRUCT_ALIGN
  41.     #pragma options align=power
  42. #elif PRAGMA_STRUCT_PACKPUSH
  43.     #pragma pack(push, 2)
  44. #elif PRAGMA_STRUCT_PACK
  45.     #pragma pack(2)
  46. #endif
  47. #ifndef __CARDSERVICES__
  48. /*
  49.     NOTE: These prototypes conflict with CardServices.*
  50.           You cannot use both PCCardEnablerPlugin.h and CardServices.h
  51.           
  52. */
  53. /*  Copyright:  (c) 1996 SystemSoft Corporation, all rights reserved. */
  54. /*------------------------------------------------------------------------------------
  55.     Card Services calls exported by the Family
  56. ------------------------------------------------------------------------------------*/
  57. /*  Card Services for Card Enablers*/
  58. #if CALL_NOT_IN_CARBON
  59. EXTERN_API_C( OSStatus )
  60. CSGetCardServicesInfo           (UInt32 *               socketCount,
  61.                                  UInt32 *               complianceLevel,
  62.                                  UInt32 *               version);
  63. /* Function prototypes for tuples calls */
  64. EXTERN_API_C( OSStatus )
  65. CSGetFirstTuple                 (PCCardSocket           socket,
  66.                                  UInt32                 device,
  67.                                  PCCardTupleIterator    tupleIterator,
  68.                                  Byte                   desiredTuple,
  69.                                  void *                 tupleData,
  70.                                  ByteCount *            tupleBufferSize,
  71.                                  Byte *                 foundTuple);
  72. EXTERN_API_C( OSStatus )
  73. CSGetNextTuple                  (PCCardTupleIterator    tupleIterator,
  74.                                  Byte                   desiredTuple,
  75.                                  void *                 tupleData,
  76.                                  ByteCount *            tupleBufferSize,
  77.                                  Byte *                 foundTuple);
  78. /* Function prototypes for window calls*/
  79. EXTERN_API_C( OSStatus )
  80. CSRequestWindow                 (PCCardSocket           vSocket,
  81.                                  UInt32                 device,
  82.                                  PCCardWindowAttributes  windowAttributes,
  83.                                  PCCardAccessSpeed      windowSpeed,
  84.                                  LogicalAddress *       windowBase,
  85.                                  PCCardWindowSize *     windowSize,
  86.                                  PCCardWindowOffset *   windowOffset,
  87.                                  PCCardWindowID *       requestedWindow);
  88. EXTERN_API_C( OSStatus )
  89. CSReleaseWindow                 (PCCardWindowID         windowToRelease);
  90. EXTERN_API_C( OSStatus )
  91. CSModifyWindow                  (PCCardWindowID         windowToModify,
  92.                                  PCCardWindowType       windowAttributes,
  93.                                  PCCardAccessSpeed      memorySpeed,
  94.                                  PCCardWindowOffset *   windowOffset);
  95. EXTERN_API_C( OSStatus )
  96. CSGetWindowBaseAddress          (PCCardWindowID         window,
  97.                                  LogicalAddress *       baseAddress);
  98. EXTERN_API_C( OSStatus )
  99. CSInquireWindow                 (PCCardSocket           vSocket,
  100.                                  UInt32                 device,
  101.                                  PCCardWindowID         windowID,
  102.                                  PCCardWindowAttributes * windowAttributes,
  103.                                  PCCardAccessSpeed *    windowParam,
  104.                                  UInt32 *               windowBase,
  105.                                  PCCardWindowSize *     windowSize,
  106.                                  PCCardWindowOffset *   windowOffset);
  107. /* Function prototypes for CIS calls*/
  108. EXTERN_API_C( OSStatus )
  109. CSValidateCIS                   (PCCardSocket           vSocket,
  110.                                  UInt32                 device,
  111.                                  UInt32 *               cisChainCount);
  112. EXTERN_API_C( OSStatus )
  113. CSGetDeviceCount                (PCCardSocket           vSocket,
  114.                                  UInt32 *               deviceCount);
  115. /* Function prototypes for Status calls*/
  116. EXTERN_API_C( OSStatus )
  117. CSGetStatus                     (PCCardSocket           vSocket,
  118.                                  UInt32 *               currentState,
  119.                                  UInt32 *               changedState,
  120.                                  PCCardVoltage *        Vcc,
  121.                                  PCCardVoltage *        Vpp);
  122. /* Function prototypes for configuration calls*/
  123. EXTERN_API_C( OSStatus )
  124. CSRequestConfiguration          (PCCardSocket           vSocket,
  125.                                  UInt32                 device,
  126.                                  PCCardConfigOptions    configOptions,
  127.                                  PCCardInterfaceType    socketInterface,
  128.                                  PCCardCustomInterfaceID  customInterface,
  129.                                  PCCardVoltage          vcc,
  130.                                  PCCardVoltage          vpp,
  131.                                  PCCardIRQ              IRQ,
  132.                                  PCCardDMA              DMA,
  133.                                  UInt32                 configRegBaseAddress,
  134.                                  PCCardConfigPresentMask  configRegPresentMask,
  135.                                  PCCardFunctionConfigReg * configReg);
  136. EXTERN_API_C( OSStatus )
  137. CSModifyConfiguration           (PCCardSocket           vSocket,
  138.                                  UInt32                 device,
  139.                                  PCCardConfigOptions    modifyAttributes,
  140.                                  PCCardIRQ              IRQ,
  141.                                  PCCardDMA              DMA,
  142.                                  PCCardVoltage          Vpp);
  143. EXTERN_API_C( OSStatus )
  144. CSReleaseConfiguration          (PCCardSocket           vSocket,
  145.                                  UInt32                 device);
  146. EXTERN_API_C( OSStatus )
  147. CSSetRingIndicate               (PCCardSocket           vSocket,
  148.                                  Boolean                setRingIndicate);
  149. EXTERN_API_C( OSStatus )
  150. CSResetFunction                 (PCCardSocket           vSocket,
  151.                                  UInt32                 device);
  152. EXTERN_API_C( OSStatus )
  153. CSReadConfigurationRegister     (PCCardSocket           vSocket,
  154.                                  UInt32                 device,
  155.                                  PCCardConfigPresentMask  whichRegister,
  156.                                  UInt32                 configRegBaseAddress,
  157.                                  UInt8 *                registerValue);
  158. EXTERN_API_C( OSStatus )
  159. CSWriteConfigurationRegister    (PCCardSocket           vSocket,
  160.                                  UInt32                 device,
  161.                                  PCCardConfigPresentMask  whichRegister,
  162.                                  UInt32                 configRegBaseAddress,
  163.                                  UInt8                  registerValue);
  164. /* Function prototypes for Client Support calls*/
  165. EXTERN_API_C( OSStatus )
  166. CSRegisterClient                (PCCardSocket           vSocket,
  167.                                  PCCardEventMask        eventMask,
  168.                                  PCCardEventHandler     clientCallBack,
  169.                                  void *                 clientParam,
  170.                                  PCCardClientID *       newClientID);
  171. EXTERN_API_C( OSStatus )
  172. CSDeRegisterClient              (PCCardClientID         theClientID);
  173. EXTERN_API_C( OSStatus )
  174. CSSetEventMask                  (PCCardClientID         theClientID,
  175.                                  PCCardEventMask        newEventMask);
  176. EXTERN_API_C( OSStatus )
  177. CSGetEventMask                  (PCCardClientID         theClientID,
  178.                                  PCCardEventMask *      newEventMask);
  179. EXTERN_API_C( OSStatus )
  180. CSRegisterTimer                 (PCCardClientID         registeredClientID,
  181.                                  PCCardTimerID *        lpNewTimerID,
  182.                                  long                   delay);
  183. EXTERN_API_C( OSStatus )
  184. CSDeRegisterTimer               (PCCardTimerID          timerID);
  185. /* Function prototypes for CardBus Config Space access*/
  186. EXTERN_API_C( OSStatus )
  187. CSReadCardBusConfigSpace        (PCCardSocket           vSocket,
  188.                                  UInt32                 device,
  189.                                  UInt32                 configOffset,
  190.                                  Byte *                 data,
  191.                                  UInt32                 dataSize);
  192. EXTERN_API_C( OSStatus )
  193. CSWriteCardBusConfigSpace       (PCCardSocket           vSocket,
  194.                                  UInt32                 device,
  195.                                  UInt32                 configOffset,
  196.                                  Byte *                 data,
  197.                                  UInt32                 dataSize);
  198. /*------------------------------------------------------------------------------------
  199.     Card Enabler Types
  200. ------------------------------------------------------------------------------------*/
  201. #endif  /* CALL_NOT_IN_CARBON */
  202. enum {
  203.     kUnknownDeviceType          = FOUR_CHAR_CODE('unkn'),       /* class-code = 0x00 */
  204.     kSCSIDeviceType             = FOUR_CHAR_CODE('scsi'),       /* class-code = 0x01, sub-class = 0x00 */
  205.     kBlockDeviceType            = FOUR_CHAR_CODE('blok'),       /* class-code = 0x01, sub-class = 0xXX */
  206.     kNetworkDeviceType          = FOUR_CHAR_CODE('netw'),       /* class-code = 0x02 */
  207.     kDisplayDeviceType          = FOUR_CHAR_CODE('dspl'),       /* class-code = 0x03 */
  208.     kMultimediaDeviceType       = FOUR_CHAR_CODE('mmdv'),       /* class-code = 0x04 */
  209.     kMemoryDeviceType           = FOUR_CHAR_CODE('mem '),       /* class-code = 0x05 */
  210.     kBridgeDeviceType           = FOUR_CHAR_CODE('brdg'),       /* class-code = 0x06 */
  211.     kCommDeviceType             = FOUR_CHAR_CODE('comm'),       /* class-code = 0x07 */
  212.     kPeripheralDeviceType       = FOUR_CHAR_CODE('sysp'),       /* class-code = 0x08 */
  213.     kInputDeviceType            = FOUR_CHAR_CODE('inpt'),       /* class-code = 0x09 */
  214.     kDockingDeviceType          = FOUR_CHAR_CODE('dock'),       /* class-code = 0x0A */
  215.     kProcessorDeviceType        = FOUR_CHAR_CODE('proc'),       /* class-code = 0x0B */
  216.     kFirewireBusDeviceType      = FOUR_CHAR_CODE('firw'),       /* class-code = 0x0C, sub-class = 0x00 */
  217.     kACCESSBusDeviceType        = FOUR_CHAR_CODE('accs'),       /* class-code = 0x0C, sub-class = 0x01 */
  218.     kSSABusDeviceType           = FOUR_CHAR_CODE('ssa '),       /* class-code = 0x0C, sub-class = 0x02 */
  219.     kUSBBusDeviceType           = FOUR_CHAR_CODE('usb '),       /* class-code = 0x0C, sub-class = 0x03 */
  220.     kFibreBusDeviceType         = FOUR_CHAR_CODE('fibr'),       /* class-code = 0x0C, sub-class = 0x04 */
  221.     kByteDeviceType             = FOUR_CHAR_CODE('byte'),       /* class-code = 0x?? */
  222.     kSerialDeviceType           = FOUR_CHAR_CODE('ser '),       /* class-code = 0x?? */
  223.     kParallelDeviceType         = FOUR_CHAR_CODE('parl'),       /* class-code = 0x?? */
  224.     kAIMSDeviceType             = FOUR_CHAR_CODE('aims')        /* class-code = 0x?? */
  225. };
  226. typedef OSType                          PCDeviceType;
  227. enum {
  228.     kAttributeType              = 0,
  229.     kMemoryType                 = 1,
  230.     kIOType                     = 2
  231. };
  232. typedef UInt32                          PCCardMemoryType;
  233. enum {
  234.     kUnknown                    = FOUR_CHAR_CODE('unkn'),
  235.     kPCCard16                   = FOUR_CHAR_CODE('pc16'),
  236.     kCardBus                    = FOUR_CHAR_CODE('cdbs')
  237. };
  238. typedef OSType                          PCCardArchitectureType;
  239. #define kNodeNameName                           "name"
  240. #define k16BitPCCardName                        "16bitcard"
  241. #define kCardbusPropertyName                    "cardbus"
  242. #define kNodeCompatiblePropertyName         "compatible"
  243. #define kDevice_TypeName                        "device_type"
  244. #define kDriverISTPropertyName                  "driver-ist"
  245. #define kFCRAccessPropertyName                  "FCRAccess"
  246. #define kConfigRegPropertyName                  "ConfigRegValues"
  247. #define kNodeTypePropertyName                   "PCCardNodeType"
  248. #define kDeviceNumberPropertName                "DeviceNumber"
  249. #define kSocketNumberPropertName                "SocketNumber"
  250. /*------------------------------------------------------------------------------------
  251.   Plugin Dispatch Table
  252. ------------------------------------------------------------------------------------*/
  253. enum {
  254.     kServiceTypePCCardEnabler   = FOUR_CHAR_CODE('card'),
  255.     kPCCardEnablerPluginVersion = 0x00000001,
  256.     kPCCardEnablerPluginCurrentVersion = kPCCardEnablerPluginVersion
  257. };
  258. /*  Card Enabler Entrypoints*/
  259. typedef CALLBACK_API_C( OSStatus , CEValidateHardwareProc )(const RegEntryID *cardRef);
  260. typedef CALLBACK_API_C( OSStatus , CEInitializeProc )(const RegEntryID *cardRef, Boolean replacingOld);
  261. typedef CALLBACK_API_C( OSStatus , CECleanupProc )(const RegEntryID *cardRef, Boolean beingReplaced);
  262. typedef CALLBACK_API_C( OSStatus , CEPowerManagementProc )(const RegEntryID *lpCardEntry, PCCardPowerOptions powerLevel);
  263. typedef CALLBACK_API_C( OSStatus , CEHandleEventProc )(const RegEntryID *cardRef, PCCardEvent theEvent);
  264. typedef CALLBACK_API_C( OSStatus , CEGetCardInfoProc )(const RegEntryID *cardRef, PCCardDevType *cardType, PCCardSubType *cardSubType, StringPtr cardName, StringPtr vendorName);
  265. typedef CALLBACK_API_C( OSStatus , CEAddCardPropertiesProc )(const RegEntryID *cardRef);
  266. typedef CALLBACK_API_C( OSStatus , CEGetDeviceCountProc )(const RegEntryID *cardRef, ItemCount *numberOfDevices);
  267. typedef CALLBACK_API_C( OSStatus , CEGetDeviceNameProc )(UInt32 socketNumber, UInt32 deviceNumber, char *deviceName);
  268. typedef CALLBACK_API_C( OSStatus , CEGetDeviceCompatibleProc )(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, char *name);
  269. typedef CALLBACK_API_C( OSStatus , CEGetDeviceTypeProc )(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, PCDeviceType *lpDeviceType);
  270. typedef CALLBACK_API_C( OSStatus , CEGetDeviceTypeNameProc )(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, char *name);
  271. typedef CALLBACK_API_C( OSStatus , CEAddDevicePropertiesProc )(const RegEntryID *deviceRef, UInt32 device);
  272. typedef CALLBACK_API_C( OSStatus , CEConfigureDeviceProc )(const RegEntryID *deviceRef, UInt32 deviceNumber);
  273. typedef CALLBACK_API_C( OSStatus , CEFinalizeDeviceProc )(UInt32 socket, UInt32 device, const RegEntryID *deviceRef);
  274. typedef CALLBACK_API_C( OSStatus , CEValidateCISProc )(UInt32 socket, UInt32 device, UInt32 *lpCISChainCount);
  275. typedef CALLBACK_API_C( OSStatus , CEGetFirstTupleProc )(UInt32 socket, UInt32 device, PCCardTupleIterator lpTupleIterator, Byte desiredTuple, void *lptupleData, UInt32 *lpTupleBufferSize, Byte *lpFoundTuple);
  276. typedef CALLBACK_API_C( OSStatus , CEGetNextTupleProc )(PCCardTupleIterator lpTupleIterator, Byte desiredTuple, void *lptupleData, UInt32 *lpTupleBufferSize, Byte *lpFoundTuple);
  277. struct PCCardEnablerPluginHeader {
  278.     UInt32                          pluginDispatchTableVersion;
  279.     UInt32                          reserved1;
  280.     UInt32                          reserved2;
  281.     UInt32                          reserved3;
  282. };
  283. typedef struct PCCardEnablerPluginHeader PCCardEnablerPluginHeader;
  284. struct PCCardEnablerPluginDispatchTable {
  285.     PCCardEnablerPluginHeader       header;
  286.                                                                 /* General functions*/
  287.     CEValidateHardwareProc          validateHardwareProc;
  288.     CEInitializeProc                initializeProc;
  289.     CECleanupProc                   cleanUpProc;
  290.     CEPowerManagementProc           setPCCardPowerLevel;
  291.                                                                 /* Card functions*/
  292.     CEHandleEventProc               handleEventProc;
  293.     CEGetCardInfoProc               getCardInfoProc;
  294.     CEAddCardPropertiesProc         addCardProperties;
  295.     CEGetDeviceCountProc            getDeviceCount;
  296.                                                                 /* Device functions*/
  297.     CEGetDeviceNameProc             getDeviceName;
  298.     CEGetDeviceCompatibleProc       getDeviceCompatibleNames;
  299.     CEGetDeviceTypeProc             getDeviceType;
  300.     CEGetDeviceTypeNameProc         getDeviceTypeName;
  301.     CEAddDevicePropertiesProc       addDeviceProperties;
  302.     CEConfigureDeviceProc           configureDevice;
  303.     CEFinalizeDeviceProc            finalizeDevice;
  304.                                                                 /* Card Services Overrides...*/
  305.     CEValidateCISProc               validateCIS;
  306.     CEGetFirstTupleProc             getFirstTuple;
  307.     CEGetNextTupleProc              getNextTuple;
  308.                                                                 /* InterruptHandlers...*/
  309.     InterruptHandler                cardInterruptHandlerFunction;
  310.     InterruptEnabler                cardInterruptEnableFunction;
  311.     InterruptDisabler               cardInterruptDisableFunction;
  312. };
  313. typedef struct PCCardEnablerPluginDispatchTable PCCardEnablerPluginDispatchTable;
  314. typedef PCCardEnablerPluginDispatchTable * PCCardEnablerPluginDispatchTablePtr;
  315. /*------------------------------------------------------------------------------------
  316.     PC Card Enabler Utility calls exported by the Family
  317. ------------------------------------------------------------------------------------*/
  318. /*  Generic Enabler Entrypoints*/
  319. #if CALL_NOT_IN_CARBON
  320. EXTERN_API_C( OSStatus )
  321. CEInitializeCard                (const RegEntryID *     cardRef,
  322.                                  Boolean                replacingOld);
  323. EXTERN_API_C( OSStatus )
  324. CEFinalizeCard                  (const RegEntryID *     cardRef,
  325.                                  Boolean                beingReplaced);
  326. EXTERN_API_C( OSStatus )
  327. CEPowerManagement               (const RegEntryID *     lpParentID,
  328.                                  PCCardPowerOptions     powerLevel);
  329. EXTERN_API_C( OSStatus )
  330. CEHandleCardEvent               (const RegEntryID *     cardRef,
  331.                                  PCCardEvent            lTheCardEvent);
  332. EXTERN_API_C( OSStatus )
  333. CEGetCardInfo                   (const RegEntryID *     cardRef,
  334.                                  PCCardDevType *        cardType,
  335.                                  PCCardSubType *        cardSubType,
  336.                                  StringPtr              cardName,
  337.                                  StringPtr              vendorName);
  338. EXTERN_API_C( OSStatus )
  339. CEAddCardProperties             (const RegEntryID *     cardRef);
  340. EXTERN_API_C( OSStatus )
  341. CEGetDeviceCount                (const RegEntryID *     cardRef,
  342.                                  ItemCount *            numberOfDevices);
  343. /* device functions*/
  344. EXTERN_API_C( OSStatus )
  345. CEGetDeviceName                 (UInt32                 socketNumber,
  346.                                  UInt32                 deviceNumber,
  347.                                  char *                 deviceName);
  348. EXTERN_API_C( OSStatus )
  349. CEGetDeviceCompatibleNames      (const RegEntryID *     deviceRef,
  350.                                  UInt32                 socketNumber,
  351.                                  UInt32                 deviceNumber,
  352.                                  char *                 name);
  353. EXTERN_API_C( OSStatus )
  354. CEGetDeviceType                 (const RegEntryID *     deviceRef,
  355.                                  UInt32                 socketNumber,
  356.                                  UInt32                 deviceNumber,
  357.                                  PCDeviceType *         lpDeviceType);
  358. EXTERN_API_C( OSStatus )
  359. CEGetDeviceTypeName             (const RegEntryID *     deviceRef,
  360.                                  UInt32                 socketNumber,
  361.                                  UInt32                 deviceNumber,
  362.                                  char *                 name);
  363. EXTERN_API_C( OSStatus )
  364. CEAddDeviceProperties           (const RegEntryID *     deviceRef,
  365.                                  UInt32                 deviceNumber);
  366. EXTERN_API_C( OSStatus )
  367. CEConfigureDevice               (const RegEntryID *     deviceRef,
  368.                                  UInt32                 deviceNumber);
  369. EXTERN_API_C( OSStatus )
  370. CEFinalizeDevice                (UInt32                 socket,
  371.                                  UInt32                 device,
  372.                                  const RegEntryID *     deviceRef);
  373. /*  RegEntryID <-> socket number mapping functions*/
  374. EXTERN_API_C( OSStatus )
  375. CEGetSocketAndDeviceFromRegEntry (const RegEntryID *    lpNode,
  376.                                  UInt32 *               lpSocket,
  377.                                  UInt32 *               lpDevice);
  378. EXTERN_API_C( OSStatus )
  379. CEGetPhysicalSocketNumber       (const RegEntryID *     socketRef,
  380.                                  const RegEntryID *     lpDeviceEntry,
  381.                                  UInt32 *               lpPhysicalSocketNumber);
  382. /*  Hardware Validation Utilities*/
  383. EXTERN_API_C( OSStatus )
  384. CECompareCISTPL_VERS_1          (const RegEntryID *     cardRef,
  385.                                  Byte                   majorVersion,
  386.                                  Byte                   minorVersion,
  387.                                  const char *           manufacturer,
  388.                                  const char *           productName,
  389.                                  const char *           info1,
  390.                                  const char *           info2,
  391.                                  Boolean *              identical);
  392. EXTERN_API_C( OSStatus )
  393. CECompareCISTPL_MANFID          (const RegEntryID *     cardRef,
  394.                                  UInt16                 manufacturerCode,
  395.                                  UInt16                 manufacturerInfo,
  396.                                  Boolean *              identical);
  397. EXTERN_API_C( OSStatus )
  398. CECompareMemory                 (const RegEntryID *     cardRef,
  399.                                  PCCardMemoryType       memType,
  400.                                  ByteCount              offset,
  401.                                  ByteCount              length,
  402.                                  Byte *                 dataToCompare,
  403.                                  Boolean *              identical);
  404. EXTERN_API_C( OSStatus )
  405. CEValidateCIS                   (UInt32                 socket,
  406.                                  UInt32                 device,
  407.                                  UInt32 *               lpCISChainCount);
  408. EXTERN_API_C( InterruptMemberNumber )
  409. CEDefaultInterruptHandler       (InterruptSetMember     ISTmember,
  410.                                  void *                 refCon,
  411.                                  UInt32                 theIntCount);
  412. /*------------------------------------------------------------------------------------
  413.     PC Card Customization Resources
  414. ------------------------------------------------------------------------------------*/
  415. #endif  /* CALL_NOT_IN_CARBON */
  416. enum {
  417.     kPCCardCustomInfoResType    = FOUR_CHAR_CODE('pccd'),
  418.     kPCCardCustomInfoVersion    = 0
  419. };
  420. struct PCCardCustomResource {
  421.     long                            version;
  422.     short                           customIconID;               /*    ICN#, etc. resource ID*/
  423.     short                           customStringsID;            /*    STR# resource ID*/
  424.     short                           customTypeStringIndex;
  425.     short                           customHelpStringIndex;
  426.     OSType                          customAction;
  427.     long                            customActionParam1;
  428.     long                            customActionParam2;
  429. };
  430. typedef struct PCCardCustomResource     PCCardCustomResource;
  431. #endif  /* !defined(__CARDSERVICES__) */
  432. #if PRAGMA_STRUCT_ALIGN
  433.     #pragma options align=reset
  434. #elif PRAGMA_STRUCT_PACKPUSH
  435.     #pragma pack(pop)
  436. #elif PRAGMA_STRUCT_PACK
  437.     #pragma pack()
  438. #endif
  439. #ifdef PRAGMA_IMPORT_OFF
  440. #pragma import off
  441. #elif PRAGMA_IMPORT
  442. #pragma import reset
  443. #endif
  444. #ifdef __cplusplus
  445. }
  446. #endif
  447. #endif /* __PCCARDENABLERPLUGIN__ */