PageRenderTime 56ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/libs/quicktime/include/PCCardAdapterPlugin.h

http://github.com/openframeworks/openFrameworks
C Header | 204 lines | 137 code | 34 blank | 33 comment | 0 complexity | 9f4ba5b357fd485a766a588aaf01bd01 MD5 | raw file
Possible License(s): LGPL-3.0, LGPL-2.1, MPL-2.0-no-copyleft-exception, GPL-2.0, GPL-3.0, BSD-3-Clause
  1. /*
  2. File: PCCardAdapterPlugin.h
  3. Contains: PC Card Socket Service Plug-In Programming Interface
  4. Version: Technology: System 7.5
  5. Release: QuickTime 6.0.2
  6. Copyright: (c) 1996-2001 by Apple Computer, Inc. and SystemSoft Corporation. All rights reserved.
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://developer.apple.com/bugreporter/
  10. */
  11. #ifndef __PCCARDADAPTERPLUGIN__
  12. #define __PCCARDADAPTERPLUGIN__
  13. #ifndef __MACTYPES__
  14. #include <MacTypes.h>
  15. #endif
  16. #ifndef __NAMEREGISTRY__
  17. #include <NameRegistry.h>
  18. #endif
  19. #ifndef __INTERRUPTS__
  20. #include <Interrupts.h>
  21. #endif
  22. #ifndef __PCCARD__
  23. #include <PCCard.h>
  24. #endif
  25. #if PRAGMA_ONCE
  26. #pragma once
  27. #endif
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. #if PRAGMA_IMPORT
  32. #pragma import on
  33. #endif
  34. #if PRAGMA_STRUCT_ALIGN
  35. #pragma options align=power
  36. #elif PRAGMA_STRUCT_PACKPUSH
  37. #pragma pack(push, 2)
  38. #elif PRAGMA_STRUCT_PACK
  39. #pragma pack(2)
  40. #endif
  41. /*------------------------------------------------------------------------------------
  42. Types
  43. ------------------------------------------------------------------------------------*/
  44. /* Interrupt Status Change bits*/
  45. enum {
  46. kSCBatteryDead = 0x01, /* Battery Dead Status Change*/
  47. kSCBatteryLow = 0x02, /* Battery Warning Status Change*/
  48. kSCReady = 0x04, /* Ready Status Change*/
  49. kSCCardDetect = 0x08, /* Card Detect Status Change*/
  50. kSCCardEjected = 0x10, /* Card Ejected*/
  51. kSCStatusChange = 0x20, /* PC Card Status Change Signal Asserted*/
  52. kSCRingIndicate = 0x40 /* PC Card Ring Indicate Signal Asserted*/
  53. };
  54. /* IRQ bits */
  55. enum {
  56. kIRQLevelMask = 0x1F,
  57. kIRQInvalid = 0x20,
  58. kIRQHigh = 0x40,
  59. kIRQEnable = 0x80
  60. };
  61. /* bits for adapter characteristics flags*/
  62. enum {
  63. SS_ADPT_FLG_IND = 0x01, /* indicators for write-protect, card lock,*/
  64. /* battery status, busy status, and XIP*/
  65. /* are shared for all sockets*/
  66. SS_ADPT_FLG_PWR = 0x02, /* if set indicates that the sockets*/
  67. /* share the same power control*/
  68. SS_ADPT_FLG_DBW = 0x04, /* all windows on the adapter must use*/
  69. /* the same Data Bus Width*/
  70. SS_ADPT_FLG_CARDBUS = 0x08, /* all sockets are CardBus PC Card capable*/
  71. SS_ADPT_FLG_DMA = 0x10, /* the adapter has DMA capability*/
  72. /* bits for adapter power characteristics*/
  73. SS_ADPT_FLG_V33 = 0x20, /* adapter supports 3.3 volt power to socket*/
  74. SS_ADPT_FLG_V50 = 0x40, /* adapter supports 5.0 volt power to socket*/
  75. SS_ADPT_FLG_V12 = 0x80 /* adapter supports 12.0 volt power to socket*/
  76. };
  77. /*------------------------------------------------------------------------------------
  78. Calls exported by the Family
  79. ------------------------------------------------------------------------------------*/
  80. #if CALL_NOT_IN_CARBON
  81. EXTERN_API_C( OSStatus )
  82. CSReportStatusChange (const RegEntryID * adapterRef,
  83. PCCardSocket whichSocket,
  84. PCCardSCEvents statusChange,
  85. PCCardSocketStatus socketStatus);
  86. /*------------------------------------------------------------------------------------
  87. Plugin Dispatch Table
  88. ------------------------------------------------------------------------------------*/
  89. #endif /* CALL_NOT_IN_CARBON */
  90. typedef CALLBACK_API_C( OSStatus , SSValidateHardwareProc )(const RegEntryID *deviceID);
  91. typedef CALLBACK_API_C( OSStatus , SSInitializeProc )(const RegEntryID *deviceID, Boolean replacingOldDriver);
  92. typedef CALLBACK_API_C( OSStatus , SSSuspendProc )(const RegEntryID *deviceID);
  93. typedef CALLBACK_API_C( OSStatus , SSResumeProc )(const RegEntryID *deviceID);
  94. typedef CALLBACK_API_C( OSStatus , SSFinalizeProc )(const RegEntryID *deviceID, Boolean beingReplaced);
  95. typedef CALLBACK_API_C( OSStatus , SSInquireAdapterProc )(ItemCount *numberOfSockets, ItemCount *numberOfWindows, ItemCount *numberOfBridgeWindow, PCCardAdapterCapabilities *capabilities);
  96. typedef CALLBACK_API_C( OSStatus , SSInquireSocketProc )(PCCardSocket socket, ItemCount *numberOfWindows, PCCardSocketStatus *supportedSocketStatus, PCCardSCEvents *supportedStatusChange);
  97. typedef CALLBACK_API_C( OSStatus , SSGetSocketProc )(PCCardSocket socket, PCCardVoltage *Vcc, PCCardVoltage *Vpp, PCCardVoltage *Vs, PCCardInterfaceType *socketIF, PCCardCustomInterfaceID *customIFID, PCCardSocketStatus *socketStatus, PCCardSCEvents *SCEventsMask, PCCardIRQ *IRQ, PCCardDMA *DMA);
  98. typedef CALLBACK_API_C( OSStatus , SSSetSocketProc )(PCCardSocket socket, PCCardVoltage Vcc, PCCardVoltage Vpp, PCCardInterfaceType socketIF, PCCardCustomInterfaceID customIFID, PCCardSocketStatus statusReset, PCCardSCEvents SCEventsMask, PCCardIRQ IRQ, PCCardDMA DMA);
  99. typedef CALLBACK_API_C( OSStatus , SSResetSocketProc )(PCCardSocket socket);
  100. typedef CALLBACK_API_C( OSStatus , SSGetStatusProc )(PCCardSocket socket, PCCardSocketStatus *currentStatus, PCCardSocketStatus *changedStatus);
  101. typedef CALLBACK_API_C( OSStatus , SSInquireWindowProc )(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowSize *windowSize, PCCardWindowAlign *windowAlign);
  102. typedef CALLBACK_API_C( OSStatus , SSGetWindowProc )(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PhysicalAddress *startAddress, PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset, PCCardAccessSpeed *memSpeed);
  103. typedef CALLBACK_API_C( OSStatus , SSSetWindowProc )(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PhysicalAddress startAddress, PCCardWindowSize windowSize, PCCardWindowOffset windowOffset, PCCardAccessSpeed memSpeed);
  104. typedef CALLBACK_API_C( OSStatus , SSGetWindowOffsetProc )(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowOffset *windowOffset);
  105. typedef CALLBACK_API_C( OSStatus , SSSetWindowOffsetProc )(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PCCardWindowOffset windowOffset);
  106. typedef CALLBACK_API_C( OSStatus , SSInquireBridgeWindowProc )(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowSize *windowSize, PCCardWindowAlign *windowAlign);
  107. typedef CALLBACK_API_C( OSStatus , SSGetBridgeWindowProc )(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PhysicalAddress *startAddress, PCCardWindowSize *windowSize);
  108. typedef CALLBACK_API_C( OSStatus , SSSetBridgeWindowProc )(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PhysicalAddress startAddress, PCCardWindowSize windowSize);
  109. typedef CALLBACK_API_C( OSStatus , SSGetInterruptSetMemberProc )(PCCardSocket socket, InterruptSetMember *interruptSetMember);
  110. typedef CALLBACK_API_C( OSStatus , SSEjectCardProc )(PCCardSocket socket);
  111. enum {
  112. kServiceTypePCCardAdapter = FOUR_CHAR_CODE('sock'),
  113. kPCCardAdapterPluginVersion = 0x00000001,
  114. kPCCardAdapterPluginCurrentVersion = kPCCardAdapterPluginVersion
  115. };
  116. struct PCCardAdapterPluginHeader {
  117. UInt32 version;
  118. UInt32 reserved1;
  119. UInt32 reserved2;
  120. UInt32 reserved3;
  121. };
  122. typedef struct PCCardAdapterPluginHeader PCCardAdapterPluginHeader;
  123. struct PCCardAdapterPluginDispatchTable {
  124. PCCardAdapterPluginHeader header;
  125. SSValidateHardwareProc validateHardware;
  126. SSInitializeProc initialize;
  127. SSSuspendProc suspend;
  128. SSResumeProc resume;
  129. SSFinalizeProc finalize;
  130. SSInquireAdapterProc inquireAdapter;
  131. SSInquireSocketProc inquireSocket;
  132. SSGetSocketProc getSocket;
  133. SSSetSocketProc setSocket;
  134. SSResetSocketProc resetSocket;
  135. SSGetStatusProc getStatus;
  136. SSInquireWindowProc inquireWindow;
  137. SSGetWindowProc getWindow;
  138. SSSetWindowProc setWindow;
  139. SSGetWindowOffsetProc getWindowOffset;
  140. SSSetWindowOffsetProc setWindowOffset;
  141. SSInquireBridgeWindowProc inquireBridgeWindow;
  142. SSGetBridgeWindowProc getBridgeWindow;
  143. SSSetBridgeWindowProc setBridgeWindow;
  144. SSGetInterruptSetMemberProc getInterruptSetMember;
  145. SSEjectCardProc ejectCard;
  146. };
  147. typedef struct PCCardAdapterPluginDispatchTable PCCardAdapterPluginDispatchTable;
  148. typedef PCCardAdapterPluginDispatchTable * PCCardAdapterPluginDispatchTablePtr;
  149. #if PRAGMA_STRUCT_ALIGN
  150. #pragma options align=reset
  151. #elif PRAGMA_STRUCT_PACKPUSH
  152. #pragma pack(pop)
  153. #elif PRAGMA_STRUCT_PACK
  154. #pragma pack()
  155. #endif
  156. #ifdef PRAGMA_IMPORT_OFF
  157. #pragma import off
  158. #elif PRAGMA_IMPORT
  159. #pragma import reset
  160. #endif
  161. #ifdef __cplusplus
  162. }
  163. #endif
  164. #endif /* __PCCARDADAPTERPLUGIN__ */