/* File: DriverServices.h Contains: Driver Services Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1985-2001 by Apple Computer, Inc., all rights reserved Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __DRIVERSERVICES__ #define __DRIVERSERVICES__ #ifndef __CONDITIONALMACROS__ #include #endif #ifndef __MACTYPES__ #include #endif #ifndef __MACERRORS__ #include #endif #ifndef __MACHINEEXCEPTIONS__ #include #endif #ifndef __DEVICES__ #include #endif #ifndef __DRIVERSYNCHRONIZATION__ #include #endif #ifndef __NAMEREGISTRY__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=power #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif /****************************************************************** * * Previously in Kernel.h * ******************************************************************/ /* Kernel basics*/ typedef struct OpaqueIOPreparationID* IOPreparationID; typedef struct OpaqueSoftwareInterruptID* SoftwareInterruptID; typedef struct OpaqueTaskID* TaskID; typedef struct OpaqueTimerID* TimerID; /* Tasking*/ typedef UInt32 ExecutionLevel; enum { kTaskLevel = 0, kSoftwareInterruptLevel = 1, kAcceptFunctionLevel = 2, kKernelLevel = 3, kSIHAcceptFunctionLevel = 4, kSecondaryInterruptLevel = 5, kHardwareInterruptLevel = 6, kMPTaskLevel = 7 }; typedef CALLBACK_API_C( void , SoftwareInterruptHandler )(void *p1, void *p2); typedef CALLBACK_API_C( OSStatus , SecondaryInterruptHandler2 )(void *p1, void *p2); #define kCurrentAddressSpaceID ((AddressSpaceID) -1) /* Memory System basics*/ struct LogicalAddressRange { LogicalAddress address; ByteCount count; }; typedef struct LogicalAddressRange LogicalAddressRange; typedef LogicalAddressRange * LogicalAddressRangePtr; struct PhysicalAddressRange { PhysicalAddress address; ByteCount count; }; typedef struct PhysicalAddressRange PhysicalAddressRange; typedef PhysicalAddressRange * PhysicalAddressRangePtr; /* For PrepareMemoryForIO and CheckpointIO*/ typedef OptionBits IOPreparationOptions; enum { kIOMultipleRanges = 0x00000001, kIOLogicalRanges = 0x00000002, kIOMinimalLogicalMapping = 0x00000004, kIOShareMappingTables = 0x00000008, kIOIsInput = 0x00000010, kIOIsOutput = 0x00000020, kIOCoherentDataPath = 0x00000040, kIOTransferIsLogical = 0x00000080, kIOClientIsUserMode = 0x00000080 }; typedef OptionBits IOPreparationState; enum { kIOStateDone = 0x00000001 }; enum { kInvalidPageAddress = (-1) }; struct AddressRange { void * base; ByteCount length; }; typedef struct AddressRange AddressRange; /* C's treatment of arrays and array pointers is atypical*/ typedef LogicalAddress * LogicalMappingTablePtr; typedef PhysicalAddress * PhysicalMappingTablePtr; typedef AddressRange * AddressRangeTablePtr; struct MultipleAddressRange { ItemCount entryCount; AddressRangeTablePtr rangeTable; }; typedef struct MultipleAddressRange MultipleAddressRange; /* Separate C definition so that union has a name. A future version of the interfacer tool will allow a name (that gets thrown out in Pascal and Asm). */ struct IOPreparationTable { IOPreparationOptions options; IOPreparationState state; IOPreparationID preparationID; AddressSpaceID addressSpace; ByteCount granularity; ByteCount firstPrepared; ByteCount lengthPrepared; ItemCount mappingEntryCount; LogicalMappingTablePtr logicalMapping; PhysicalMappingTablePtr physicalMapping; union { AddressRange range; MultipleAddressRange multipleRanges; } rangeInfo; }; typedef struct IOPreparationTable IOPreparationTable; typedef OptionBits IOCheckpointOptions; enum { kNextIOIsInput = 0x00000001, kNextIOIsOutput = 0x00000002, kMoreIOTransfers = 0x00000004 }; /* For SetProcessorCacheMode*/ typedef UInt32 ProcessorCacheMode; enum { kProcessorCacheModeDefault = 0, kProcessorCacheModeInhibited = 1, kProcessorCacheModeWriteThrough = 2, kProcessorCacheModeCopyBack = 3 }; /* For GetPageInformation (Note: if kPageInformationVersion fails, try 0 -- old versions of DSL defined kPageInformationVersion as 0) */ enum { kPageInformationVersion = 1 }; typedef UInt32 PageStateInformation; enum { kPageIsProtected = 0x00000001, kPageIsProtectedPrivileged = 0x00000002, kPageIsModified = 0x00000004, kPageIsReferenced = 0x00000008, kPageIsLockedResident = 0x00000010, /* held and locked resident*/ kPageIsInMemory = 0x00000020, kPageIsShared = 0x00000040, kPageIsWriteThroughCached = 0x00000080, kPageIsCopyBackCached = 0x00000100, kPageIsHeldResident = 0x00000200, /* held resident - use kPageIsLockedResident to check for locked state*/ kPageIsLocked = kPageIsLockedResident, /* Deprecated*/ kPageIsResident = kPageIsInMemory /* Deprecated*/ }; struct PageInformation { AreaID area; ItemCount count; PageStateInformation information[1]; }; typedef struct PageInformation PageInformation; typedef PageInformation * PageInformationPtr; /* Tasks */ #if CALL_NOT_IN_CARBON /* * CurrentExecutionLevel() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( ExecutionLevel ) CurrentExecutionLevel(void); /* * CurrentTaskID() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( TaskID ) CurrentTaskID(void); /* * DelayFor() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) DelayFor(Duration delayDuration); /* * InPrivilegedMode() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) InPrivilegedMode(void); /* Software Interrupts */ /* * CreateSoftwareInterrupt() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) CreateSoftwareInterrupt( SoftwareInterruptHandler handler, TaskID task, void * p1, Boolean persistent, SoftwareInterruptID * theSoftwareInterrupt); /* * SendSoftwareInterrupt() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) SendSoftwareInterrupt( SoftwareInterruptID theSoftwareInterrupt, void * p2); /* * DeleteSoftwareInterrupt() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) DeleteSoftwareInterrupt(SoftwareInterruptID theSoftwareInterrupt); #endif /* CALL_NOT_IN_CARBON */ #if TARGET_OS_MAC /* Secondary Interrupts */ #if CALL_NOT_IN_CARBON /* * CallSecondaryInterruptHandler2() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) CallSecondaryInterruptHandler2( SecondaryInterruptHandler2 theHandler, ExceptionHandler exceptionHandler, void * p1, void * p2); /* * QueueSecondaryInterruptHandler() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) QueueSecondaryInterruptHandler( SecondaryInterruptHandler2 theHandler, ExceptionHandler exceptionHandler, void * p1, void * p2); #endif /* CALL_NOT_IN_CARBON */ #endif /* TARGET_OS_MAC */ /* Timers */ #if CALL_NOT_IN_CARBON /* * SetInterruptTimer() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) SetInterruptTimer( const AbsoluteTime * expirationTime, SecondaryInterruptHandler2 handler, void * p1, TimerID * theTimer); /* * SetPersistentTimer() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) SetPersistentTimer( Duration frequency, SecondaryInterruptHandler2 theHandler, void * p1, TimerID * theTimer); /* * CancelTimer() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) CancelTimer( TimerID theTimer, AbsoluteTime * timeRemaining); /* I/O related Operations */ /* * PrepareMemoryForIO() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) PrepareMemoryForIO(IOPreparationTable * theIOPreparationTable); /* * CheckpointIO() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) CheckpointIO( IOPreparationID theIOPreparation, IOCheckpointOptions options); /* Memory Operations */ /* * GetPageInformation() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) GetPageInformation( AddressSpaceID addressSpace, ConstLogicalAddress base, ByteCount length, PBVersion version, PageInformation * thePageInfo); /* Processor Cache Related */ /* * SetProcessorCacheMode() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) SetProcessorCacheMode( AddressSpaceID addressSpace, ConstLogicalAddress base, ByteCount length, ProcessorCacheMode cacheMode); /****************************************************************** * * Was in DriverSupport.h or DriverServices.h * ******************************************************************/ #define kAAPLDeviceLogicalAddress "AAPL,address" #endif /* CALL_NOT_IN_CARBON */ typedef LogicalAddress * DeviceLogicalAddressPtr; enum { durationMicrosecond = -1L, /* Microseconds are negative*/ durationMillisecond = 1L, /* Milliseconds are positive*/ durationSecond = 1000L, /* 1000 * durationMillisecond*/ durationMinute = 60000L, /* 60 * durationSecond,*/ durationHour = 3600000L, /* 60 * durationMinute,*/ durationDay = 86400000L, /* 24 * durationHour,*/ durationNoWait = 0L, /* don't block*/ durationForever = 0x7FFFFFFF /* no time limit*/ }; enum { k8BitAccess = 0, /* access as 8 bit*/ k16BitAccess = 1, /* access as 16 bit*/ k32BitAccess = 2 /* access as 32 bit*/ }; typedef UnsignedWide Nanoseconds; #if CALL_NOT_IN_CARBON /* * IOCommandIsComplete() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) IOCommandIsComplete( IOCommandID theID, OSErr theResult); /* * GetIOCommandInfo() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) GetIOCommandInfo( IOCommandID theID, IOCommandContents * theContents, IOCommandCode * theCommand, IOCommandKind * theKind); /* * UpdateDeviceActivity() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) UpdateDeviceActivity(RegEntryID * deviceEntry); /* * BlockCopy() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) BlockCopy( const void * srcPtr, void * destPtr, Size byteCount); /* * PoolAllocateResident() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( LogicalAddress ) PoolAllocateResident( ByteCount byteSize, Boolean clear); /* * PoolDeallocate() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) PoolDeallocate(LogicalAddress address); /* * GetLogicalPageSize() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( ByteCount ) GetLogicalPageSize(void); /* * GetDataCacheLineSize() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( ByteCount ) GetDataCacheLineSize(void); /* * FlushProcessorCache() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) FlushProcessorCache( AddressSpaceID spaceID, LogicalAddress base, ByteCount length); /* * MemAllocatePhysicallyContiguous() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( LogicalAddress ) MemAllocatePhysicallyContiguous( ByteCount byteSize, Boolean clear); /* * MemDeallocatePhysicallyContiguous() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) MemDeallocatePhysicallyContiguous(LogicalAddress address); #endif /* CALL_NOT_IN_CARBON */ /* * UpTime() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) UpTime(void); #if CALL_NOT_IN_CARBON /* * GetTimeBaseInfo() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) GetTimeBaseInfo( UInt32 * minAbsoluteTimeDelta, UInt32 * theAbsoluteTimeToNanosecondNumerator, UInt32 * theAbsoluteTimeToNanosecondDenominator, UInt32 * theProcessorToAbsoluteTimeNumerator, UInt32 * theProcessorToAbsoluteTimeDenominator); #endif /* CALL_NOT_IN_CARBON */ /* * AbsoluteToNanoseconds() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Nanoseconds ) AbsoluteToNanoseconds(AbsoluteTime absoluteTime); /* * AbsoluteToDuration() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Duration ) AbsoluteToDuration(AbsoluteTime absoluteTime); /* * NanosecondsToAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) NanosecondsToAbsolute(Nanoseconds nanoseconds); /* * DurationToAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) DurationToAbsolute(Duration duration); /* * AddAbsoluteToAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) AddAbsoluteToAbsolute( AbsoluteTime absoluteTime1, AbsoluteTime absoluteTime2); /* * SubAbsoluteFromAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) SubAbsoluteFromAbsolute( AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime); /* * AddNanosecondsToAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) AddNanosecondsToAbsolute( Nanoseconds nanoseconds, AbsoluteTime absoluteTime); /* * AddDurationToAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) AddDurationToAbsolute( Duration duration, AbsoluteTime absoluteTime); /* * SubNanosecondsFromAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) SubNanosecondsFromAbsolute( Nanoseconds nanoseconds, AbsoluteTime absoluteTime); /* * SubDurationFromAbsolute() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( AbsoluteTime ) SubDurationFromAbsolute( Duration duration, AbsoluteTime absoluteTime); /* * AbsoluteDeltaToNanoseconds() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Nanoseconds ) AbsoluteDeltaToNanoseconds( AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime); /* * AbsoluteDeltaToDuration() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Duration ) AbsoluteDeltaToDuration( AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime); /* * DurationToNanoseconds() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Nanoseconds ) DurationToNanoseconds(Duration theDuration); /* * NanosecondsToDuration() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.6 and later * CarbonLib: in CarbonLib 1.0.2 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Duration ) NanosecondsToDuration(Nanoseconds theNanoseconds); #if CALL_NOT_IN_CARBON /* * PBQueueInit() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBQueueInit(QHdrPtr qHeader); /* * PBQueueCreate() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBQueueCreate(QHdrPtr * qHeader); /* * PBQueueDelete() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBQueueDelete(QHdrPtr qHeader); /* * PBEnqueue() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) PBEnqueue( QElemPtr qElement, QHdrPtr qHeader); /* * PBEnqueueLast() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBEnqueueLast( QElemPtr qElement, QHdrPtr qHeader); /* * PBDequeue() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBDequeue( QElemPtr qElement, QHdrPtr qHeader); /* * PBDequeueFirst() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBDequeueFirst( QHdrPtr qHeader, QElemPtr * theFirstqElem); /* * PBDequeueLast() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) PBDequeueLast( QHdrPtr qHeader, QElemPtr * theLastqElem); /* * CStrCopy() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( char * ) CStrCopy( char * dst, const char * src); /* * PStrCopy() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( StringPtr ) PStrCopy( StringPtr dst, ConstStr255Param src); /* * CStrNCopy() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( char * ) CStrNCopy( char * dst, const char * src, UInt32 max); /* * PStrNCopy() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( StringPtr ) PStrNCopy( StringPtr dst, ConstStr255Param src, UInt32 max); /* * CStrCat() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( char * ) CStrCat( char * dst, const char * src); /* * PStrCat() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( StringPtr ) PStrCat( StringPtr dst, ConstStr255Param src); /* * CStrNCat() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( char * ) CStrNCat( char * dst, const char * src, UInt32 max); /* * PStrNCat() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( StringPtr ) PStrNCat( StringPtr dst, ConstStr255Param src, UInt32 max); /* * PStrToCStr() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) PStrToCStr( char * dst, ConstStr255Param src); /* * CStrToPStr() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) CStrToPStr( Str255 dst, const char * src); /* * CStrCmp() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( SInt16 ) CStrCmp( const char * s1, const char * s2); /* * PStrCmp() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( SInt16 ) PStrCmp( ConstStr255Param str1, ConstStr255Param str2); /* * CStrNCmp() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( SInt16 ) CStrNCmp( const char * s1, const char * s2, UInt32 max); /* * PStrNCmp() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( SInt16 ) PStrNCmp( ConstStr255Param str1, ConstStr255Param str2, UInt32 max); /* * CStrLen() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( UInt32 ) CStrLen(const char * src); /* * PStrLen() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( UInt32 ) PStrLen(ConstStr255Param src); /* * DeviceProbe() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) DeviceProbe( void * theSrc, void * theDest, UInt32 AccessType); /* * DelayForHardware() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) DelayForHardware(AbsoluteTime absoluteTime); /****************************************************************** * * Was in Interrupts.h * ******************************************************************/ /* Interrupt types */ #endif /* CALL_NOT_IN_CARBON */ typedef struct OpaqueInterruptSetID* InterruptSetID; typedef long InterruptMemberNumber; struct InterruptSetMember { InterruptSetID setID; InterruptMemberNumber member; }; typedef struct InterruptSetMember InterruptSetMember; enum { kISTChipInterruptSource = 0, kISTOutputDMAInterruptSource = 1, kISTInputDMAInterruptSource = 2, kISTPropertyMemberCount = 3 }; typedef InterruptSetMember ISTProperty[3]; #define kISTPropertyName "driver-ist" typedef long InterruptReturnValue; enum { kFirstMemberNumber = 1, kIsrIsComplete = 0, kIsrIsNotComplete = -1, kMemberNumberParent = -2 }; typedef Boolean InterruptSourceState; enum { kSourceWasEnabled = true, kSourceWasDisabled = false }; typedef CALLBACK_API_C( InterruptMemberNumber , InterruptHandler )(InterruptSetMember ISTmember, void *refCon, UInt32 theIntCount); typedef CALLBACK_API_C( void , InterruptEnabler )(InterruptSetMember ISTmember, void *refCon); typedef CALLBACK_API_C( InterruptSourceState , InterruptDisabler )(InterruptSetMember ISTmember, void *refCon); enum { kReturnToParentWhenComplete = 0x00000001, kReturnToParentWhenNotComplete = 0x00000002 }; typedef OptionBits InterruptSetOptions; /* Interrupt Services */ #if CALL_NOT_IN_CARBON /* * CreateInterruptSet() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) CreateInterruptSet( InterruptSetID parentSet, InterruptMemberNumber parentMember, InterruptMemberNumber setSize, InterruptSetID * setID, InterruptSetOptions options); /* * InstallInterruptFunctions() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) InstallInterruptFunctions( InterruptSetID setID, InterruptMemberNumber member, void * refCon, InterruptHandler handlerFunction, InterruptEnabler enableFunction, InterruptDisabler disableFunction); /* * GetInterruptFunctions() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) GetInterruptFunctions( InterruptSetID setID, InterruptMemberNumber member, void ** refCon, InterruptHandler * handlerFunction, InterruptEnabler * enableFunction, InterruptDisabler * disableFunction); /* * ChangeInterruptSetOptions() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) ChangeInterruptSetOptions( InterruptSetID setID, InterruptSetOptions options); /* * GetInterruptSetOptions() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) GetInterruptSetOptions( InterruptSetID setID, InterruptSetOptions * options); #endif /* CALL_NOT_IN_CARBON */ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __DRIVERSERVICES__ */