topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-Devices.h / h
/*
File: Devices.h
Contains: Device Manager Interfaces.
Version: Technology: Mac OS 8
Release: QuickTime 6.0.2
Copyright: (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 __DEVICES__
define __DEVICES__
ifndef __OSUTILS__
include <OSUtils.h>
endif
ifndef __FILES__
include <Files.h>
endif
ifndef __QUICKDRAW__
include <Quickdraw.h>
endif
ifndef __NAMEREGISTRY__
include <NameRegistry.h>
endif
ifndef __CODEFRAGMENTS__
include <CodeFragments.h>
endif
ifndef __DRIVERFAMILYMATCHING__
include <DriverFamilyMatching.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=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
endif
/* Values of the 'message' parameter to a Chooser device package */
enum {
chooserInitMsg = 11, /* the user selected this device package */
newSelMsg = 12, /* the user made new device selections */
fillListMsg = 13, /* fill the device list with choices */
getSelMsg = 14, /* mark one or more choices as selected */
selectMsg = 15, /* the user made a selection */
deselectMsg = 16, /* the user canceled a selection */
terminateMsg = 17, /* allows device package to clean up */
buttonMsg = 19 /* the user selected a button */
};
/* Values of the 'caller' parameter to a Chooser device package */
enum {
chooserID = 1
};
/* Values of the 'message' parameter to a Monitor 'mntr' */
enum {
initMsg = 1, /*initialization*/
okMsg = 2, /*user clicked OK button*/
cancelMsg = 3, /*user clicked Cancel button*/
hitMsg = 4, /*user clicked control in Options dialog*/
nulMsg = 5, /*periodic event*/
updateMsg = 6, /*update event*/
activateMsg = 7, /*not used*/
deactivateMsg = 8, /*not used*/
keyEvtMsg = 9, /*keyboard event*/
superMsg = 10, /*show superuser controls*/
normalMsg = 11, /*show only normal controls*/
startupMsg = 12 /*code has been loaded*/
};
/* control codes for DeskAccessories */
enum {
goodbye = -1, /* heap being reinitialized */
killCode = 1, /* KillIO requested */
accEvent = 64, /* handle an event */
accRun = 65, /* time for periodic action */
accCursor = 66, /* change cursor shape */
accMenu = 67, /* handle menu item */
accUndo = 68, /* handle undo command */
accCut = 70, /* handle cut command */
accCopy = 71, /* handle copy command */
accPaste = 72, /* handle paste command */
accClear = 73 /* handle clear command */
};
/* Control/Status Call Codes */
enum {
drvStsCode = 8, /* status call code for drive status */
ejectCode = 7, /* control call eject code */
tgBuffCode = 8 /* set tag buffer code */
};
/* miscellaneous Device Manager constants */
enum {
ioInProgress = 1, /* predefined value of ioResult while I/O is pending */
aRdCmd = 2, /* low byte of ioTrap for Read calls */
aWrCmd = 3, /* low byte of ioTrap for Write calls */
asyncTrpBit = 10, /* trap word modifier */
noQueueBit = 9 /* trap word modifier */
};
/* flags used in the driver header and device control entry */
enum {
dReadEnable = 0, /* set if driver responds to read requests */
dWritEnable = 1, /* set if driver responds to write requests */
dCtlEnable = 2, /* set if driver responds to control requests */
dStatEnable = 3, /* set if driver responds to status requests */
dNeedGoodBye = 4, /* set if driver needs time for performing periodic tasks */
dNeedTime = 5, /* set if driver needs time for performing periodic tasks */
dNeedLock = 6 /* set if driver must be locked in memory as soon as it is opened */
};
enum {
dNeedLockMask = 0x4000, /* set if driver must be locked in memory as soon as it is opened */
dNeedTimeMask = 0x2000, /* set if driver needs time for performing periodic tasks */
dNeedGoodByeMask = 0x1000, /* set if driver needs to be called before the application heap is initialized */
dStatEnableMask = 0x0800, /* set if driver responds to status requests */
dCtlEnableMask = 0x0400, /* set if driver responds to control requests */
dWritEnableMask = 0x0200, /* set if driver responds to write requests */
dReadEnableMask = 0x0100 /* set if driver responds to read requests */
};
/* run-time flags used in the device control entry */
enum {
dVMImmuneBit = 0, /* driver does not need VM protection */
dOpened = 5, /* driver is open */
dRAMBased = 6, /* dCtlDriver is a handle (1) or pointer (0) */
drvrActive = 7 /* driver is currently processing a request */
};
enum {
dVMImmuneMask = 0x0001, /* driver does not need VM protection */
dOpenedMask = 0x0020, /* driver is open */
dRAMBasedMask = 0x0040, /* dCtlDriver is a handle (1) or pointer (0) */
drvrActiveMask = 0x0080 /* driver is currently processing a request */
};
struct DRVRHeader {
short drvrFlags;
short drvrDelay;
short drvrEMask;
short drvrMenu;
short drvrOpen;
short drvrPrime;
short drvrCtl;
short drvrStatus;
short drvrClose;
unsigned char drvrName[1];
};
typedef struct DRVRHeader DRVRHeader;
typedef DRVRHeader * DRVRHeaderPtr;
typedef DRVRHeaderPtr * DRVRHeaderHandle;
struct DCtlEntry {
Ptr dCtlDriver;
volatile short dCtlFlags;
QHdr dCtlQHdr;
volatile long dCtlPosition;
Handle dCtlStorage;
short dCtlRefNum;
long dCtlCurTicks;
GrafPtr dCtlWindow;
short dCtlDelay;
short dCtlEMask;
short dCtlMenu;
};
typedef struct DCtlEntry DCtlEntry;
typedef DCtlEntry * DCtlPtr;
typedef DCtlPtr * DCtlHandle;
struct AuxDCE {
Ptr dCtlDriver;
volatile short dCtlFlags;
QHdr dCtlQHdr;
long dCtlPosition;
Handle dCtlStorage;
short dCtlRefNum;
long dCtlCurTicks;
GrafPtr dCtlWindow;
short dCtlDelay;
short dCtlEMask;
short dCtlMenu;
SInt8 dCtlSlot;
SInt8 dCtlSlotId;
long dCtlDevBase;
Ptr dCtlOwner;
SInt8 dCtlExtDev;
SInt8 fillByte;
UInt32 dCtlNodeID;
};
typedef struct AuxDCE AuxDCE;
typedef AuxDCE * AuxDCEPtr;
typedef AuxDCEPtr * AuxDCEHandle;
/* The NDRV Driver IO Entry Point and Commands */
typedef UInt16 UnitNumber;
typedef UInt32 DriverOpenCount;
typedef SInt16 DriverRefNum;
typedef SInt16 DriverFlags;
typedef UInt32 IOCommandCode;
enum {
kOpenCommand = 0,
kCloseCommand = 1,
kReadCommand = 2,
kWriteCommand = 3,
kControlCommand = 4,
kStatusCommand = 5,
kKillIOCommand = 6,
kInitializeCommand = 7, /* init driver and device*/
kFinalizeCommand = 8, /* shutdown driver and device*/
kReplaceCommand = 9, /* replace an old driver*/
kSupersededCommand = 10, /* prepare to be replaced by a new driver*/
kSuspendCommand = 11, /* prepare driver to go to sleep*/
kResumeCommand = 12 /* wake up sleeping driver*/
};
typedef struct OpaqueAddressSpaceID* AddressSpaceID;
typedef struct OpaqueIOCommandID* IOCommandID;
typedef UInt32 IOCommandKind;
enum {
kSynchronousIOCommandKind = 0x00000001,
kAsynchronousIOCommandKind = 0x00000002,
kImmediateIOCommandKind = 0x00000004
};
struct DriverInitInfo {
DriverRefNum refNum;
RegEntryID deviceEntry;
};
typedef struct DriverInitInfo DriverInitInfo;
typedef DriverInitInfo * DriverInitInfoPtr;
typedef DriverInitInfo DriverReplaceInfo;
typedef DriverInitInfo * DriverReplaceInfoPtr;
struct DriverFinalInfo {
DriverRefNum refNum;
RegEntryID deviceEntry;
};
typedef struct DriverFinalInfo DriverFinalInfo;
typedef DriverFinalInfo * DriverFinalInfoPtr;
typedef DriverFinalInfo DriverSupersededInfo;
typedef DriverFinalInfo * DriverSupersededInfoPtr;
/* Contents are command specific*/
union IOCommandContents {
ParmBlkPtr pb;
DriverInitInfoPtr initialInfo;
DriverFinalInfoPtr finalInfo;
DriverReplaceInfoPtr replaceInfo;
DriverSupersededInfoPtr supersededInfo;
};
typedef union IOCommandContents IOCommandContents;
typedef CALLBACK_API_C( OSErr , DriverEntryPointPtr )(AddressSpaceID SpaceID, IOCommandID CommandID, IOCommandContents Contents, IOCommandCode Code, IOCommandKind Kind);
/* Record to describe a file-based driver candidate */
struct FileBasedDriverRecord {
FSSpec theSpec; /* file specification*/
MacDriverType theType; /* nameInfoStr + version number*/
Boolean compatibleProp; /* true if matched using a compatible name*/
UInt8 pad[3]; /* alignment*/
};
typedef struct FileBasedDriverRecord FileBasedDriverRecord;
typedef FileBasedDriverRecord * FileBasedDriverRecordPtr;
/* Detailed Record to describe a file-based driver candidate. Includes fragment name */
struct FileBasedDriverDetailed {
FileBasedDriverRecord fileBasedDriver;
Str63 fragName;
};
typedef struct FileBasedDriverDetailed FileBasedDriverDetailed;
typedef FileBasedDriverDetailed * FileBasedDriverDetailedPtr;
/* Driver Loader API */
define DECLARE_DRIVERDESCRIPTION(N_ADDITIONAL_SERVICES)\
struct {\
DriverDescription fixed;\
DriverServiceInfo additional_service[N_ADDITIONAL_SERVICES-1];\
};
if CALL_NOT_IN_CARBON
EXTERN_API_C( SInt16 )
HigherDriverVersion (const NumVersion * driverVersion1,
const NumVersion * driverVersion2);
EXTERN_API_C( OSErr )
VerifyFragmentAsDriver (CFragConnectionID fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
GetDriverMemoryFragment (Ptr memAddr,
long length,
ConstStr63Param fragName,
CFragConnectionID * fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
GetDriverDiskFragment (FSSpecPtr fragmentSpec,
CFragConnectionID * fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
GetNamedDriverDiskFragment (FSSpecPtr fragmentSpec,
ConstStr63Param fragName,
CFragConnectionID * fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
InstallDriverFromFragment (CFragConnectionID fragmentConnID,
RegEntryID * device,
UnitNumber beginningUnit,
UnitNumber endingUnit,
DriverRefNum * refNum);
EXTERN_API_C( OSErr )
InstallDriverFromFile (FSSpecPtr fragmentSpec,
RegEntryID * device,
UnitNumber beginningUnit,
UnitNumber endingUnit,
DriverRefNum * refNum);
EXTERN_API_C( OSErr )
InstallDriverFromMemory (Ptr memory,
long length,
ConstStr63Param fragName,
RegEntryID * device,
UnitNumber beginningUnit,
UnitNumber endingUnit,
DriverRefNum * refNum);
EXTERN_API_C( OSErr )
InstallDriverFromResource (SInt16 theRsrcID,
ConstStr255Param theRsrcName,
RegEntryIDPtr theDevice,
UnitNumber theBeginningUnit,
UnitNumber theEndingUnit,
DriverRefNum * theRefNum);
EXTERN_API_C( OSErr )
InstallDriverFromDisk (Ptr theDriverName,
RegEntryID * theDevice,
UnitNumber theBeginningUnit,
UnitNumber theEndingUnit,
DriverRefNum * theRefNum);
EXTERN_API_C( OSErr )
FindDriversForDevice (RegEntryID * device,
FSSpec * fragmentSpec,
DriverDescription * fileDriverDesc,
Ptr * memAddr,
long * length,
StringPtr fragName,
DriverDescription * memDriverDesc);
EXTERN_API_C( OSErr )
FindDriverForDeviceFromFile (RegEntryID * device,
FSSpec * fragmentSpec,
DriverDescription * driverDesc,
StringPtr fragName);
EXTERN_API_C( OSErr )
FindDriverCandidates (RegEntryID * deviceID,
Ptr * propBasedDriver,
RegPropertyValueSize * propBasedDriverSize,
StringPtr deviceName,
MacDriverType * propBasedDriverType,
Boolean * gotPropBasedDriver,
FileBasedDriverRecordPtr fileBasedDrivers,
ItemCount * nFileBasedDrivers);
EXTERN_API_C( OSErr )
FindDriverCandidatesDetailed (RegEntryIDPtr deviceID,
Ptr * propBasedDriver,
RegPropertyValueSize * propBasedDriverSize,
StringPtr deviceName,
MacDriverType * propBasedDriverType,
Boolean * gotPropBasedDriver,
FileBasedDriverDetailedPtr fileBasedDrivers,
ItemCount * nFileBasedDrivers);
EXTERN_API_C( OSErr )
ScanDriverCandidates (RegEntryID * deviceID,
FileBasedDriverRecordPtr fileBasedDrivers,
ItemCount nFileBasedDrivers,
FileBasedDriverRecordPtr matchingDrivers,
ItemCount * nMatchingDrivers);
EXTERN_API_C( OSErr )
ScanDriverCandidatesDetailed (RegEntryID * deviceID,
FileBasedDriverDetailedPtr fileBasedDrivers,
ItemCount nFileBasedDrivers,
FileBasedDriverDetailedPtr matchingDrivers,
ItemCount * nMatchingDrivers);
EXTERN_API_C( SInt16 )
CompareFileCandToPropCand (RegEntryID * device,
StringPtr deviceName,
DriverTypePtr propBasedCandidate,
FileBasedDriverRecordPtr fileBasedCandidate);
EXTERN_API_C( void )
GetCompatibleProperty (RegEntryID * device,
StringPtr * compatibleNames,
ItemCount * nCompatibleNames);
EXTERN_API_C( Boolean )
CompatibleDriverNames (StringPtr nameInfoStr,
StringPtr compatibleNames,
ItemCount nCompatibleNames,
long * nameCount);
EXTERN_API_C( OSErr )
GetDriverForDevice (RegEntryID * device,
CFragConnectionID * fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
InstallDriverForDevice (RegEntryID * device,
UnitNumber beginningUnit,
UnitNumber endingUnit,
DriverRefNum * refNum);
EXTERN_API_C( OSErr )
GetDriverInformation (DriverRefNum refNum,
UnitNumber * unitNum,
DriverFlags * flags,
DriverOpenCount * count,
StringPtr name,
RegEntryID * device,
CFragSystem7Locator * driverLoadLocation,
CFragConnectionID * fragmentConnID,
DriverEntryPointPtr * fragmentMain,
DriverDescription * driverDesc);
EXTERN_API_C( OSErr )
GetDriverDescription (LogicalAddress fragmentPtr,
DriverDescriptionPtr * theDriverDesc);
EXTERN_API_C( OSStatus )
GetNamedDriverDescFromFSSpec (FSSpecPtr fragmentSpec,
StringPtr fragName,
DriverDescriptionPtr * driverDesc);
EXTERN_API_C( OSErr )
SetDriverClosureMemory (CFragConnectionID fragmentConnID,
Boolean holdDriverMemory);
EXTERN_API_C( OSErr )
ReplaceDriverWithFragment (DriverRefNum theRefNum,
CFragConnectionID fragmentConnID);
EXTERN_API_C( OSErr )
OpenInstalledDriver (DriverRefNum refNum,
SInt8 ioPermission);
EXTERN_API_C( OSErr )
RenameDriver (DriverRefNum refNum,
StringPtr newDriverName);
EXTERN_API_C( OSErr )
RemoveDriver (DriverRefNum refNum,
Boolean immediate);
EXTERN_API_C( OSErr )
LookupDrivers (UnitNumber beginningUnit,
UnitNumber endingUnit,
Boolean emptyUnits,
ItemCount * returnedRefNums,
DriverRefNum * refNums);
EXTERN_API_C( UnitNumber )
HighestUnitNumber (void);
EXTERN_API_C( OSErr )
DriverGestaltOn (DriverRefNum refNum);
EXTERN_API_C( OSErr )
DriverGestaltOff (DriverRefNum refNum);
EXTERN_API_C( Boolean )
DriverGestaltIsOn (DriverFlags flags);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBOpenSync(__A0)
#endif
EXTERN_API( OSErr )
PBOpenSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA000);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBOpenAsync(__A0)
#endif
EXTERN_API( OSErr )
PBOpenAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA400);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBOpenImmed(__A0)
#endif
EXTERN_API( OSErr )
PBOpenImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA200);
endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCloseSync(__A0)
#endif
EXTERN_API( OSErr )
PBCloseSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA001);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCloseAsync(__A0)
#endif
EXTERN_API( OSErr )
PBCloseAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA401);
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCloseImmed(__A0)
#endif
EXTERN_API( OSErr )
PBCloseImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA201);
endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBReadSync(__A0)
#endif
EXTERN_API( OSErr )
PBReadSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA002);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBReadAsync(__A0)
#endif
EXTERN_API( OSErr )
PBReadAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA402);
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBReadImmed(__A0)
#endif
EXTERN_API( OSErr )
PBReadImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA202);
endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBWriteSync(__A0)
#endif
EXTERN_API( OSErr )
PBWriteSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA003);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBWriteAsync(__A0)
#endif
EXTERN_API( OSErr )
PBWriteAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA403);
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBWriteImmed(__A0)
#endif
EXTERN_API( OSErr )
PBWriteImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA203);
/*
PBWaitIOComplete is a friendly way for applications to monitor
a pending asynchronous I/O operation in power-managed and
preemptive multitasking systems.
*/
endif /* CALL_NOT_IN_CARBON */
EXTERN_API( OSErr )
PBWaitIOComplete (ParmBlkPtr paramBlock,
Duration timeout);
if CALL_NOT_IN_CARBON
EXTERN_API( void )
AddDrive (short drvrRefNum,
short drvNum,
DrvQElPtr qEl);
endif /* CALL_NOT_IN_CARBON */
if CALL_NOT_IN_CARBON
if CALL_NOT_IN_CARBON
EXTERN_API( QHdrPtr )
GetDrvQHdr (void) THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
EXTERN_API( DCtlHandle )
GetDCtlEntry (short refNum);
endif /* CALL_NOT_IN_CARBON */
endif /* CALL_NOT_IN_CARBON */
/*
SetChooserAlert used to simply set a bit in a low-mem global
to tell the Chooser not to display its warning message when
the printer is changed. However, under MultiFinder and System 7,
this low-mem is swapped out when a layer change occurs, and the
Chooser never sees the change. It is obsolete, and completely
unsupported on the PowerPC. 68K apps can still call it if they
wish.
pascal Boolean SetChooserAlert(Boolean f);
*/
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 DriverInstall(__A0, __D0)
#endif
EXTERN_API( OSErr )
DriverInstall (DRVRHeaderPtr drvrPtr,
short refNum) ONEWORDINLINE(0xA03D);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 DriverInstallReserveMem(__A0, __D0)
#endif
EXTERN_API( OSErr )
DriverInstallReserveMem (DRVRHeaderPtr drvrPtr,
short refNum) ONEWORDINLINE(0xA43D);
/*
Note: DrvrInstall() is no longer supported, becuase it never really worked anyways.
There will soon be a DriverInstall() which does the right thing.
DrvrRemove has been renamed to DriverRemove. But, InterfaceLib for PowerPC
still exports DrvrRemove, so a macro is used to map the new name to old.
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 DrvrRemove(__D0)
#endif
EXTERN_API( OSErr )
DrvrRemove (short refNum) ONEWORDINLINE(0xA03E);
endif /* CALL_NOT_IN_CARBON */
define DriverRemove(refNum) DrvrRemove(refNum)
if CALL_NOT_IN_CARBON
if TARGET_OS_MAC
#define MacOpenDriver OpenDriver
endif
EXTERN_API( OSErr )
MacOpenDriver (ConstStr255Param name,
short * drvrRefNum);
if TARGET_OS_MAC
#define MacCloseDriver CloseDriver
endif
EXTERN_API( OSErr )
MacCloseDriver (short refNum);
EXTERN_API( OSErr )
Control (short refNum,
short csCode,
const void * csParamPtr);
EXTERN_API( OSErr )
Status (short refNum,
short csCode,
void * csParamPtr);
EXTERN_API( OSErr )
KillIO (short refNum);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 Fetch(__A1)
#endif
EXTERN_API( long )
Fetch (DCtlPtr dce) THREEWORDINLINE(0x2078, 0x08F4, 0x4E90);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 Stash(__A1, __D0)
#endif
EXTERN_API( long )
Stash (DCtlPtr dce,
char data) THREEWORDINLINE(0x2078, 0x08F8, 0x4E90);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter IODone(__A1, __D0)
#endif
EXTERN_API( void )
IODone (DCtlPtr dce,
OSErr ioResult) THREEWORDINLINE(0x2078, 0x08FC, 0x4E90);
endif /* CALL_NOT_IN_CARBON */
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBControlSync(__A0)
#endif
EXTERN_API( OSErr )
PBControlSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA004);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBControlAsync(__A0)
#endif
EXTERN_API( OSErr )
PBControlAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA404);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBControlImmed(__A0)
#endif
EXTERN_API( OSErr )
PBControlImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA204);
endif /* CALL_NOT_IN_CARBON */
if CALL_NOT_IN_CARBON
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBStatusSync(__A0)
#endif
EXTERN_API( OSErr )
PBStatusSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA005);
endif /* CALL_NOT_IN_CARBON */
endif /* CALL_NOT_IN_CARBON */
if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBStatusAsync(__A0)
#endif
EXTERN_API( OSErr )
PBStatusAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA405);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBStatusImmed(__A0)
#endif
EXTERN_API( OSErr )
PBStatusImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA205);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBKillIOSync(__A0)
#endif
EXTERN_API( OSErr )
PBKillIOSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA006);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBKillIOAsync(__A0)
#endif
EXTERN_API( OSErr )
PBKillIOAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA406);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBKillIOImmed(__A0)
#endif
EXTERN_API( OSErr )
PBKillIOImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA206);
EXTERN_API( short )
OpenDeskAcc (ConstStr255Param deskAccName) ONEWORDINLINE(0xA9B6);
EXTERN_API( void )
CloseDeskAcc (short refNum) ONEWORDINLINE(0xA9B7);
endif /* CALL_NOT_IN_CARBON */
if CALL_NOT_IN_CARBON
EXTERN_API_C( short )
opendeskacc (const char * deskAccName);
EXTERN_API_C( OSErr )
opendriver (const char * driverName,
short * refNum);
endif /* CALL_NOT_IN_CARBON */
/*
The PBxxx() routines are obsolete.
Use the PBxxxSync(), PBxxxAsync(), or PBxxxImmed version instead.
*/
define PBControl(pb, async) ((async) ? PBControlAsync(pb) : PBControlSync(pb))
define PBStatus(pb, async) ((async) ? PBStatusAsync(pb) : PBStatusSync(pb))
define PBKillIO(pb, async) ((async) ? PBKillIOAsync(pb) : PBKillIOSync(pb))
define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
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 /* __DEVICES__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.