Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1508 lines
40 KiB

  1. /*
  2. File: Devices.h
  3. Contains: Device Manager Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1985-2001 by Apple Computer, Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __DEVICES__
  11. #define __DEVICES__
  12. #ifndef __OSUTILS__
  13. #include <OSUtils.h>
  14. #endif
  15. #ifndef __FILES__
  16. #include <Files.h>
  17. #endif
  18. #ifndef __NAMEREGISTRY__
  19. #include <NameRegistry.h>
  20. #endif
  21. #ifndef __CODEFRAGMENTS__
  22. #include <CodeFragments.h>
  23. #endif
  24. #ifndef __MULTIPROCESSING__
  25. #include <Multiprocessing.h>
  26. #endif
  27. #ifndef __QUICKDRAW__
  28. #include <Quickdraw.h>
  29. #endif
  30. #if PRAGMA_ONCE
  31. #pragma once
  32. #endif
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36. #if PRAGMA_IMPORT
  37. #pragma import on
  38. #endif
  39. #if PRAGMA_STRUCT_ALIGN
  40. #pragma options align=mac68k
  41. #elif PRAGMA_STRUCT_PACKPUSH
  42. #pragma pack(push, 2)
  43. #elif PRAGMA_STRUCT_PACK
  44. #pragma pack(2)
  45. #endif
  46. /* Values of the 'message' parameter to a Chooser device package */
  47. enum {
  48. chooserInitMsg = 11, /* the user selected this device package */
  49. newSelMsg = 12, /* the user made new device selections */
  50. fillListMsg = 13, /* fill the device list with choices */
  51. getSelMsg = 14, /* mark one or more choices as selected */
  52. selectMsg = 15, /* the user made a selection */
  53. deselectMsg = 16, /* the user canceled a selection */
  54. terminateMsg = 17, /* allows device package to clean up */
  55. buttonMsg = 19 /* the user selected a button */
  56. };
  57. /* Values of the 'caller' parameter to a Chooser device package */
  58. enum {
  59. chooserID = 1
  60. };
  61. /* Values of the 'message' parameter to a Monitor 'mntr' */
  62. enum {
  63. initMsg = 1, /*initialization*/
  64. okMsg = 2, /*user clicked OK button*/
  65. cancelMsg = 3, /*user clicked Cancel button*/
  66. hitMsg = 4, /*user clicked control in Options dialog*/
  67. nulMsg = 5, /*periodic event*/
  68. updateMsg = 6, /*update event*/
  69. activateMsg = 7, /*not used*/
  70. deactivateMsg = 8, /*not used*/
  71. keyEvtMsg = 9, /*keyboard event*/
  72. superMsg = 10, /*show superuser controls*/
  73. normalMsg = 11, /*show only normal controls*/
  74. startupMsg = 12 /*code has been loaded*/
  75. };
  76. /* control codes for DeskAccessories */
  77. enum {
  78. goodbye = -1, /* heap being reinitialized */
  79. killCode = 1, /* KillIO requested */
  80. accEvent = 64, /* handle an event */
  81. accRun = 65, /* time for periodic action */
  82. accCursor = 66, /* change cursor shape */
  83. accMenu = 67, /* handle menu item */
  84. accUndo = 68, /* handle undo command */
  85. accCut = 70, /* handle cut command */
  86. accCopy = 71, /* handle copy command */
  87. accPaste = 72, /* handle paste command */
  88. accClear = 73 /* handle clear command */
  89. };
  90. /* Control/Status Call Codes */
  91. /* drvStsCode, ejectCode and tgBuffCode are now defined in Disks.h/p/a */
  92. /* miscellaneous Device Manager constants */
  93. enum {
  94. ioInProgress = 1, /* predefined value of ioResult while I/O is pending */
  95. aRdCmd = 2, /* low byte of ioTrap for Read calls */
  96. aWrCmd = 3, /* low byte of ioTrap for Write calls */
  97. asyncTrpBit = 10, /* trap word modifier */
  98. noQueueBit = 9 /* trap word modifier */
  99. };
  100. /* flags used in the driver header and device control entry */
  101. enum {
  102. dReadEnable = 0, /* set if driver responds to read requests */
  103. dWritEnable = 1, /* set if driver responds to write requests */
  104. dCtlEnable = 2, /* set if driver responds to control requests */
  105. dStatEnable = 3, /* set if driver responds to status requests */
  106. dNeedGoodBye = 4, /* set if driver needs time for performing periodic tasks */
  107. dNeedTime = 5, /* set if driver needs time for performing periodic tasks */
  108. dNeedLock = 6 /* set if driver must be locked in memory as soon as it is opened */
  109. };
  110. enum {
  111. dNeedLockMask = 0x4000, /* set if driver must be locked in memory as soon as it is opened */
  112. dNeedTimeMask = 0x2000, /* set if driver needs time for performing periodic tasks */
  113. dNeedGoodByeMask = 0x1000, /* set if driver needs to be called before the application heap is initialized */
  114. dStatEnableMask = 0x0800, /* set if driver responds to status requests */
  115. dCtlEnableMask = 0x0400, /* set if driver responds to control requests */
  116. dWritEnableMask = 0x0200, /* set if driver responds to write requests */
  117. dReadEnableMask = 0x0100 /* set if driver responds to read requests */
  118. };
  119. /* run-time flags used in the device control entry */
  120. enum {
  121. dVMImmuneBit = 0, /* driver does not need VM protection */
  122. dOpened = 5, /* driver is open */
  123. dRAMBased = 6, /* dCtlDriver is a handle (1) or pointer (0) */
  124. drvrActive = 7 /* driver is currently processing a request */
  125. };
  126. enum {
  127. dVMImmuneMask = 0x0001, /* driver does not need VM protection */
  128. dOpenedMask = 0x0020, /* driver is open */
  129. dRAMBasedMask = 0x0040, /* dCtlDriver is a handle (1) or pointer (0) */
  130. drvrActiveMask = 0x0080 /* driver is currently processing a request */
  131. };
  132. struct DRVRHeader {
  133. short drvrFlags;
  134. short drvrDelay;
  135. short drvrEMask;
  136. short drvrMenu;
  137. short drvrOpen;
  138. short drvrPrime;
  139. short drvrCtl;
  140. short drvrStatus;
  141. short drvrClose;
  142. unsigned char drvrName[1];
  143. };
  144. typedef struct DRVRHeader DRVRHeader;
  145. typedef DRVRHeader * DRVRHeaderPtr;
  146. typedef DRVRHeaderPtr * DRVRHeaderHandle;
  147. struct DCtlEntry {
  148. Ptr dCtlDriver;
  149. volatile short dCtlFlags;
  150. QHdr dCtlQHdr;
  151. volatile long dCtlPosition;
  152. Handle dCtlStorage;
  153. short dCtlRefNum;
  154. long dCtlCurTicks;
  155. GrafPtr dCtlWindow;
  156. short dCtlDelay;
  157. short dCtlEMask;
  158. short dCtlMenu;
  159. };
  160. typedef struct DCtlEntry DCtlEntry;
  161. typedef DCtlEntry * DCtlPtr;
  162. typedef DCtlPtr * DCtlHandle;
  163. struct AuxDCE {
  164. Ptr dCtlDriver;
  165. volatile short dCtlFlags;
  166. QHdr dCtlQHdr;
  167. long dCtlPosition;
  168. Handle dCtlStorage;
  169. short dCtlRefNum;
  170. long dCtlCurTicks;
  171. GrafPtr dCtlWindow;
  172. short dCtlDelay;
  173. short dCtlEMask;
  174. short dCtlMenu;
  175. SInt8 dCtlSlot;
  176. SInt8 dCtlSlotId;
  177. long dCtlDevBase;
  178. Ptr dCtlOwner;
  179. SInt8 dCtlExtDev;
  180. SInt8 fillByte;
  181. UInt32 dCtlNodeID;
  182. };
  183. typedef struct AuxDCE AuxDCE;
  184. typedef AuxDCE * AuxDCEPtr;
  185. typedef AuxDCEPtr * AuxDCEHandle;
  186. /* The NDRV Driver IO Entry Point and Commands */
  187. typedef UInt16 UnitNumber;
  188. typedef UInt32 DriverOpenCount;
  189. typedef SInt16 DriverRefNum;
  190. typedef SInt16 DriverFlags;
  191. typedef UInt32 IOCommandCode;
  192. enum {
  193. kOpenCommand = 0,
  194. kCloseCommand = 1,
  195. kReadCommand = 2,
  196. kWriteCommand = 3,
  197. kControlCommand = 4,
  198. kStatusCommand = 5,
  199. kKillIOCommand = 6,
  200. kInitializeCommand = 7, /* init driver and device*/
  201. kFinalizeCommand = 8, /* shutdown driver and device*/
  202. kReplaceCommand = 9, /* replace an old driver*/
  203. kSupersededCommand = 10, /* prepare to be replaced by a new driver*/
  204. kSuspendCommand = 11, /* prepare driver to go to sleep*/
  205. kResumeCommand = 12 /* wake up sleeping driver*/
  206. };
  207. typedef MPAddressSpaceID AddressSpaceID;
  208. typedef struct OpaqueIOCommandID* IOCommandID;
  209. struct MacDriverType {
  210. long filler[9];
  211. };
  212. typedef struct MacDriverType MacDriverType;
  213. typedef MacDriverType * DriverTypePtr;
  214. struct DriverDescription {
  215. long filler[32];
  216. };
  217. typedef struct DriverDescription DriverDescription;
  218. typedef DriverDescription * DriverDescriptionPtr;
  219. typedef UInt32 IOCommandKind;
  220. enum {
  221. kSynchronousIOCommandKind = 0x00000001,
  222. kAsynchronousIOCommandKind = 0x00000002,
  223. kImmediateIOCommandKind = 0x00000004
  224. };
  225. struct DriverInitInfo {
  226. DriverRefNum refNum;
  227. RegEntryID deviceEntry;
  228. };
  229. typedef struct DriverInitInfo DriverInitInfo;
  230. typedef DriverInitInfo * DriverInitInfoPtr;
  231. typedef DriverInitInfo DriverReplaceInfo;
  232. typedef DriverInitInfo * DriverReplaceInfoPtr;
  233. struct DriverFinalInfo {
  234. DriverRefNum refNum;
  235. RegEntryID deviceEntry;
  236. };
  237. typedef struct DriverFinalInfo DriverFinalInfo;
  238. typedef DriverFinalInfo * DriverFinalInfoPtr;
  239. typedef DriverFinalInfo DriverSupersededInfo;
  240. typedef DriverFinalInfo * DriverSupersededInfoPtr;
  241. /* Contents are command specific*/
  242. union IOCommandContents {
  243. ParmBlkPtr pb;
  244. DriverInitInfoPtr initialInfo;
  245. DriverFinalInfoPtr finalInfo;
  246. DriverReplaceInfoPtr replaceInfo;
  247. DriverSupersededInfoPtr supersededInfo;
  248. };
  249. typedef union IOCommandContents IOCommandContents;
  250. typedef CALLBACK_API_C( OSErr , DriverEntryPointPtr )(AddressSpaceID SpaceID, IOCommandID CommandID, IOCommandContents Contents, IOCommandCode Code, IOCommandKind Kind);
  251. /* Record to describe a file-based driver candidate */
  252. struct FileBasedDriverRecord {
  253. FSSpec theSpec; /* file specification*/
  254. MacDriverType theType; /* nameInfoStr + version number*/
  255. Boolean compatibleProp; /* true if matched using a compatible name*/
  256. UInt8 pad[3]; /* alignment*/
  257. };
  258. typedef struct FileBasedDriverRecord FileBasedDriverRecord;
  259. typedef FileBasedDriverRecord * FileBasedDriverRecordPtr;
  260. /* Detailed Record to describe a file-based driver candidate. Includes fragment name */
  261. struct FileBasedDriverDetailed {
  262. FileBasedDriverRecord fileBasedDriver;
  263. Str63 fragName;
  264. };
  265. typedef struct FileBasedDriverDetailed FileBasedDriverDetailed;
  266. typedef FileBasedDriverDetailed * FileBasedDriverDetailedPtr;
  267. /* Driver Loader API */
  268. #define DECLARE_DRIVERDESCRIPTION(N_ADDITIONAL_SERVICES)\
  269. struct {\
  270. DriverDescription fixed;\
  271. DriverServiceInfo additional_service[N_ADDITIONAL_SERVICES-1];\
  272. };
  273. #if CALL_NOT_IN_CARBON
  274. /*
  275. * HigherDriverVersion()
  276. *
  277. * Availability:
  278. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  279. * CarbonLib: not available
  280. * Mac OS X: not available
  281. */
  282. EXTERN_API_C( SInt16 )
  283. HigherDriverVersion(
  284. const NumVersion * driverVersion1,
  285. const NumVersion * driverVersion2);
  286. /*
  287. * VerifyFragmentAsDriver()
  288. *
  289. * Availability:
  290. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  291. * CarbonLib: not available
  292. * Mac OS X: not available
  293. */
  294. EXTERN_API_C( OSErr )
  295. VerifyFragmentAsDriver(
  296. CFragConnectionID fragmentConnID,
  297. DriverEntryPointPtr * fragmentMain,
  298. DriverDescriptionPtr * driverDesc);
  299. /*
  300. * GetDriverMemoryFragment()
  301. *
  302. * Availability:
  303. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  304. * CarbonLib: not available
  305. * Mac OS X: not available
  306. */
  307. EXTERN_API_C( OSErr )
  308. GetDriverMemoryFragment(
  309. Ptr memAddr,
  310. long length,
  311. ConstStr63Param fragName,
  312. CFragConnectionID * fragmentConnID,
  313. DriverEntryPointPtr * fragmentMain,
  314. DriverDescriptionPtr * driverDesc);
  315. /*
  316. * GetDriverDiskFragment()
  317. *
  318. * Availability:
  319. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  320. * CarbonLib: not available
  321. * Mac OS X: not available
  322. */
  323. EXTERN_API_C( OSErr )
  324. GetDriverDiskFragment(
  325. FSSpecPtr fragmentSpec,
  326. CFragConnectionID * fragmentConnID,
  327. DriverEntryPointPtr * fragmentMain,
  328. DriverDescriptionPtr * driverDesc);
  329. /*
  330. * GetNamedDriverDiskFragment()
  331. *
  332. * Availability:
  333. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  334. * CarbonLib: not available
  335. * Mac OS X: not available
  336. */
  337. EXTERN_API_C( OSErr )
  338. GetNamedDriverDiskFragment(
  339. FSSpecPtr fragmentSpec,
  340. ConstStr63Param fragName,
  341. CFragConnectionID * fragmentConnID,
  342. DriverEntryPointPtr * fragmentMain,
  343. DriverDescriptionPtr * driverDesc);
  344. /*
  345. * InstallDriverFromFragment()
  346. *
  347. * Availability:
  348. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  349. * CarbonLib: not available
  350. * Mac OS X: not available
  351. */
  352. EXTERN_API_C( OSErr )
  353. InstallDriverFromFragment(
  354. CFragConnectionID fragmentConnID,
  355. RegEntryID * device,
  356. UnitNumber beginningUnit,
  357. UnitNumber endingUnit,
  358. DriverRefNum * refNum);
  359. /*
  360. * InstallDriverFromFile()
  361. *
  362. * Availability:
  363. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  364. * CarbonLib: not available
  365. * Mac OS X: not available
  366. */
  367. EXTERN_API_C( OSErr )
  368. InstallDriverFromFile(
  369. FSSpecPtr fragmentSpec,
  370. RegEntryID * device,
  371. UnitNumber beginningUnit,
  372. UnitNumber endingUnit,
  373. DriverRefNum * refNum);
  374. /*
  375. * InstallDriverFromMemory()
  376. *
  377. * Availability:
  378. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  379. * CarbonLib: not available
  380. * Mac OS X: not available
  381. */
  382. EXTERN_API_C( OSErr )
  383. InstallDriverFromMemory(
  384. Ptr memory,
  385. long length,
  386. ConstStr63Param fragName,
  387. RegEntryID * device,
  388. UnitNumber beginningUnit,
  389. UnitNumber endingUnit,
  390. DriverRefNum * refNum);
  391. /*
  392. * InstallDriverFromResource()
  393. *
  394. * Availability:
  395. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  396. * CarbonLib: not available
  397. * Mac OS X: not available
  398. */
  399. EXTERN_API_C( OSErr )
  400. InstallDriverFromResource(
  401. SInt16 theRsrcID,
  402. ConstStr255Param theRsrcName,
  403. RegEntryIDPtr theDevice,
  404. UnitNumber theBeginningUnit,
  405. UnitNumber theEndingUnit,
  406. DriverRefNum * theRefNum);
  407. /*
  408. * InstallDriverFromDisk()
  409. *
  410. * Availability:
  411. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  412. * CarbonLib: not available
  413. * Mac OS X: not available
  414. */
  415. EXTERN_API_C( OSErr )
  416. InstallDriverFromDisk(
  417. Ptr theDriverName,
  418. RegEntryID * theDevice,
  419. UnitNumber theBeginningUnit,
  420. UnitNumber theEndingUnit,
  421. DriverRefNum * theRefNum);
  422. /*
  423. * FindDriversForDevice()
  424. *
  425. * Availability:
  426. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  427. * CarbonLib: not available
  428. * Mac OS X: not available
  429. */
  430. EXTERN_API_C( OSErr )
  431. FindDriversForDevice(
  432. RegEntryID * device,
  433. FSSpec * fragmentSpec,
  434. DriverDescription * fileDriverDesc,
  435. Ptr * memAddr,
  436. long * length,
  437. StringPtr fragName,
  438. DriverDescription * memDriverDesc);
  439. /*
  440. * FindDriverForDeviceFromFile()
  441. *
  442. * Availability:
  443. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  444. * CarbonLib: not available
  445. * Mac OS X: not available
  446. */
  447. EXTERN_API_C( OSErr )
  448. FindDriverForDeviceFromFile(
  449. RegEntryID * device,
  450. FSSpec * fragmentSpec,
  451. DriverDescription * driverDesc,
  452. StringPtr fragName);
  453. /*
  454. * FindDriverCandidates()
  455. *
  456. * Availability:
  457. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  458. * CarbonLib: not available
  459. * Mac OS X: not available
  460. */
  461. EXTERN_API_C( OSErr )
  462. FindDriverCandidates(
  463. RegEntryID * deviceID,
  464. Ptr * propBasedDriver,
  465. RegPropertyValueSize * propBasedDriverSize,
  466. StringPtr deviceName,
  467. MacDriverType * propBasedDriverType,
  468. Boolean * gotPropBasedDriver,
  469. FileBasedDriverRecordPtr fileBasedDrivers,
  470. ItemCount * nFileBasedDrivers);
  471. /*
  472. * FindDriverCandidatesDetailed()
  473. *
  474. * Availability:
  475. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  476. * CarbonLib: not available
  477. * Mac OS X: not available
  478. */
  479. EXTERN_API_C( OSErr )
  480. FindDriverCandidatesDetailed(
  481. RegEntryIDPtr deviceID,
  482. Ptr * propBasedDriver,
  483. RegPropertyValueSize * propBasedDriverSize,
  484. StringPtr deviceName,
  485. MacDriverType * propBasedDriverType,
  486. Boolean * gotPropBasedDriver,
  487. FileBasedDriverDetailedPtr fileBasedDrivers,
  488. ItemCount * nFileBasedDrivers);
  489. /*
  490. * ScanDriverCandidates()
  491. *
  492. * Availability:
  493. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  494. * CarbonLib: not available
  495. * Mac OS X: not available
  496. */
  497. EXTERN_API_C( OSErr )
  498. ScanDriverCandidates(
  499. RegEntryID * deviceID,
  500. FileBasedDriverRecordPtr fileBasedDrivers,
  501. ItemCount nFileBasedDrivers,
  502. FileBasedDriverRecordPtr matchingDrivers,
  503. ItemCount * nMatchingDrivers);
  504. /*
  505. * ScanDriverCandidatesDetailed()
  506. *
  507. * Availability:
  508. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  509. * CarbonLib: not available
  510. * Mac OS X: not available
  511. */
  512. EXTERN_API_C( OSErr )
  513. ScanDriverCandidatesDetailed(
  514. RegEntryID * deviceID,
  515. FileBasedDriverDetailedPtr fileBasedDrivers,
  516. ItemCount nFileBasedDrivers,
  517. FileBasedDriverDetailedPtr matchingDrivers,
  518. ItemCount * nMatchingDrivers);
  519. /*
  520. * CompareFileCandToPropCand()
  521. *
  522. * Availability:
  523. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  524. * CarbonLib: not available
  525. * Mac OS X: not available
  526. */
  527. EXTERN_API_C( SInt16 )
  528. CompareFileCandToPropCand(
  529. RegEntryID * device,
  530. StringPtr deviceName,
  531. DriverTypePtr propBasedCandidate,
  532. FileBasedDriverRecordPtr fileBasedCandidate);
  533. /*
  534. * GetCompatibleProperty()
  535. *
  536. * Availability:
  537. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  538. * CarbonLib: not available
  539. * Mac OS X: not available
  540. */
  541. EXTERN_API_C( void )
  542. GetCompatibleProperty(
  543. RegEntryID * device,
  544. StringPtr * compatibleNames,
  545. ItemCount * nCompatibleNames);
  546. /*
  547. * CompatibleDriverNames()
  548. *
  549. * Availability:
  550. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  551. * CarbonLib: not available
  552. * Mac OS X: not available
  553. */
  554. EXTERN_API_C( Boolean )
  555. CompatibleDriverNames(
  556. StringPtr nameInfoStr,
  557. StringPtr compatibleNames,
  558. ItemCount nCompatibleNames,
  559. long * nameCount);
  560. /*
  561. * GetDriverForDevice()
  562. *
  563. * Availability:
  564. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  565. * CarbonLib: not available
  566. * Mac OS X: not available
  567. */
  568. EXTERN_API_C( OSErr )
  569. GetDriverForDevice(
  570. RegEntryID * device,
  571. CFragConnectionID * fragmentConnID,
  572. DriverEntryPointPtr * fragmentMain,
  573. DriverDescriptionPtr * driverDesc);
  574. /*
  575. * InstallDriverForDevice()
  576. *
  577. * Availability:
  578. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  579. * CarbonLib: not available
  580. * Mac OS X: not available
  581. */
  582. EXTERN_API_C( OSErr )
  583. InstallDriverForDevice(
  584. RegEntryID * device,
  585. UnitNumber beginningUnit,
  586. UnitNumber endingUnit,
  587. DriverRefNum * refNum);
  588. /*
  589. * GetDriverInformation()
  590. *
  591. * Availability:
  592. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  593. * CarbonLib: not available
  594. * Mac OS X: not available
  595. */
  596. EXTERN_API_C( OSErr )
  597. GetDriverInformation(
  598. DriverRefNum refNum,
  599. UnitNumber * unitNum,
  600. DriverFlags * flags,
  601. DriverOpenCount * count,
  602. StringPtr name,
  603. RegEntryID * device,
  604. CFragSystem7Locator * driverLoadLocation,
  605. CFragConnectionID * fragmentConnID,
  606. DriverEntryPointPtr * fragmentMain,
  607. DriverDescription * driverDesc);
  608. /*
  609. * GetDriverDescription()
  610. *
  611. * Availability:
  612. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  613. * CarbonLib: not available
  614. * Mac OS X: not available
  615. */
  616. EXTERN_API_C( OSErr )
  617. GetDriverDescription(
  618. LogicalAddress fragmentPtr,
  619. DriverDescriptionPtr * theDriverDesc);
  620. /*
  621. * GetNamedDriverDescFromFSSpec()
  622. *
  623. * Availability:
  624. * Non-Carbon CFM: in DriverLoaderLib 2.0 and later
  625. * CarbonLib: not available
  626. * Mac OS X: not available
  627. */
  628. EXTERN_API_C( OSStatus )
  629. GetNamedDriverDescFromFSSpec(
  630. FSSpecPtr fragmentSpec,
  631. StringPtr fragName,
  632. DriverDescriptionPtr * driverDesc);
  633. /*
  634. * SetDriverClosureMemory()
  635. *
  636. * Availability:
  637. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  638. * CarbonLib: not available
  639. * Mac OS X: not available
  640. */
  641. EXTERN_API_C( OSErr )
  642. SetDriverClosureMemory(
  643. CFragConnectionID fragmentConnID,
  644. Boolean holdDriverMemory);
  645. /*
  646. * ReplaceDriverWithFragment()
  647. *
  648. * Availability:
  649. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  650. * CarbonLib: not available
  651. * Mac OS X: not available
  652. */
  653. EXTERN_API_C( OSErr )
  654. ReplaceDriverWithFragment(
  655. DriverRefNum theRefNum,
  656. CFragConnectionID fragmentConnID);
  657. /*
  658. * OpenInstalledDriver()
  659. *
  660. * Availability:
  661. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  662. * CarbonLib: not available
  663. * Mac OS X: not available
  664. */
  665. EXTERN_API_C( OSErr )
  666. OpenInstalledDriver(
  667. DriverRefNum refNum,
  668. SInt8 ioPermission);
  669. /*
  670. * RenameDriver()
  671. *
  672. * Availability:
  673. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  674. * CarbonLib: not available
  675. * Mac OS X: not available
  676. */
  677. EXTERN_API_C( OSErr )
  678. RenameDriver(
  679. DriverRefNum refNum,
  680. StringPtr newDriverName);
  681. /*
  682. * RemoveDriver()
  683. *
  684. * Availability:
  685. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  686. * CarbonLib: not available
  687. * Mac OS X: not available
  688. */
  689. EXTERN_API_C( OSErr )
  690. RemoveDriver(
  691. DriverRefNum refNum,
  692. Boolean immediate);
  693. /*
  694. * LookupDrivers()
  695. *
  696. * Availability:
  697. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  698. * CarbonLib: not available
  699. * Mac OS X: not available
  700. */
  701. EXTERN_API_C( OSErr )
  702. LookupDrivers(
  703. UnitNumber beginningUnit,
  704. UnitNumber endingUnit,
  705. Boolean emptyUnits,
  706. ItemCount * returnedRefNums,
  707. DriverRefNum * refNums);
  708. /*
  709. * HighestUnitNumber()
  710. *
  711. * Availability:
  712. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  713. * CarbonLib: not available
  714. * Mac OS X: not available
  715. */
  716. EXTERN_API_C( UnitNumber )
  717. HighestUnitNumber(void);
  718. /*
  719. * DriverGestaltOn()
  720. *
  721. * Availability:
  722. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  723. * CarbonLib: not available
  724. * Mac OS X: not available
  725. */
  726. EXTERN_API_C( OSErr )
  727. DriverGestaltOn(DriverRefNum refNum);
  728. /*
  729. * DriverGestaltOff()
  730. *
  731. * Availability:
  732. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  733. * CarbonLib: not available
  734. * Mac OS X: not available
  735. */
  736. EXTERN_API_C( OSErr )
  737. DriverGestaltOff(DriverRefNum refNum);
  738. /*
  739. * DriverGestaltIsOn()
  740. *
  741. * Availability:
  742. * Non-Carbon CFM: in DriverLoaderLib 1.0 and later
  743. * CarbonLib: not available
  744. * Mac OS X: not available
  745. */
  746. EXTERN_API_C( Boolean )
  747. DriverGestaltIsOn(DriverFlags flags);
  748. /*
  749. * PBOpenSync()
  750. *
  751. * Availability:
  752. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  753. * CarbonLib: not available
  754. * Mac OS X: not available
  755. */
  756. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  757. #pragma parameter __D0 PBOpenSync(__A0)
  758. #endif
  759. EXTERN_API( OSErr )
  760. PBOpenSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA000);
  761. /*
  762. * PBOpenAsync()
  763. *
  764. * Availability:
  765. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  766. * CarbonLib: not available
  767. * Mac OS X: not available
  768. */
  769. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  770. #pragma parameter __D0 PBOpenAsync(__A0)
  771. #endif
  772. EXTERN_API( OSErr )
  773. PBOpenAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA400);
  774. /*
  775. * PBOpenImmed()
  776. *
  777. * Availability:
  778. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  779. * CarbonLib: not available
  780. * Mac OS X: not available
  781. */
  782. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  783. #pragma parameter __D0 PBOpenImmed(__A0)
  784. #endif
  785. EXTERN_API( OSErr )
  786. PBOpenImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA200);
  787. #endif /* CALL_NOT_IN_CARBON */
  788. /*
  789. * PBCloseSync()
  790. *
  791. * Availability:
  792. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  793. * CarbonLib: in CarbonLib 1.0 and later
  794. * Mac OS X: in version 10.0 and later
  795. */
  796. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  797. #pragma parameter __D0 PBCloseSync(__A0)
  798. #endif
  799. EXTERN_API( OSErr )
  800. PBCloseSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA001);
  801. /*
  802. * PBCloseAsync()
  803. *
  804. * Availability:
  805. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  806. * CarbonLib: in CarbonLib 1.0 and later
  807. * Mac OS X: in version 10.0 and later
  808. */
  809. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  810. #pragma parameter __D0 PBCloseAsync(__A0)
  811. #endif
  812. EXTERN_API( OSErr )
  813. PBCloseAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA401);
  814. #if CALL_NOT_IN_CARBON
  815. /*
  816. * PBCloseImmed()
  817. *
  818. * Availability:
  819. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  820. * CarbonLib: not available
  821. * Mac OS X: not available
  822. */
  823. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  824. #pragma parameter __D0 PBCloseImmed(__A0)
  825. #endif
  826. EXTERN_API( OSErr )
  827. PBCloseImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA201);
  828. #endif /* CALL_NOT_IN_CARBON */
  829. /*
  830. * PBReadSync()
  831. *
  832. * Availability:
  833. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  834. * CarbonLib: in CarbonLib 1.0 and later
  835. * Mac OS X: in version 10.0 and later
  836. */
  837. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  838. #pragma parameter __D0 PBReadSync(__A0)
  839. #endif
  840. EXTERN_API( OSErr )
  841. PBReadSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA002);
  842. /*
  843. * PBReadAsync()
  844. *
  845. * Availability:
  846. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  847. * CarbonLib: in CarbonLib 1.0 and later
  848. * Mac OS X: in version 10.0 and later
  849. */
  850. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  851. #pragma parameter __D0 PBReadAsync(__A0)
  852. #endif
  853. EXTERN_API( OSErr )
  854. PBReadAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA402);
  855. #if CALL_NOT_IN_CARBON
  856. /*
  857. * PBReadImmed()
  858. *
  859. * Availability:
  860. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  861. * CarbonLib: not available
  862. * Mac OS X: not available
  863. */
  864. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  865. #pragma parameter __D0 PBReadImmed(__A0)
  866. #endif
  867. EXTERN_API( OSErr )
  868. PBReadImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA202);
  869. #endif /* CALL_NOT_IN_CARBON */
  870. /*
  871. * PBWriteSync()
  872. *
  873. * Availability:
  874. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  875. * CarbonLib: in CarbonLib 1.0 and later
  876. * Mac OS X: in version 10.0 and later
  877. */
  878. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  879. #pragma parameter __D0 PBWriteSync(__A0)
  880. #endif
  881. EXTERN_API( OSErr )
  882. PBWriteSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA003);
  883. /*
  884. * PBWriteAsync()
  885. *
  886. * Availability:
  887. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  888. * CarbonLib: in CarbonLib 1.0 and later
  889. * Mac OS X: in version 10.0 and later
  890. */
  891. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  892. #pragma parameter __D0 PBWriteAsync(__A0)
  893. #endif
  894. EXTERN_API( OSErr )
  895. PBWriteAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA403);
  896. #if CALL_NOT_IN_CARBON
  897. /*
  898. * PBWriteImmed()
  899. *
  900. * Availability:
  901. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  902. * CarbonLib: not available
  903. * Mac OS X: not available
  904. */
  905. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  906. #pragma parameter __D0 PBWriteImmed(__A0)
  907. #endif
  908. EXTERN_API( OSErr )
  909. PBWriteImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA203);
  910. /*
  911. PBWaitIOComplete is a friendly way for applications to monitor
  912. a pending asynchronous I/O operation in power-managed and
  913. preemptive multitasking systems.
  914. */
  915. #endif /* CALL_NOT_IN_CARBON */
  916. /*
  917. * PBWaitIOComplete()
  918. *
  919. * Availability:
  920. * Non-Carbon CFM: in InterfaceLib 9.0 and later
  921. * CarbonLib: in CarbonLib 1.0 and later
  922. * Mac OS X: in version 10.0 and later
  923. */
  924. EXTERN_API( OSErr )
  925. PBWaitIOComplete(
  926. ParmBlkPtr paramBlock,
  927. Duration timeout);
  928. /* AddDrive and GetDrvQHdr are now defined in Disks.h/p/a */
  929. #if CALL_NOT_IN_CARBON
  930. /*
  931. * GetDCtlEntry()
  932. *
  933. * Availability:
  934. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  935. * CarbonLib: not available
  936. * Mac OS X: not available
  937. */
  938. EXTERN_API( DCtlHandle )
  939. GetDCtlEntry(short refNum);
  940. /*
  941. SetChooserAlert used to simply set a bit in a low-mem global
  942. to tell the Chooser not to display its warning message when
  943. the printer is changed. However, under MultiFinder and System 7,
  944. this low-mem is swapped out when a layer change occurs, and the
  945. Chooser never sees the change. It is obsolete, and completely
  946. unsupported on the PowerPC. 68K apps can still call it if they
  947. wish.
  948. pascal Boolean SetChooserAlert(Boolean f);
  949. */
  950. /*
  951. * DriverInstall()
  952. *
  953. * Availability:
  954. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  955. * CarbonLib: not available
  956. * Mac OS X: not available
  957. */
  958. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  959. #pragma parameter __D0 DriverInstall(__A0, __D0)
  960. #endif
  961. EXTERN_API( OSErr )
  962. DriverInstall(
  963. DRVRHeaderPtr drvrPtr,
  964. short refNum) ONEWORDINLINE(0xA03D);
  965. /*
  966. * DriverInstallReserveMem()
  967. *
  968. * Availability:
  969. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  970. * CarbonLib: not available
  971. * Mac OS X: not available
  972. */
  973. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  974. #pragma parameter __D0 DriverInstallReserveMem(__A0, __D0)
  975. #endif
  976. EXTERN_API( OSErr )
  977. DriverInstallReserveMem(
  978. DRVRHeaderPtr drvrPtr,
  979. short refNum) ONEWORDINLINE(0xA43D);
  980. /*
  981. Note: DrvrInstall() is no longer supported, becuase it never really worked anyways.
  982. There will soon be a DriverInstall() which does the right thing.
  983. DrvrRemove has been renamed to DriverRemove. But, InterfaceLib for PowerPC
  984. still exports DrvrRemove, so a macro is used to map the new name to old.
  985. */
  986. /*
  987. * DrvrRemove()
  988. *
  989. * Availability:
  990. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  991. * CarbonLib: not available
  992. * Mac OS X: not available
  993. */
  994. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  995. #pragma parameter __D0 DrvrRemove(__D0)
  996. #endif
  997. EXTERN_API( OSErr )
  998. DrvrRemove(short refNum) ONEWORDINLINE(0xA03E);
  999. #endif /* CALL_NOT_IN_CARBON */
  1000. #define DriverRemove(refNum) DrvrRemove(refNum)
  1001. #if CALL_NOT_IN_CARBON
  1002. /*
  1003. * [Mac]OpenDriver()
  1004. *
  1005. * Availability:
  1006. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1007. * CarbonLib: not available
  1008. * Mac OS X: not available
  1009. */
  1010. #if TARGET_OS_MAC
  1011. #define MacOpenDriver OpenDriver
  1012. #endif
  1013. EXTERN_API( OSErr )
  1014. MacOpenDriver(
  1015. ConstStr255Param name,
  1016. short * drvrRefNum);
  1017. /*
  1018. * [Mac]CloseDriver()
  1019. *
  1020. * Availability:
  1021. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1022. * CarbonLib: not available
  1023. * Mac OS X: not available
  1024. */
  1025. #if TARGET_OS_MAC
  1026. #define MacCloseDriver CloseDriver
  1027. #endif
  1028. EXTERN_API( OSErr )
  1029. MacCloseDriver(short refNum);
  1030. /*
  1031. * Control()
  1032. *
  1033. * Availability:
  1034. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1035. * CarbonLib: not available
  1036. * Mac OS X: not available
  1037. */
  1038. EXTERN_API( OSErr )
  1039. Control(
  1040. short refNum,
  1041. short csCode,
  1042. const void * csParamPtr);
  1043. /*
  1044. * Status()
  1045. *
  1046. * Availability:
  1047. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1048. * CarbonLib: not available
  1049. * Mac OS X: not available
  1050. */
  1051. EXTERN_API( OSErr )
  1052. Status(
  1053. short refNum,
  1054. short csCode,
  1055. void * csParamPtr);
  1056. /*
  1057. * KillIO()
  1058. *
  1059. * Availability:
  1060. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1061. * CarbonLib: not available
  1062. * Mac OS X: not available
  1063. */
  1064. EXTERN_API( OSErr )
  1065. KillIO(short refNum);
  1066. /*
  1067. * Fetch()
  1068. *
  1069. * Availability:
  1070. * Non-Carbon CFM: not available
  1071. * CarbonLib: not available
  1072. * Mac OS X: not available
  1073. */
  1074. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1075. #pragma parameter __D0 Fetch(__A1)
  1076. #endif
  1077. EXTERN_API( long )
  1078. Fetch(DCtlPtr dce) THREEWORDINLINE(0x2078, 0x08F4, 0x4E90);
  1079. /*
  1080. * Stash()
  1081. *
  1082. * Availability:
  1083. * Non-Carbon CFM: not available
  1084. * CarbonLib: not available
  1085. * Mac OS X: not available
  1086. */
  1087. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1088. #pragma parameter __D0 Stash(__A1, __D0)
  1089. #endif
  1090. EXTERN_API( long )
  1091. Stash(
  1092. DCtlPtr dce,
  1093. char data) THREEWORDINLINE(0x2078, 0x08F8, 0x4E90);
  1094. /*
  1095. * IODone()
  1096. *
  1097. * Availability:
  1098. * Non-Carbon CFM: not available
  1099. * CarbonLib: not available
  1100. * Mac OS X: not available
  1101. */
  1102. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1103. #pragma parameter IODone(__A1, __D0)
  1104. #endif
  1105. EXTERN_API( void )
  1106. IODone(
  1107. DCtlPtr dce,
  1108. OSErr ioResult) THREEWORDINLINE(0x2078, 0x08FC, 0x4E90);
  1109. #endif /* CALL_NOT_IN_CARBON */
  1110. #if CALL_NOT_IN_CARBON
  1111. /*
  1112. * PBControlSync()
  1113. *
  1114. * Availability:
  1115. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1116. * CarbonLib: not available
  1117. * Mac OS X: not available
  1118. */
  1119. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1120. #pragma parameter __D0 PBControlSync(__A0)
  1121. #endif
  1122. EXTERN_API( OSErr )
  1123. PBControlSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA004);
  1124. /*
  1125. * PBControlAsync()
  1126. *
  1127. * Availability:
  1128. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1129. * CarbonLib: not available
  1130. * Mac OS X: not available
  1131. */
  1132. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1133. #pragma parameter __D0 PBControlAsync(__A0)
  1134. #endif
  1135. EXTERN_API( OSErr )
  1136. PBControlAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA404);
  1137. /*
  1138. * PBControlImmed()
  1139. *
  1140. * Availability:
  1141. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1142. * CarbonLib: not available
  1143. * Mac OS X: not available
  1144. */
  1145. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1146. #pragma parameter __D0 PBControlImmed(__A0)
  1147. #endif
  1148. EXTERN_API( OSErr )
  1149. PBControlImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA204);
  1150. /*
  1151. * PBStatusSync()
  1152. *
  1153. * Availability:
  1154. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1155. * CarbonLib: not available
  1156. * Mac OS X: not available
  1157. */
  1158. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1159. #pragma parameter __D0 PBStatusSync(__A0)
  1160. #endif
  1161. EXTERN_API( OSErr )
  1162. PBStatusSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA005);
  1163. /*
  1164. * PBStatusAsync()
  1165. *
  1166. * Availability:
  1167. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1168. * CarbonLib: not available
  1169. * Mac OS X: not available
  1170. */
  1171. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1172. #pragma parameter __D0 PBStatusAsync(__A0)
  1173. #endif
  1174. EXTERN_API( OSErr )
  1175. PBStatusAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA405);
  1176. /*
  1177. * PBStatusImmed()
  1178. *
  1179. * Availability:
  1180. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1181. * CarbonLib: not available
  1182. * Mac OS X: not available
  1183. */
  1184. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1185. #pragma parameter __D0 PBStatusImmed(__A0)
  1186. #endif
  1187. EXTERN_API( OSErr )
  1188. PBStatusImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA205);
  1189. /*
  1190. * PBKillIOSync()
  1191. *
  1192. * Availability:
  1193. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1194. * CarbonLib: not available
  1195. * Mac OS X: not available
  1196. */
  1197. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1198. #pragma parameter __D0 PBKillIOSync(__A0)
  1199. #endif
  1200. EXTERN_API( OSErr )
  1201. PBKillIOSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA006);
  1202. /*
  1203. * PBKillIOAsync()
  1204. *
  1205. * Availability:
  1206. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1207. * CarbonLib: not available
  1208. * Mac OS X: not available
  1209. */
  1210. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1211. #pragma parameter __D0 PBKillIOAsync(__A0)
  1212. #endif
  1213. EXTERN_API( OSErr )
  1214. PBKillIOAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA406);
  1215. /*
  1216. * PBKillIOImmed()
  1217. *
  1218. * Availability:
  1219. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1220. * CarbonLib: not available
  1221. * Mac OS X: not available
  1222. */
  1223. #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1224. #pragma parameter __D0 PBKillIOImmed(__A0)
  1225. #endif
  1226. EXTERN_API( OSErr )
  1227. PBKillIOImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA206);
  1228. /*
  1229. * OpenDeskAcc()
  1230. *
  1231. * Availability:
  1232. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1233. * CarbonLib: not available
  1234. * Mac OS X: not available
  1235. */
  1236. EXTERN_API( short )
  1237. OpenDeskAcc(ConstStr255Param deskAccName) ONEWORDINLINE(0xA9B6);
  1238. /*
  1239. * CloseDeskAcc()
  1240. *
  1241. * Availability:
  1242. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1243. * CarbonLib: not available
  1244. * Mac OS X: not available
  1245. */
  1246. EXTERN_API( void )
  1247. CloseDeskAcc(short refNum) ONEWORDINLINE(0xA9B7);
  1248. #endif /* CALL_NOT_IN_CARBON */
  1249. #if CALL_NOT_IN_CARBON
  1250. /*
  1251. * opendeskacc()
  1252. *
  1253. * Availability:
  1254. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1255. * CarbonLib: not available
  1256. * Mac OS X: not available
  1257. */
  1258. EXTERN_API_C( short )
  1259. opendeskacc(const char * deskAccName);
  1260. /*
  1261. * opendriver()
  1262. *
  1263. * Availability:
  1264. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1265. * CarbonLib: not available
  1266. * Mac OS X: not available
  1267. */
  1268. EXTERN_API_C( OSErr )
  1269. opendriver(
  1270. const char * driverName,
  1271. short * refNum);
  1272. #endif /* CALL_NOT_IN_CARBON */
  1273. /*
  1274. The PBxxx() routines are obsolete.
  1275. Use the PBxxxSync(), PBxxxAsync(), or PBxxxImmed version instead.
  1276. */
  1277. #define PBControl(pb, async) ((async) ? PBControlAsync(pb) : PBControlSync(pb))
  1278. #define PBStatus(pb, async) ((async) ? PBStatusAsync(pb) : PBStatusSync(pb))
  1279. #define PBKillIO(pb, async) ((async) ? PBKillIOAsync(pb) : PBKillIOSync(pb))
  1280. #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
  1281. #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
  1282. #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
  1283. #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
  1284. #if PRAGMA_STRUCT_ALIGN
  1285. #pragma options align=reset
  1286. #elif PRAGMA_STRUCT_PACKPUSH
  1287. #pragma pack(pop)
  1288. #elif PRAGMA_STRUCT_PACK
  1289. #pragma pack()
  1290. #endif
  1291. #ifdef PRAGMA_IMPORT_OFF
  1292. #pragma import off
  1293. #elif PRAGMA_IMPORT
  1294. #pragma import reset
  1295. #endif
  1296. #ifdef __cplusplus
  1297. }
  1298. #endif
  1299. #endif /* __DEVICES__ */