home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / Memory.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-09  |  16.6 KB  |  701 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Memory.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __MEMORY__
  13. #define __MEMORY__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. enum  {
  23.     maxSize                        = 0x800000,                        /*Max data block size is 8 megabytes*/
  24.     defaultPhysicalEntryCount    = 8,
  25. /* values returned from the GetPageState function */
  26.     kPageInMemory                = 0,
  27.     kPageOnDisk                    = 1,
  28.     kNotPaged                    = 2
  29. };
  30.  
  31. enum  {
  32. /* masks for Zone->heapType field */
  33.     k32BitHeap                    = 1,                            /* valid in all Memory Managers */
  34.     kNewStyleHeap                = 2,                            /* true if new Heap Manager is present */
  35.     kNewDebugHeap                = 4                                /* true if new Heap Manager is running in debug mode on this heap */
  36. };
  37.  
  38.  
  39. /* size of a block in bytes */
  40.  
  41. typedef long Size;
  42.  
  43. typedef struct Zone Zone, *THz;
  44.  
  45. typedef pascal long (*GrowZoneProcPtr)(Size cbNeeded);
  46.  
  47. enum {
  48.     uppGrowZoneProcInfo = kPascalStackBased
  49.          | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  50.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Size)))
  51. };
  52.  
  53. #if USESROUTINEDESCRIPTORS
  54. typedef UniversalProcPtr GrowZoneUPP;
  55.  
  56. #define CallGrowZoneProc(userRoutine, cbNeeded)        \
  57.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppGrowZoneProcInfo, (cbNeeded))
  58. #define NewGrowZoneProc(userRoutine)        \
  59.         (GrowZoneUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppGrowZoneProcInfo, GetCurrentISA())
  60. #else
  61. typedef GrowZoneProcPtr GrowZoneUPP;
  62.  
  63. #define CallGrowZoneProc(userRoutine, cbNeeded)        \
  64.         (*(userRoutine))((cbNeeded))
  65. #define NewGrowZoneProc(userRoutine)        \
  66.         (GrowZoneUPP)(userRoutine)
  67. #endif
  68.  
  69. typedef pascal void (*PurgeProcPtr)(Handle blockToPurge);
  70.  
  71. enum {
  72.     uppPurgeProcInfo = kPascalStackBased
  73.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  74. };
  75.  
  76. #if USESROUTINEDESCRIPTORS
  77. typedef UniversalProcPtr PurgeUPP;
  78.  
  79. #define CallPurgeProc(userRoutine, blockToPurge)        \
  80.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppPurgeProcInfo, (blockToPurge))
  81. #define NewPurgeProc(userRoutine)        \
  82.         (PurgeUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppPurgeProcInfo, GetCurrentISA())
  83. #else
  84. typedef PurgeProcPtr PurgeUPP;
  85.  
  86. #define CallPurgeProc(userRoutine, blockToPurge)        \
  87.         (*(userRoutine))((blockToPurge))
  88. #define NewPurgeProc(userRoutine)        \
  89.         (PurgeUPP)(userRoutine)
  90. #endif
  91.  
  92. #if defined(powerc) || defined (__powerc)
  93. #pragma options align=mac68k
  94. #endif
  95. struct Zone {
  96.     Ptr                            bkLim;
  97.     Ptr                            purgePtr;
  98.     Ptr                            hFstFree;
  99.     long                        zcbFree;
  100.     GrowZoneUPP                    gzProc;
  101.     short                        moreMast;
  102.     short                        flags;
  103.     short                        cntRel;
  104.     short                        maxRel;
  105.     short                        cntNRel;
  106.     Byte                        heapType;
  107.     Byte                        unused;
  108.     short                        cntEmpty;
  109.     short                        cntHandles;
  110.     long                        minCBFree;
  111.     PurgeUPP                    purgeProc;
  112.     Ptr                            sparePtr;
  113.     Ptr                            allocPtr;
  114.     short                        heapData;
  115. };
  116. #if defined(powerc) || defined(__powerc)
  117. #pragma options align=reset
  118. #endif
  119.  
  120. #if defined(powerc) || defined (__powerc)
  121. #pragma options align=mac68k
  122. #endif
  123. struct MemoryBlock {
  124.     void                        *address;
  125.     unsigned long                count;
  126. };
  127. #if defined(powerc) || defined(__powerc)
  128. #pragma options align=reset
  129. #endif
  130.  
  131. typedef struct MemoryBlock MemoryBlock;
  132.  
  133. #if defined(powerc) || defined (__powerc)
  134. #pragma options align=mac68k
  135. #endif
  136. struct LogicalToPhysicalTable {
  137.     MemoryBlock                    logical;
  138.     MemoryBlock                    physical[defaultPhysicalEntryCount];
  139. };
  140. #if defined(powerc) || defined(__powerc)
  141. #pragma options align=reset
  142. #endif
  143.  
  144. typedef struct LogicalToPhysicalTable LogicalToPhysicalTable;
  145.  
  146. typedef short PageState;
  147.  
  148. typedef short StatusRegisterContents;
  149.  
  150.  
  151. /*
  152.     UserFnProcs cannot be written in or called from a high-level 
  153.     language without the help of mixed mode or assembly glue because they 
  154.     use the following parameter-passing convention:
  155.  
  156.     typedef pascal void (*UserFnProcPtr)(void *parameter);
  157.  
  158.         In:
  159.             =>     parameter                A0.L
  160.         Out:
  161.             none
  162. */
  163.  
  164. enum  {
  165.     uppUserFnProcInfo            = kRegisterBased|REGISTER_ROUTINE_PARAMETER(1,kRegisterA0,kFourByteCode)
  166. };
  167.  
  168. #if USESROUTINEDESCRIPTORS
  169. typedef pascal void (*UserFnProcPtr)(void *parameter);
  170.  
  171. typedef UniversalProcPtr UserFnUPP;
  172.  
  173. #define CallUserFnProc(userRoutine, parameter)  \
  174.     CallUniversalProc((UniversalProcPtr)(userRoutine), uppUserFnProcInfo, (parameter))
  175.  
  176. #define NewUserFnProc(userRoutine)  \
  177.     (UserFnUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppUserFnProcInfo, GetCurrentISA())
  178.  
  179. #else
  180. typedef ProcPtr UserFnUPP;
  181.  
  182. #define NewUserFnProc(userRoutine)  \
  183.     (UserFnUPP)(userRoutine)
  184.  
  185. #endif
  186.  
  187. #ifdef __cplusplus
  188. extern "C" {
  189. #endif
  190.  
  191. #if USESCODEFRAGMENTS
  192. extern pascal Ptr GetApplLimit(void);
  193. extern pascal THz SystemZone(void);
  194. extern pascal THz ApplicationZone(void);
  195. extern pascal Handle GZSaveHnd(void);
  196. extern pascal Ptr TopMem(void);
  197. extern pascal OSErr MemError(void);
  198. #else
  199. #define GetApplLimit() (* (Ptr*) 0x0130)
  200.  
  201. #define SystemZone() (* (THz*) 0x02A6)
  202.  
  203. #define ApplicationZone() (* (THz*) 0x02AA)
  204.  
  205. #define GZSaveHnd() (* (Handle*) 0x0328)
  206.  
  207. #define TopMem() (* (Ptr*) 0x0108)
  208.  
  209. #define MemError() (* (OSErr*) 0x0220)
  210.  
  211. #endif
  212.  
  213.  
  214. #if USES68KINLINES
  215. #pragma parameter __A0 GetZone
  216. #endif
  217. extern pascal THz GetZone(void)
  218.  ONEWORDINLINE(0xA11A);
  219.  
  220. #if USES68KINLINES
  221. #pragma parameter __A0 NewHandle(__D0)
  222. #endif
  223. extern pascal Handle NewHandle(Size byteCount)
  224.  ONEWORDINLINE(0xA122);
  225.  
  226. #if USES68KINLINES
  227. #pragma parameter __A0 NewHandleSys(__D0)
  228. #endif
  229. extern pascal Handle NewHandleSys(Size byteCount)
  230.  ONEWORDINLINE(0xA522);
  231.  
  232. #if USES68KINLINES
  233. #pragma parameter __A0 NewHandleClear(__D0)
  234. #endif
  235. extern pascal Handle NewHandleClear(Size byteCount)
  236.  ONEWORDINLINE(0xA322);
  237.  
  238. #if USES68KINLINES
  239. #pragma parameter __A0 NewHandleSysClear(__D0)
  240. #endif
  241. extern pascal Handle NewHandleSysClear(Size byteCount)
  242.  ONEWORDINLINE(0xA722);
  243.  
  244. #if USES68KINLINES
  245. #pragma parameter __A0 HandleZone(__A0)
  246. #endif
  247. extern pascal THz HandleZone(Handle h)
  248.  ONEWORDINLINE(0xA126);
  249.  
  250. #if USES68KINLINES
  251. #pragma parameter __A0 RecoverHandle(__A0)
  252. #endif
  253. extern pascal Handle RecoverHandle(Ptr p)
  254.  ONEWORDINLINE(0xA128);
  255.  
  256. #if USES68KINLINES
  257. #pragma parameter __A0 RecoverHandleSys(__A0)
  258. #endif
  259. extern pascal Handle RecoverHandleSys(Ptr p)
  260.  ONEWORDINLINE(0xA528);
  261.  
  262. #if USES68KINLINES
  263. #pragma parameter __A0 NewPtr(__D0)
  264. #endif
  265. extern pascal Ptr NewPtr(Size byteCount)
  266.  ONEWORDINLINE(0xA11E);
  267.  
  268. #if USES68KINLINES
  269. #pragma parameter __A0 NewPtrSys(__D0)
  270. #endif
  271. extern pascal Ptr NewPtrSys(Size byteCount)
  272.  ONEWORDINLINE(0xA51E);
  273.  
  274. #if USES68KINLINES
  275. #pragma parameter __A0 NewPtrClear(__D0)
  276. #endif
  277. extern pascal Ptr NewPtrClear(Size byteCount)
  278.  ONEWORDINLINE(0xA31E);
  279.  
  280. #if USES68KINLINES
  281. #pragma parameter __A0 NewPtrSysClear(__D0)
  282. #endif
  283. extern pascal Ptr NewPtrSysClear(Size byteCount)
  284.  ONEWORDINLINE(0xA71E);
  285.  
  286. #if USES68KINLINES
  287. #pragma parameter __A0 PtrZone(__A0)
  288. #endif
  289. extern pascal THz PtrZone(Ptr p)
  290.  ONEWORDINLINE(0xA148);
  291.  
  292. #if USES68KINLINES
  293. #pragma parameter __D0 MaxBlock
  294. #endif
  295. extern pascal long MaxBlock(void)
  296.  ONEWORDINLINE(0xA061);
  297.  
  298. #if USES68KINLINES
  299. #pragma parameter __D0 MaxBlockSys
  300. #endif
  301. extern pascal long MaxBlockSys(void)
  302.  ONEWORDINLINE(0xA461);
  303.  
  304. #if USES68KINLINES
  305. #pragma parameter __D0 StackSpace
  306. #endif
  307. extern pascal long StackSpace(void)
  308.  ONEWORDINLINE(0xA065);
  309.  
  310. #if USES68KINLINES
  311. #pragma parameter __A0 NewEmptyHandle
  312. #endif
  313. extern pascal Handle NewEmptyHandle(void)
  314.  ONEWORDINLINE(0xA166);
  315.  
  316. #if USES68KINLINES
  317. #pragma parameter __A0 NewEmptyHandleSys
  318. #endif
  319. extern pascal Handle NewEmptyHandleSys(void)
  320.  ONEWORDINLINE(0xA566);
  321.  
  322. #if USES68KINLINES
  323. #pragma parameter  HLock(__A0)
  324. #endif
  325. extern pascal void HLock(Handle h)
  326.  ONEWORDINLINE(0xA029);
  327.  
  328. #if USES68KINLINES
  329. #pragma parameter  HUnlock(__A0)
  330. #endif
  331. extern pascal void HUnlock(Handle h)
  332.  ONEWORDINLINE(0xA02A);
  333.  
  334. #if USES68KINLINES
  335. #pragma parameter  HPurge(__A0)
  336. #endif
  337. extern pascal void HPurge(Handle h)
  338.  ONEWORDINLINE(0xA049);
  339.  
  340. #if USES68KINLINES
  341. #pragma parameter  HNoPurge(__A0)
  342. #endif
  343. extern pascal void HNoPurge(Handle h)
  344.  ONEWORDINLINE(0xA04A);
  345.  
  346. #if USES68KINLINES
  347. #pragma parameter  HLockHi(__A0)
  348. #endif
  349. extern pascal void HLockHi(Handle h)
  350.  TWOWORDINLINE(0xA064, 0xA029);
  351. extern pascal Handle TempNewHandle(Size logicalSize, OSErr *resultCode)
  352.  THREEWORDINLINE(0x3F3C, 0x001D, 0xA88F);
  353. extern pascal Size TempMaxMem(Size *grow)
  354.  THREEWORDINLINE(0x3F3C, 0x0015, 0xA88F);
  355. extern pascal long TempFreeMem(void)
  356.  THREEWORDINLINE(0x3F3C, 0x0018, 0xA88F);
  357.  
  358. /*  Temporary Memory routines renamed, but obsolete, in System 7.0 and later.  */
  359.  
  360. extern pascal void TempHLock(Handle h, OSErr *resultCode)
  361.  THREEWORDINLINE(0x3F3C, 0x001E, 0xA88F);
  362. extern pascal void TempHUnlock(Handle h, OSErr *resultCode)
  363.  THREEWORDINLINE(0x3F3C, 0x001F, 0xA88F);
  364. extern pascal void TempDisposeHandle(Handle h, OSErr *resultCode)
  365.  THREEWORDINLINE(0x3F3C, 0x0020, 0xA88F);
  366. extern pascal Ptr TempTopMem(void)
  367.  THREEWORDINLINE(0x3F3C, 0x0016, 0xA88F);
  368. extern pascal void InitApplZone(void)
  369.  ONEWORDINLINE(0xA02C);
  370. extern pascal void InitZone(GrowZoneUPP pgrowZone, short cmoreMasters, void *limitPtr, void *startPtr);
  371.  
  372. #if USES68KINLINES
  373. #pragma parameter  SetZone(__A0)
  374. #endif
  375. extern pascal void SetZone(THz hz)
  376.  ONEWORDINLINE(0xA01B);
  377.  
  378. #if USES68KINLINES
  379. #pragma parameter __D0 CompactMem(__D0)
  380. #endif
  381. extern pascal Size CompactMem(Size cbNeeded)
  382.  ONEWORDINLINE(0xA04C);
  383.  
  384. #if USES68KINLINES
  385. #pragma parameter __D0 CompactMemSys(__D0)
  386. #endif
  387. extern pascal Size CompactMemSys(Size cbNeeded)
  388.  ONEWORDINLINE(0xA44C);
  389.  
  390. #if USES68KINLINES
  391. #pragma parameter  PurgeMem(__D0)
  392. #endif
  393. extern pascal void PurgeMem(Size cbNeeded)
  394.  ONEWORDINLINE(0xA04D);
  395.  
  396. #if USES68KINLINES
  397. #pragma parameter  PurgeMemSys(__D0)
  398. #endif
  399. extern pascal void PurgeMemSys(Size cbNeeded)
  400.  ONEWORDINLINE(0xA44D);
  401.  
  402. #if USES68KINLINES
  403. #pragma parameter __D0 FreeMem
  404. #endif
  405. extern pascal long FreeMem(void)
  406.  ONEWORDINLINE(0xA01C);
  407.  
  408. #if USES68KINLINES
  409. #pragma parameter __D0 FreeMemSys
  410. #endif
  411. extern pascal long FreeMemSys(void)
  412.  ONEWORDINLINE(0xA41C);
  413.  
  414. #if USES68KINLINES
  415. #pragma parameter  ReserveMem(__D0)
  416. #endif
  417. extern pascal void ReserveMem(Size cbNeeded)
  418.  ONEWORDINLINE(0xA040);
  419.  
  420. #if USES68KINLINES
  421. #pragma parameter  ReserveMemSys(__D0)
  422. #endif
  423. extern pascal void ReserveMemSys(Size cbNeeded)
  424.  ONEWORDINLINE(0xA440);
  425.  
  426. #if USES68KINLINES
  427. #pragma parameter __D0 MaxMem(__A1)
  428. #endif
  429. extern pascal Size MaxMem(Size *grow)
  430.  TWOWORDINLINE(0xA11D, 0x2288);
  431.  
  432. #if USES68KINLINES
  433. #pragma parameter __D0 MaxMemSys(__A1)
  434. #endif
  435. extern pascal Size MaxMemSys(Size *grow)
  436.  TWOWORDINLINE(0xA51D, 0x2288);
  437.  
  438. #if USES68KINLINES
  439. #pragma parameter  SetGrowZone(__A0)
  440. #endif
  441. extern pascal void SetGrowZone(GrowZoneUPP growZone)
  442.  ONEWORDINLINE(0xA04B);
  443.  
  444. #if USES68KINLINES
  445. #pragma parameter  SetApplLimit(__A0)
  446. #endif
  447. extern pascal void SetApplLimit(void *zoneLimit)
  448.  ONEWORDINLINE(0xA02D);
  449.  
  450. #if USES68KINLINES
  451. #pragma parameter  MoveHHi(__A0)
  452. #endif
  453. extern pascal void MoveHHi(Handle h)
  454.  ONEWORDINLINE(0xA064);
  455.  
  456. #if USES68KINLINES
  457. #pragma parameter  DisposePtr(__A0)
  458. #endif
  459. extern pascal void DisposePtr(Ptr p)
  460.  ONEWORDINLINE(0xA01F);
  461. extern pascal Size GetPtrSize(Ptr p);
  462.  
  463. #if USES68KINLINES
  464. #pragma parameter  SetPtrSize(__A0, __D0)
  465. #endif
  466. extern pascal void SetPtrSize(Ptr p, Size newSize)
  467.  ONEWORDINLINE(0xA020);
  468.  
  469. #if USES68KINLINES
  470. #pragma parameter  DisposeHandle(__A0)
  471. #endif
  472. extern pascal void DisposeHandle(Handle h)
  473.  ONEWORDINLINE(0xA023);
  474.  
  475. #if USES68KINLINES
  476. #pragma parameter  SetHandleSize(__A0, __D0)
  477. #endif
  478. extern pascal void SetHandleSize(Handle h, Size newSize)
  479.  ONEWORDINLINE(0xA024);
  480.  
  481. #if USES68KINLINES
  482. #pragma parameter __D0 GetHandleSize(__A0)
  483. #endif
  484. extern pascal Size GetHandleSize(Handle h)
  485.  ONEWORDINLINE(0xA025);
  486.  
  487. #if USES68KINLINES
  488. #pragma parameter __D0 InlineGetHandleSize(__A0)
  489. #endif
  490. extern pascal Size InlineGetHandleSize(Handle h)
  491.  ONEWORDINLINE(0xA025);
  492.  
  493. #if USES68KINLINES
  494. #pragma parameter  ReallocateHandle(__A0, __D0)
  495. #endif
  496. extern pascal void ReallocateHandle(Handle h, Size byteCount)
  497.  ONEWORDINLINE(0xA027);
  498.  
  499. #if USES68KINLINES
  500. #pragma parameter  EmptyHandle(__A0)
  501. #endif
  502. extern pascal void EmptyHandle(Handle h)
  503.  ONEWORDINLINE(0xA02B);
  504.  
  505. #if USES68KINLINES
  506. #pragma parameter  HSetRBit(__A0)
  507. #endif
  508. extern pascal void HSetRBit(Handle h)
  509.  ONEWORDINLINE(0xA067);
  510.  
  511. #if USES68KINLINES
  512. #pragma parameter  HClrRBit(__A0)
  513. #endif
  514. extern pascal void HClrRBit(Handle h)
  515.  ONEWORDINLINE(0xA068);
  516. extern pascal void MoreMasters(void)
  517.  ONEWORDINLINE(0xA036);
  518.  
  519. #if USES68KINLINES
  520. #pragma parameter  BlockMove(__A0, __A1, __D0)
  521. #endif
  522. extern pascal void BlockMove(const void *srcPtr, void *destPtr, Size byteCount)
  523.  ONEWORDINLINE(0xA02E);
  524.  
  525. #if USES68KINLINES
  526. #pragma parameter  BlockMoveData(__A0, __A1, __D0)
  527. #endif
  528. extern pascal void BlockMoveData(const void *srcPtr, void *destPtr, Size byteCount)
  529.  ONEWORDINLINE(0xA22E);
  530. extern pascal void PurgeSpace(long *total, long *contig);
  531.  
  532. #if USES68KINLINES
  533. #pragma parameter __D0 HGetState(__A0)
  534. #endif
  535. extern pascal char HGetState(Handle h)
  536.  ONEWORDINLINE(0xA069);
  537.  
  538. #if USES68KINLINES
  539. #pragma parameter  HSetState(__A0, __D0)
  540. #endif
  541. extern pascal void HSetState(Handle h, char flags)
  542.  ONEWORDINLINE(0xA06A);
  543.  
  544. #if USES68KINLINES
  545. #pragma parameter  SetApplBase(__A0)
  546. #endif
  547. extern pascal void SetApplBase(void *startPtr)
  548.  ONEWORDINLINE(0xA057);
  549. extern pascal void MaxApplZone(void)
  550.  ONEWORDINLINE(0xA063);
  551.  
  552. #if USES68KINLINES
  553. #pragma parameter __D0 HoldMemory(__A0, __A1)
  554. #endif
  555. extern pascal OSErr HoldMemory(void *address, unsigned long count)
  556.  TWOWORDINLINE(0x7000, 0xA05C);
  557.  
  558. #if USES68KINLINES
  559. #pragma parameter __D0 UnholdMemory(__A0, __A1)
  560. #endif
  561. extern pascal OSErr UnholdMemory(void *address, unsigned long count)
  562.  TWOWORDINLINE(0x7001, 0xA05C);
  563.  
  564. #if USES68KINLINES
  565. #pragma parameter __D0 LockMemory(__A0, __A1)
  566. #endif
  567. extern pascal OSErr LockMemory(void *address, unsigned long count)
  568.  TWOWORDINLINE(0x7002, 0xA05C);
  569.  
  570. #if USES68KINLINES
  571. #pragma parameter __D0 LockMemoryContiguous(__A0, __A1)
  572. #endif
  573. extern pascal OSErr LockMemoryContiguous(void *address, unsigned long count)
  574.  TWOWORDINLINE(0x7004, 0xA05C);
  575.  
  576. #if USES68KINLINES
  577. #pragma parameter __D0 UnlockMemory(__A0, __A1)
  578. #endif
  579. extern pascal OSErr UnlockMemory(void *address, unsigned long count)
  580.  TWOWORDINLINE(0x7003, 0xA05C);
  581. extern pascal OSErr GetPhysical(LogicalToPhysicalTable *addresses, unsigned long *physicalEntryCount);
  582.  
  583. #if USES68KINLINES
  584. #pragma parameter __D0 DeferUserFn(__A0, __D0)
  585. #endif
  586. extern pascal OSErr DeferUserFn(UserFnUPP userFunction, void *argument)
  587.  ONEWORDINLINE(0xA08F);
  588.  
  589. #if USES68KINLINES
  590. #pragma parameter __D0 DebuggerGetMax
  591. #endif
  592. extern pascal long DebuggerGetMax(void)
  593.  TWOWORDINLINE(0x7000, 0xA08D);
  594. extern pascal void DebuggerEnter(void)
  595.  TWOWORDINLINE(0x7001, 0xA08D);
  596. extern pascal void DebuggerExit(void)
  597.  TWOWORDINLINE(0x7002, 0xA08D);
  598. extern pascal void DebuggerPoll(void)
  599.  TWOWORDINLINE(0x7003, 0xA08D);
  600.  
  601. #if USES68KINLINES
  602. #pragma parameter __D0 GetPageState(__A0)
  603. #endif
  604. extern pascal PageState GetPageState(const void *address)
  605.  TWOWORDINLINE(0x7004, 0xA08D);
  606.  
  607. #if USES68KINLINES
  608. #pragma parameter __D0 PageFaultFatal
  609. #endif
  610. extern pascal Boolean PageFaultFatal(void)
  611.  TWOWORDINLINE(0x7005, 0xA08D);
  612.  
  613. #if USES68KINLINES
  614. #pragma parameter __D0 DebuggerLockMemory(__A0, __A1)
  615. #endif
  616. extern pascal OSErr DebuggerLockMemory(void *address, unsigned long count)
  617.  TWOWORDINLINE(0x7006, 0xA08D);
  618.  
  619. #if USES68KINLINES
  620. #pragma parameter __D0 DebuggerUnlockMemory(__A0, __A1)
  621. #endif
  622. extern pascal OSErr DebuggerUnlockMemory(void *address, unsigned long count)
  623.  TWOWORDINLINE(0x7007, 0xA08D);
  624.  
  625. #if USES68KINLINES
  626. #pragma parameter __D0 EnterSupervisorMode
  627. #endif
  628. extern pascal StatusRegisterContents EnterSupervisorMode(void)
  629.  TWOWORDINLINE(0x7008, 0xA08D);
  630.  
  631. /* HeapDispatch glue */
  632.  
  633.  
  634. #if USES68KINLINES
  635. #pragma parameter __D0 DisposeZone(__A0)
  636. #endif
  637. extern pascal OSErr DisposeZone(THz theZone)
  638.  TWOWORDINLINE(0x701D, 0xA0A4);
  639. #if USES68KINLINES
  640. #if SystemSixOrLater
  641.  
  642. #if USES68KINLINES
  643. #pragma parameter __D0 StripAddress(__D0)
  644. #endif
  645. extern pascal Ptr StripAddress(void *theAddress)
  646.  ONEWORDINLINE(0xA055);
  647. #else
  648. extern pascal Ptr StripAddress(void *theAddress);
  649. #endif
  650.  
  651. #else
  652. #define StripAddress(x) ((Ptr)(x))
  653.  
  654. #endif
  655.  
  656. #if USES68KINLINES
  657.  
  658. #if USES68KINLINES
  659. #pragma parameter __D0 Translate24To32(__D0)
  660. #endif
  661. extern pascal Ptr Translate24To32(void *addr24)
  662.  ONEWORDINLINE(0xA091);
  663. #else
  664. #define Translate24To32(x) ((Ptr)(x))
  665.  
  666. #endif
  667.  
  668. #if OLDROUTINENAMES
  669. #define ApplicZone() ApplicationZone()
  670.  
  671. #define MFTempNewHandle(logicalSize, resultCode) TempNewHandle(logicalSize, resultCode)
  672.  
  673. #define MFMaxMem(grow) TempMaxMem(grow)
  674.  
  675. #define MFFreeMem() TempFreeMem()
  676.  
  677. #define MFTempHLock(h, resultCode) TempHLock(h, resultCode)
  678.  
  679. #define MFTempHUnlock(h, resultCode) TempHUnlock(h, resultCode)
  680.  
  681. #define MFTempDisposHandle(h, resultCode) TempDisposeHandle(h, resultCode)
  682.  
  683. #define MFTopMem() TempTopMem()
  684.  
  685. #define ResrvMem(cbNeeded) ReserveMem(cbNeeded)
  686.  
  687. #define DisposPtr(p) DisposePtr(p)
  688.  
  689. #define DisposHandle(h) DisposeHandle(h)
  690.  
  691. #define ReallocHandle(h, byteCount) ReallocateHandle(h, byteCount)
  692.  
  693. #endif
  694.  
  695. #ifdef __cplusplus
  696. }
  697. #endif
  698.  
  699. #endif
  700.  
  701.