|
|
/*
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__ */
|