diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/DriverServices.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/DriverServices.h')
| -rw-r--r-- | common/quicktime_win32/DriverServices.h | 1386 |
1 files changed, 1386 insertions, 0 deletions
diff --git a/common/quicktime_win32/DriverServices.h b/common/quicktime_win32/DriverServices.h new file mode 100644 index 0000000..cee859e --- /dev/null +++ b/common/quicktime_win32/DriverServices.h @@ -0,0 +1,1386 @@ +/* + 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 <ConditionalMacros.h> +#endif + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __MACHINEEXCEPTIONS__ +#include <MachineExceptions.h> +#endif + +#ifndef __DEVICES__ +#include <Devices.h> +#endif + +#ifndef __DRIVERSYNCHRONIZATION__ +#include <DriverSynchronization.h> +#endif + +#ifndef __NAMEREGISTRY__ +#include <NameRegistry.h> +#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__ */ + |