20 #ifndef __PCCARDENABLERPLUGIN__
21 #define __PCCARDENABLERPLUGIN__
27 #ifndef __NAMEREGISTRY__
31 #ifndef __INTERRUPTS__
52 #if PRAGMA_STRUCT_ALIGN
53 #pragma options align = power
54 #elif PRAGMA_STRUCT_PACKPUSH
56 #elif PRAGMA_STRUCT_PACK
60 #ifndef __CARDSERVICES__
73 #if CALL_NOT_IN_CARBON
98 PCCardTupleIterator tupleIterator, Byte desiredTuple,
99 void *tupleData, ByteCount *tupleBufferSize, Byte *foundTuple);
111 void *tupleData, ByteCount *tupleBufferSize, Byte *foundTuple);
125 PCCardWindowAttributes windowAttributes,
126 PCCardAccessSpeed windowSpeed, LogicalAddress *windowBase,
127 PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset,
128 PCCardWindowID *requestedWindow);
151 PCCardAccessSpeed memorySpeed, PCCardWindowOffset *windowOffset);
174 PCCardWindowAttributes *windowAttributes,
175 PCCardAccessSpeed *windowParam, UInt32 *windowBase,
176 PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset);
213 CSGetStatus(PCCardSocket vSocket, UInt32 *currentState, UInt32 *changedState,
214 PCCardVoltage *Vcc, PCCardVoltage *Vpp);
228 PCCardConfigOptions configOptions,
229 PCCardInterfaceType socketInterface,
230 PCCardCustomInterfaceID customInterface,
231 PCCardVoltage vcc, PCCardVoltage vpp, PCCardIRQ IRQ,
232 PCCardDMA DMA, UInt32 configRegBaseAddress,
233 PCCardConfigPresentMask configRegPresentMask,
246 PCCardConfigOptions modifyAttributes, PCCardIRQ IRQ,
247 PCCardDMA DMA, PCCardVoltage Vpp);
292 PCCardConfigPresentMask whichRegister,
293 UInt32 configRegBaseAddress, UInt8 *registerValue);
305 PCCardConfigPresentMask whichRegister,
306 UInt32 configRegBaseAddress, UInt8 registerValue);
319 PCCardEventHandler clientCallBack,
void *clientParam,
320 PCCardClientID *newClientID);
389 UInt32 configOffset, Byte *data, UInt32 dataSize);
401 UInt32 configOffset, Byte *data, UInt32 dataSize);
410 kUnknownDeviceType = FOUR_CHAR_CODE(
'unkn'),
412 FOUR_CHAR_CODE(
'scsi'),
414 FOUR_CHAR_CODE(
'blok'),
415 kNetworkDeviceType = FOUR_CHAR_CODE(
'netw'),
416 kDisplayDeviceType = FOUR_CHAR_CODE(
'dspl'),
417 kMultimediaDeviceType = FOUR_CHAR_CODE(
'mmdv'),
418 kMemoryDeviceType = FOUR_CHAR_CODE(
'mem '),
419 kBridgeDeviceType = FOUR_CHAR_CODE(
'brdg'),
420 kCommDeviceType = FOUR_CHAR_CODE(
'comm'),
421 kPeripheralDeviceType = FOUR_CHAR_CODE(
'sysp'),
422 kInputDeviceType = FOUR_CHAR_CODE(
'inpt'),
423 kDockingDeviceType = FOUR_CHAR_CODE(
'dock'),
424 kProcessorDeviceType = FOUR_CHAR_CODE(
'proc'),
425 kFirewireBusDeviceType =
426 FOUR_CHAR_CODE(
'firw'),
427 kACCESSBusDeviceType =
428 FOUR_CHAR_CODE(
'accs'),
430 FOUR_CHAR_CODE(
'ssa '),
432 FOUR_CHAR_CODE(
'usb '),
433 kFibreBusDeviceType =
434 FOUR_CHAR_CODE(
'fibr'),
435 kByteDeviceType = FOUR_CHAR_CODE(
'byte'),
436 kSerialDeviceType = FOUR_CHAR_CODE(
'ser '),
437 kParallelDeviceType = FOUR_CHAR_CODE(
'parl'),
438 kAIMSDeviceType = FOUR_CHAR_CODE(
'aims')
441 typedef OSType PCDeviceType;
449 typedef UInt32 PCCardMemoryType;
452 kUnknown = FOUR_CHAR_CODE(
'unkn'),
453 kPCCard16 = FOUR_CHAR_CODE(
'pc16'),
454 kCardBus = FOUR_CHAR_CODE(
'cdbs')
457 typedef OSType PCCardArchitectureType;
458 #define kNodeNameName "name"
459 #define k16BitPCCardName "16bitcard"
460 #define kCardbusPropertyName "cardbus"
461 #define kNodeCompatiblePropertyName "compatible"
462 #define kDevice_TypeName "device_type"
463 #define kDriverISTPropertyName "driver-ist"
464 #define kFCRAccessPropertyName "FCRAccess"
465 #define kConfigRegPropertyName "ConfigRegValues"
466 #define kNodeTypePropertyName "PCCardNodeType"
467 #define kDeviceNumberPropertName "DeviceNumber"
468 #define kSocketNumberPropertName "SocketNumber"
475 kServiceTypePCCardEnabler = FOUR_CHAR_CODE(
'card'),
476 kPCCardEnablerPluginVersion = 0x00000001,
477 kPCCardEnablerPluginCurrentVersion = kPCCardEnablerPluginVersion
481 typedef CALLBACK_API_C(OSStatus,
482 CEValidateHardwareProc)(
const RegEntryID *cardRef);
483 typedef CALLBACK_API_C(OSStatus, CEInitializeProc)(
const RegEntryID *cardRef,
485 typedef CALLBACK_API_C(OSStatus, CECleanupProc)(
const RegEntryID *cardRef,
487 typedef CALLBACK_API_C(OSStatus,
488 CEPowerManagementProc)(
const RegEntryID *lpCardEntry,
489 PCCardPowerOptions powerLevel);
490 typedef CALLBACK_API_C(OSStatus, CEHandleEventProc)(
const RegEntryID *cardRef,
492 typedef CALLBACK_API_C(OSStatus, CEGetCardInfoProc)(
const RegEntryID *cardRef,
493 PCCardDevType *cardType,
494 PCCardSubType *cardSubType,
497 typedef CALLBACK_API_C(OSStatus,
498 CEAddCardPropertiesProc)(
const RegEntryID *cardRef);
499 typedef CALLBACK_API_C(OSStatus,
500 CEGetDeviceCountProc)(
const RegEntryID *cardRef,
501 ItemCount *numberOfDevices);
502 typedef CALLBACK_API_C(OSStatus, CEGetDeviceNameProc)(UInt32 socketNumber,
505 typedef CALLBACK_API_C(OSStatus,
506 CEGetDeviceCompatibleProc)(
const RegEntryID *deviceRef,
510 typedef CALLBACK_API_C(OSStatus,
511 CEGetDeviceTypeProc)(
const RegEntryID *deviceRef,
514 PCDeviceType *lpDeviceType);
515 typedef CALLBACK_API_C(OSStatus,
516 CEGetDeviceTypeNameProc)(
const RegEntryID *deviceRef,
520 typedef CALLBACK_API_C(OSStatus,
521 CEAddDevicePropertiesProc)(
const RegEntryID *deviceRef,
523 typedef CALLBACK_API_C(OSStatus,
524 CEConfigureDeviceProc)(
const RegEntryID *deviceRef,
525 UInt32 deviceNumber);
526 typedef CALLBACK_API_C(OSStatus,
527 CEFinalizeDeviceProc)(UInt32 socket, UInt32 device,
529 typedef CALLBACK_API_C(OSStatus, CEValidateCISProc)(UInt32 socket,
531 UInt32 *lpCISChainCount);
532 typedef CALLBACK_API_C(OSStatus, CEGetFirstTupleProc)(
533 UInt32 socket, UInt32 device, PCCardTupleIterator lpTupleIterator,
534 Byte desiredTuple,
void *lptupleData, UInt32 *lpTupleBufferSize,
536 typedef CALLBACK_API_C(OSStatus,
537 CEGetNextTupleProc)(PCCardTupleIterator lpTupleIterator,
538 Byte desiredTuple,
void *lptupleData,
539 UInt32 *lpTupleBufferSize,
543 UInt32 pluginDispatchTableVersion;
554 CEValidateHardwareProc validateHardwareProc;
555 CEInitializeProc initializeProc;
556 CECleanupProc cleanUpProc;
557 CEPowerManagementProc setPCCardPowerLevel;
560 CEHandleEventProc handleEventProc;
561 CEGetCardInfoProc getCardInfoProc;
562 CEAddCardPropertiesProc addCardProperties;
563 CEGetDeviceCountProc getDeviceCount;
566 CEGetDeviceNameProc getDeviceName;
567 CEGetDeviceCompatibleProc getDeviceCompatibleNames;
568 CEGetDeviceTypeProc getDeviceType;
569 CEGetDeviceTypeNameProc getDeviceTypeName;
570 CEAddDevicePropertiesProc addDeviceProperties;
571 CEConfigureDeviceProc configureDevice;
572 CEFinalizeDeviceProc finalizeDevice;
575 CEValidateCISProc validateCIS;
576 CEGetFirstTupleProc getFirstTuple;
577 CEGetNextTupleProc getNextTuple;
580 InterruptHandler cardInterruptHandlerFunction;
581 InterruptEnabler cardInterruptEnableFunction;
582 InterruptDisabler cardInterruptDisableFunction;
591 #if CALL_NOT_IN_CARBON
646 PCCardSubType *cardSubType,
StringPtr cardName,
693 UInt32 deviceNumber,
char *name);
705 UInt32 deviceNumber, PCDeviceType *lpDeviceType);
717 UInt32 deviceNumber,
char *name);
776 UInt32 *lpPhysicalSocketNumber);
789 Byte minorVersion,
const char *manufacturer,
790 const char *productName,
const char *info1,
791 const char *info2,
Boolean *identical);
803 UInt16 manufacturerInfo,
Boolean *identical);
815 ByteCount offset, ByteCount length, Byte *dataToCompare,
837 InterruptMemberNumber
848 kPCCardCustomInfoResType = FOUR_CHAR_CODE(
'pccd'),
849 kPCCardCustomInfoVersion = 0
856 short customStringsID;
857 short customTypeStringIndex;
858 short customHelpStringIndex;
860 long customActionParam1;
861 long customActionParam2;
866 #if PRAGMA_STRUCT_ALIGN
867 #pragma options align = reset
868 #elif PRAGMA_STRUCT_PACKPUSH
870 #elif PRAGMA_STRUCT_PACK
874 #ifdef PRAGMA_IMPORT_OFF
Public Interface to the Interrupt Manager.
Basic Macintosh data types.
unsigned char * StringPtr
Definition: MacTypes.h:477
unsigned char Boolean
Definition: MacTypes.h:318
OSStatus CSDeRegisterTimer(PCCardTimerID timerID)
OSStatus CSGetCardServicesInfo(UInt32 *socketCount, UInt32 *complianceLevel, UInt32 *version)
OSStatus CSGetWindowBaseAddress(PCCardWindowID window, LogicalAddress *baseAddress)
OSStatus CEAddCardProperties(const RegEntryID *cardRef)
OSStatus CSModifyConfiguration(PCCardSocket vSocket, UInt32 device, PCCardConfigOptions modifyAttributes, PCCardIRQ IRQ, PCCardDMA DMA, PCCardVoltage Vpp)
OSStatus CECompareCISTPL_VERS_1(const RegEntryID *cardRef, Byte majorVersion, Byte minorVersion, const char *manufacturer, const char *productName, const char *info1, const char *info2, Boolean *identical)
OSStatus CSInquireWindow(PCCardSocket vSocket, UInt32 device, PCCardWindowID windowID, PCCardWindowAttributes *windowAttributes, PCCardAccessSpeed *windowParam, UInt32 *windowBase, PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset)
OSStatus CSWriteCardBusConfigSpace(PCCardSocket vSocket, UInt32 device, UInt32 configOffset, Byte *data, UInt32 dataSize)
OSStatus CEGetPhysicalSocketNumber(const RegEntryID *socketRef, const RegEntryID *lpDeviceEntry, UInt32 *lpPhysicalSocketNumber)
OSStatus CEValidateCIS(UInt32 socket, UInt32 device, UInt32 *lpCISChainCount)
OSStatus CSRegisterTimer(PCCardClientID registeredClientID, PCCardTimerID *lpNewTimerID, long delay)
OSStatus CSGetNextTuple(PCCardTupleIterator tupleIterator, Byte desiredTuple, void *tupleData, ByteCount *tupleBufferSize, Byte *foundTuple)
OSStatus CSReleaseWindow(PCCardWindowID windowToRelease)
OSStatus CEGetDeviceName(UInt32 socketNumber, UInt32 deviceNumber, char *deviceName)
OSStatus CSRequestWindow(PCCardSocket vSocket, UInt32 device, PCCardWindowAttributes windowAttributes, PCCardAccessSpeed windowSpeed, LogicalAddress *windowBase, PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset, PCCardWindowID *requestedWindow)
OSStatus CSModifyWindow(PCCardWindowID windowToModify, PCCardWindowType windowAttributes, PCCardAccessSpeed memorySpeed, PCCardWindowOffset *windowOffset)
OSStatus CSRegisterClient(PCCardSocket vSocket, PCCardEventMask eventMask, PCCardEventHandler clientCallBack, void *clientParam, PCCardClientID *newClientID)
InterruptMemberNumber CEDefaultInterruptHandler(InterruptSetMember ISTmember, void *refCon, UInt32 theIntCount)
OSStatus CEPowerManagement(const RegEntryID *lpParentID, PCCardPowerOptions powerLevel)
OSStatus CSSetEventMask(PCCardClientID theClientID, PCCardEventMask newEventMask)
OSStatus CSRequestConfiguration(PCCardSocket vSocket, UInt32 device, PCCardConfigOptions configOptions, PCCardInterfaceType socketInterface, PCCardCustomInterfaceID customInterface, PCCardVoltage vcc, PCCardVoltage vpp, PCCardIRQ IRQ, PCCardDMA DMA, UInt32 configRegBaseAddress, PCCardConfigPresentMask configRegPresentMask, PCCardFunctionConfigReg *configReg)
OSStatus CSReadConfigurationRegister(PCCardSocket vSocket, UInt32 device, PCCardConfigPresentMask whichRegister, UInt32 configRegBaseAddress, UInt8 *registerValue)
OSStatus CEHandleCardEvent(const RegEntryID *cardRef, PCCardEvent lTheCardEvent)
OSStatus CEFinalizeDevice(UInt32 socket, UInt32 device, const RegEntryID *deviceRef)
OSStatus CEGetDeviceType(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, PCDeviceType *lpDeviceType)
OSStatus CSSetRingIndicate(PCCardSocket vSocket, Boolean setRingIndicate)
OSStatus CSGetStatus(PCCardSocket vSocket, UInt32 *currentState, UInt32 *changedState, PCCardVoltage *Vcc, PCCardVoltage *Vpp)
OSStatus CEGetDeviceCompatibleNames(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, char *name)
OSStatus CEGetDeviceTypeName(const RegEntryID *deviceRef, UInt32 socketNumber, UInt32 deviceNumber, char *name)
OSStatus CSReadCardBusConfigSpace(PCCardSocket vSocket, UInt32 device, UInt32 configOffset, Byte *data, UInt32 dataSize)
OSStatus CSResetFunction(PCCardSocket vSocket, UInt32 device)
OSStatus CSGetDeviceCount(PCCardSocket vSocket, UInt32 *deviceCount)
OSStatus CSWriteConfigurationRegister(PCCardSocket vSocket, UInt32 device, PCCardConfigPresentMask whichRegister, UInt32 configRegBaseAddress, UInt8 registerValue)
OSStatus CECompareMemory(const RegEntryID *cardRef, PCCardMemoryType memType, ByteCount offset, ByteCount length, Byte *dataToCompare, Boolean *identical)
OSStatus CEGetDeviceCount(const RegEntryID *cardRef, ItemCount *numberOfDevices)
OSStatus CSGetFirstTuple(PCCardSocket socket, UInt32 device, PCCardTupleIterator tupleIterator, Byte desiredTuple, void *tupleData, ByteCount *tupleBufferSize, Byte *foundTuple)
OSStatus CEAddDeviceProperties(const RegEntryID *deviceRef, UInt32 deviceNumber)
OSStatus CECompareCISTPL_MANFID(const RegEntryID *cardRef, UInt16 manufacturerCode, UInt16 manufacturerInfo, Boolean *identical)
OSStatus CEInitializeCard(const RegEntryID *cardRef, Boolean replacingOld)
OSStatus CEGetSocketAndDeviceFromRegEntry(const RegEntryID *lpNode, UInt32 *lpSocket, UInt32 *lpDevice)
OSStatus CSGetEventMask(PCCardClientID theClientID, PCCardEventMask *newEventMask)
OSStatus CSDeRegisterClient(PCCardClientID theClientID)
OSStatus CSValidateCIS(PCCardSocket vSocket, UInt32 device, UInt32 *cisChainCount)
OSStatus CEGetCardInfo(const RegEntryID *cardRef, PCCardDevType *cardType, PCCardSubType *cardSubType, StringPtr cardName, StringPtr vendorName)
OSStatus CSReleaseConfiguration(PCCardSocket vSocket, UInt32 device)
OSStatus CEFinalizeCard(const RegEntryID *cardRef, Boolean beingReplaced)
OSStatus CEConfigureDevice(const RegEntryID *deviceRef, UInt32 deviceNumber)
PC Card Family Programming interface.
Definition: Quickdraw.h:1648
Definition: DriverServices.h:1084
Definition: PCCardEnablerPlugin.h:853
Definition: PCCardEnablerPlugin.h:550
Definition: NameRegistry.h:62