MacMemory.pas 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598
  1. {
  2. File: MacMemory.p
  3. Contains: Memory Manager Interfaces.
  4. Version: Technology: Mac OS 9
  5. Release: Universal Interfaces 3.4.2
  6. Copyright: © 1985-2002 by Apple Computer, Inc., all rights reserved
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://www.freepascal.org/bugs.html
  10. }
  11. {
  12. Modified for use with Free Pascal
  13. Version 210
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$calling mwpascal}
  21. unit MacMemory;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0210}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,MixedMode;
  92. {$ALIGN MAC68K}
  93. const
  94. maxSize = $7FFFFFF0; { the largest block possible }
  95. defaultPhysicalEntryCount = 8;
  96. { values returned from the GetPageState function }
  97. kPageInMemory = 0;
  98. kPageOnDisk = 1;
  99. kNotPaged = 2;
  100. { masks for Zone->heapType field }
  101. k32BitHeap = 1; { valid in all Memory Managers }
  102. kNewStyleHeap = 2; { true if new Heap Manager is present }
  103. kNewDebugHeap = 4; { true if new Heap Manager is running in debug mode on this heap }
  104. { bits for use with HGetState/HSetState }
  105. kHandleIsResourceBit = 5;
  106. kHandlePurgeableBit = 6;
  107. kHandleLockedBit = 7;
  108. { masks for use with HGetState/HSetState }
  109. kHandleIsResourceMask = $20;
  110. kHandlePurgeableMask = $40;
  111. kHandleLockedMask = $80;
  112. type
  113. {$ifc TYPED_FUNCTION_POINTERS}
  114. GrowZoneProcPtr = function(cbNeeded: Size): SInt32;
  115. {$elsec}
  116. GrowZoneProcPtr = ProcPtr;
  117. {$endc}
  118. {$ifc TYPED_FUNCTION_POINTERS}
  119. PurgeProcPtr = procedure(blockToPurge: Handle);
  120. {$elsec}
  121. PurgeProcPtr = ProcPtr;
  122. {$endc}
  123. {$ifc TYPED_FUNCTION_POINTERS}
  124. UserFnProcPtr = procedure(parameter: UnivPtr);
  125. {$elsec}
  126. UserFnProcPtr = Register68kProcPtr;
  127. {$endc}
  128. {$ifc OPAQUE_UPP_TYPES}
  129. GrowZoneUPP = ^SInt32; { an opaque UPP }
  130. {$elsec}
  131. GrowZoneUPP = UniversalProcPtr;
  132. {$endc}
  133. {$ifc OPAQUE_UPP_TYPES}
  134. PurgeUPP = ^SInt32; { an opaque UPP }
  135. {$elsec}
  136. PurgeUPP = UniversalProcPtr;
  137. {$endc}
  138. {$ifc OPAQUE_UPP_TYPES}
  139. UserFnUPP = ^SInt32; { an opaque UPP }
  140. {$elsec}
  141. UserFnUPP = UniversalProcPtr;
  142. {$endc}
  143. ZonePtr = ^Zone;
  144. Zone = record
  145. bkLim: Ptr;
  146. purgePtr: Ptr;
  147. hFstFree: Ptr;
  148. zcbFree: SInt32;
  149. gzProc: GrowZoneUPP;
  150. moreMast: SInt16;
  151. flags: SInt16;
  152. cntRel: SInt16;
  153. maxRel: SInt16;
  154. cntNRel: SInt16;
  155. heapType: SInt8; { previously "maxNRel", now holds flags (e.g. k32BitHeap) }
  156. unused: SInt8;
  157. cntEmpty: SInt16;
  158. cntHandles: SInt16;
  159. minCBFree: SInt32;
  160. purgeProc: PurgeUPP;
  161. sparePtr: Ptr;
  162. allocPtr: Ptr;
  163. heapData: SInt16;
  164. end;
  165. THz = ^Zone;
  166. THzPtr = ^THz;
  167. MemoryBlockPtr = ^MemoryBlock;
  168. MemoryBlock = record
  169. address: Ptr;
  170. count: UInt32;
  171. end;
  172. LogicalToPhysicalTablePtr = ^LogicalToPhysicalTable;
  173. LogicalToPhysicalTable = record
  174. logical: MemoryBlock;
  175. physical: array [0..7] of MemoryBlock;
  176. end;
  177. PageState = SInt16;
  178. StatusRegisterContents = SInt16;
  179. const
  180. kVolumeVirtualMemoryInfoVersion1 = 1; { first version of VolumeVirtualMemoryInfo }
  181. type
  182. VolumeVirtualMemoryInfoPtr = ^VolumeVirtualMemoryInfo;
  183. VolumeVirtualMemoryInfo = record
  184. version: PBVersion; { Input: Version of the VolumeVirtualMemoryInfo structure }
  185. volumeRefNum: SInt16; { Input: volume reference number }
  186. inUse: boolean; { output: true if volume is currently used for file mapping }
  187. _fill: SInt8;
  188. vmOptions: UInt32; { output: tells what volume can support (same as DriverGestaltVMOptionsResponse vmOptions bits in DriverGestalt) }
  189. { end of kVolumeVirtualMemoryInfoVersion1 structure }
  190. end;
  191. const
  192. uppGrowZoneProcInfo = $000000F0;
  193. uppPurgeProcInfo = $000000C0;
  194. uppUserFnProcInfo = $00009802;
  195. {
  196. * NewGrowZoneUPP()
  197. *
  198. * Availability:
  199. * Non-Carbon CFM: available as macro/inline
  200. * CarbonLib: in CarbonLib 1.0 and later
  201. * Mac OS X: in version 10.0 and later
  202. }
  203. function NewGrowZoneUPP(userRoutine: GrowZoneProcPtr): GrowZoneUPP; external name '_NewGrowZoneUPP'; { old name was NewGrowZoneProc }
  204. {
  205. * NewPurgeUPP()
  206. *
  207. * Availability:
  208. * Non-Carbon CFM: available as macro/inline
  209. * CarbonLib: in CarbonLib 1.0 and later
  210. * Mac OS X: in version 10.0 and later
  211. }
  212. function NewPurgeUPP(userRoutine: PurgeProcPtr): PurgeUPP; external name '_NewPurgeUPP'; { old name was NewPurgeProc }
  213. {
  214. * NewUserFnUPP()
  215. *
  216. * Availability:
  217. * Non-Carbon CFM: available as macro/inline
  218. * CarbonLib: in CarbonLib 1.0 and later
  219. * Mac OS X: in version 10.0 and later
  220. }
  221. function NewUserFnUPP(userRoutine: UserFnProcPtr): UserFnUPP; external name '_NewUserFnUPP'; { old name was NewUserFnProc }
  222. {
  223. * DisposeGrowZoneUPP()
  224. *
  225. * Availability:
  226. * Non-Carbon CFM: available as macro/inline
  227. * CarbonLib: in CarbonLib 1.0 and later
  228. * Mac OS X: in version 10.0 and later
  229. }
  230. procedure DisposeGrowZoneUPP(userUPP: GrowZoneUPP); external name '_DisposeGrowZoneUPP';
  231. {
  232. * DisposePurgeUPP()
  233. *
  234. * Availability:
  235. * Non-Carbon CFM: available as macro/inline
  236. * CarbonLib: in CarbonLib 1.0 and later
  237. * Mac OS X: in version 10.0 and later
  238. }
  239. procedure DisposePurgeUPP(userUPP: PurgeUPP); external name '_DisposePurgeUPP';
  240. {
  241. * DisposeUserFnUPP()
  242. *
  243. * Availability:
  244. * Non-Carbon CFM: available as macro/inline
  245. * CarbonLib: in CarbonLib 1.0 and later
  246. * Mac OS X: in version 10.0 and later
  247. }
  248. procedure DisposeUserFnUPP(userUPP: UserFnUPP); external name '_DisposeUserFnUPP';
  249. {
  250. * InvokeGrowZoneUPP()
  251. *
  252. * Availability:
  253. * Non-Carbon CFM: available as macro/inline
  254. * CarbonLib: in CarbonLib 1.0 and later
  255. * Mac OS X: in version 10.0 and later
  256. }
  257. function InvokeGrowZoneUPP(cbNeeded: Size; userRoutine: GrowZoneUPP): SInt32; external name '_InvokeGrowZoneUPP'; { old name was CallGrowZoneProc }
  258. {
  259. * InvokePurgeUPP()
  260. *
  261. * Availability:
  262. * Non-Carbon CFM: available as macro/inline
  263. * CarbonLib: in CarbonLib 1.0 and later
  264. * Mac OS X: in version 10.0 and later
  265. }
  266. procedure InvokePurgeUPP(blockToPurge: Handle; userRoutine: PurgeUPP); external name '_InvokePurgeUPP'; { old name was CallPurgeProc }
  267. {
  268. * InvokeUserFnUPP()
  269. *
  270. * Availability:
  271. * Non-Carbon CFM: available as macro/inline
  272. * CarbonLib: in CarbonLib 1.0 and later
  273. * Mac OS X: in version 10.0 and later
  274. }
  275. procedure InvokeUserFnUPP(parameter: UnivPtr; userRoutine: UserFnUPP); external name '_InvokeUserFnUPP'; { old name was CallUserFnProc }
  276. {$ifc CALL_NOT_IN_CARBON}
  277. {
  278. * GetApplLimit()
  279. *
  280. * Availability:
  281. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  282. * CarbonLib: not available
  283. * Mac OS X: not available
  284. }
  285. function GetApplLimit: Ptr; external name '_GetApplLimit';
  286. {
  287. * SystemZone()
  288. *
  289. * Availability:
  290. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  291. * CarbonLib: not available
  292. * Mac OS X: not available
  293. }
  294. function SystemZone: THz; external name '_SystemZone';
  295. {
  296. * ApplicationZone()
  297. *
  298. * Availability:
  299. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  300. * CarbonLib: not available
  301. * Mac OS X: not available
  302. }
  303. function ApplicationZone: THz; external name '_ApplicationZone';
  304. {$endc} {CALL_NOT_IN_CARBON}
  305. {
  306. * GZSaveHnd()
  307. *
  308. * Availability:
  309. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  310. * CarbonLib: in CarbonLib 1.0 and later
  311. * Mac OS X: in version 10.0 and later
  312. }
  313. function GZSaveHnd: Handle; external name '_GZSaveHnd';
  314. {
  315. * TopMem()
  316. *
  317. * Availability:
  318. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  319. * CarbonLib: in CarbonLib 1.0 and later
  320. * Mac OS X: in version 10.0 and later
  321. }
  322. function TopMem: Ptr; external name '_TopMem';
  323. {
  324. * MemError()
  325. *
  326. * Availability:
  327. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  328. * CarbonLib: in CarbonLib 1.0 and later
  329. * Mac OS X: in version 10.0 and later
  330. }
  331. function MemError: OSErr; external name '_MemError';
  332. {$ifc CALL_NOT_IN_CARBON}
  333. {
  334. * GetZone()
  335. *
  336. * Availability:
  337. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  338. * CarbonLib: not available
  339. * Mac OS X: not available
  340. }
  341. function GetZone: THz; external name '_GetZone';
  342. {$endc} {CALL_NOT_IN_CARBON}
  343. {
  344. * NewHandle()
  345. *
  346. * Availability:
  347. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  348. * CarbonLib: in CarbonLib 1.0 and later
  349. * Mac OS X: in version 10.0 and later
  350. }
  351. function NewHandle(byteCount: Size): Handle; external name '_NewHandle';
  352. {$ifc CALL_NOT_IN_CARBON}
  353. {
  354. * NewHandleSys()
  355. *
  356. * Availability:
  357. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  358. * CarbonLib: not available
  359. * Mac OS X: not available
  360. }
  361. function NewHandleSys(byteCount: Size): Handle; external name '_NewHandleSys';
  362. {$endc} {CALL_NOT_IN_CARBON}
  363. {
  364. * NewHandleClear()
  365. *
  366. * Availability:
  367. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  368. * CarbonLib: in CarbonLib 1.0 and later
  369. * Mac OS X: in version 10.0 and later
  370. }
  371. function NewHandleClear(byteCount: Size): Handle; external name '_NewHandleClear';
  372. {$ifc CALL_NOT_IN_CARBON}
  373. {
  374. * NewHandleSysClear()
  375. *
  376. * Availability:
  377. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  378. * CarbonLib: not available
  379. * Mac OS X: not available
  380. }
  381. function NewHandleSysClear(byteCount: Size): Handle; external name '_NewHandleSysClear';
  382. {
  383. * HandleZone()
  384. *
  385. * Availability:
  386. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  387. * CarbonLib: not available
  388. * Mac OS X: not available
  389. }
  390. function HandleZone(h: Handle): THz; external name '_HandleZone';
  391. {$endc} {CALL_NOT_IN_CARBON}
  392. {
  393. * RecoverHandle()
  394. *
  395. * Availability:
  396. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  397. * CarbonLib: in CarbonLib 1.0 and later
  398. * Mac OS X: in version 10.0 and later
  399. }
  400. function RecoverHandle(p: Ptr): Handle; external name '_RecoverHandle';
  401. {$ifc CALL_NOT_IN_CARBON}
  402. {
  403. * RecoverHandleSys()
  404. *
  405. * Availability:
  406. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  407. * CarbonLib: not available
  408. * Mac OS X: not available
  409. }
  410. function RecoverHandleSys(p: Ptr): Handle; external name '_RecoverHandleSys';
  411. {$endc} {CALL_NOT_IN_CARBON}
  412. {
  413. * NewPtr()
  414. *
  415. * Availability:
  416. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  417. * CarbonLib: in CarbonLib 1.0 and later
  418. * Mac OS X: in version 10.0 and later
  419. }
  420. function NewPtr(byteCount: Size): Ptr; external name '_NewPtr';
  421. {$ifc CALL_NOT_IN_CARBON}
  422. {
  423. * NewPtrSys()
  424. *
  425. * Availability:
  426. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  427. * CarbonLib: not available
  428. * Mac OS X: not available
  429. }
  430. function NewPtrSys(byteCount: Size): Ptr; external name '_NewPtrSys';
  431. {$endc} {CALL_NOT_IN_CARBON}
  432. {
  433. * NewPtrClear()
  434. *
  435. * Availability:
  436. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  437. * CarbonLib: in CarbonLib 1.0 and later
  438. * Mac OS X: in version 10.0 and later
  439. }
  440. function NewPtrClear(byteCount: Size): Ptr; external name '_NewPtrClear';
  441. {$ifc CALL_NOT_IN_CARBON}
  442. {
  443. * NewPtrSysClear()
  444. *
  445. * Availability:
  446. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  447. * CarbonLib: not available
  448. * Mac OS X: not available
  449. }
  450. function NewPtrSysClear(byteCount: Size): Ptr; external name '_NewPtrSysClear';
  451. {
  452. * PtrZone()
  453. *
  454. * Availability:
  455. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  456. * CarbonLib: not available
  457. * Mac OS X: not available
  458. }
  459. function PtrZone(p: Ptr): THz; external name '_PtrZone';
  460. {$endc} {CALL_NOT_IN_CARBON}
  461. {
  462. * MaxBlock()
  463. *
  464. * Availability:
  465. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  466. * CarbonLib: in CarbonLib 1.0 and later
  467. * Mac OS X: in version 10.0 and later
  468. }
  469. function MaxBlock: SInt32; external name '_MaxBlock';
  470. {$ifc CALL_NOT_IN_CARBON}
  471. {
  472. * MaxBlockSys()
  473. *
  474. * Availability:
  475. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  476. * CarbonLib: not available
  477. * Mac OS X: not available
  478. }
  479. function MaxBlockSys: SInt32; external name '_MaxBlockSys';
  480. {$endc} {CALL_NOT_IN_CARBON}
  481. {
  482. * StackSpace()
  483. *
  484. * Availability:
  485. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  486. * CarbonLib: in CarbonLib 1.0 and later
  487. * Mac OS X: in version 10.0 and later
  488. }
  489. function StackSpace: SInt32; external name '_StackSpace';
  490. {
  491. * NewEmptyHandle()
  492. *
  493. * Availability:
  494. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  495. * CarbonLib: in CarbonLib 1.0 and later
  496. * Mac OS X: in version 10.0 and later
  497. }
  498. function NewEmptyHandle: Handle; external name '_NewEmptyHandle';
  499. {$ifc CALL_NOT_IN_CARBON}
  500. {
  501. * NewEmptyHandleSys()
  502. *
  503. * Availability:
  504. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  505. * CarbonLib: not available
  506. * Mac OS X: not available
  507. }
  508. function NewEmptyHandleSys: Handle; external name '_NewEmptyHandleSys';
  509. {$endc} {CALL_NOT_IN_CARBON}
  510. {
  511. * HLock()
  512. *
  513. * Availability:
  514. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  515. * CarbonLib: in CarbonLib 1.0 and later
  516. * Mac OS X: in version 10.0 and later
  517. }
  518. procedure HLock(h: Handle); external name '_HLock';
  519. {
  520. * HUnlock()
  521. *
  522. * Availability:
  523. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  524. * CarbonLib: in CarbonLib 1.0 and later
  525. * Mac OS X: in version 10.0 and later
  526. }
  527. procedure HUnlock(h: Handle); external name '_HUnlock';
  528. {
  529. * HPurge()
  530. *
  531. * Availability:
  532. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  533. * CarbonLib: in CarbonLib 1.0 and later
  534. * Mac OS X: in version 10.0 and later
  535. }
  536. procedure HPurge(h: Handle); external name '_HPurge';
  537. {
  538. * HNoPurge()
  539. *
  540. * Availability:
  541. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  542. * CarbonLib: in CarbonLib 1.0 and later
  543. * Mac OS X: in version 10.0 and later
  544. }
  545. procedure HNoPurge(h: Handle); external name '_HNoPurge';
  546. {
  547. * HLockHi()
  548. *
  549. * Availability:
  550. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  551. * CarbonLib: in CarbonLib 1.0 and later
  552. * Mac OS X: in version 10.0 and later
  553. }
  554. procedure HLockHi(h: Handle); external name '_HLockHi';
  555. {
  556. * TempNewHandle()
  557. *
  558. * Availability:
  559. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  560. * CarbonLib: in CarbonLib 1.0 and later
  561. * Mac OS X: in version 10.0 and later
  562. }
  563. function TempNewHandle(logicalSize: Size; var resultCode: OSErr): Handle; external name '_TempNewHandle';
  564. {
  565. * TempMaxMem()
  566. *
  567. * Availability:
  568. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  569. * CarbonLib: in CarbonLib 1.0 and later
  570. * Mac OS X: in version 10.0 and later
  571. }
  572. function TempMaxMem(var grow: Size): Size; external name '_TempMaxMem';
  573. {
  574. * TempFreeMem()
  575. *
  576. * Availability:
  577. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  578. * CarbonLib: in CarbonLib 1.0 and later
  579. * Mac OS X: in version 10.0 and later
  580. }
  581. function TempFreeMem: SInt32; external name '_TempFreeMem';
  582. {$ifc CALL_NOT_IN_CARBON}
  583. {
  584. * InitZone()
  585. *
  586. * Availability:
  587. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  588. * CarbonLib: not available
  589. * Mac OS X: not available
  590. }
  591. procedure InitZone(pgrowZone: GrowZoneUPP; cmoreMasters: SInt16; limitPtr: UnivPtr; startPtr: UnivPtr); external name '_InitZone';
  592. {$endc} {CALL_NOT_IN_CARBON}
  593. {$ifc CALL_NOT_IN_CARBON}
  594. {
  595. * SetZone()
  596. *
  597. * Availability:
  598. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  599. * CarbonLib: not available
  600. * Mac OS X: not available
  601. }
  602. procedure SetZone(hz: THz); external name '_SetZone';
  603. {$endc} {CALL_NOT_IN_CARBON}
  604. {
  605. * CompactMem()
  606. *
  607. * Availability:
  608. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  609. * CarbonLib: in CarbonLib 1.0 and later
  610. * Mac OS X: in version 10.0 and later
  611. }
  612. function CompactMem(cbNeeded: Size): Size; external name '_CompactMem';
  613. {$ifc CALL_NOT_IN_CARBON}
  614. {
  615. * CompactMemSys()
  616. *
  617. * Availability:
  618. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  619. * CarbonLib: not available
  620. * Mac OS X: not available
  621. }
  622. function CompactMemSys(cbNeeded: Size): Size; external name '_CompactMemSys';
  623. {$endc} {CALL_NOT_IN_CARBON}
  624. {
  625. * PurgeMem()
  626. *
  627. * Availability:
  628. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  629. * CarbonLib: in CarbonLib 1.0 and later
  630. * Mac OS X: in version 10.0 and later
  631. }
  632. procedure PurgeMem(cbNeeded: Size); external name '_PurgeMem';
  633. {$ifc CALL_NOT_IN_CARBON}
  634. {
  635. * PurgeMemSys()
  636. *
  637. * Availability:
  638. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  639. * CarbonLib: not available
  640. * Mac OS X: not available
  641. }
  642. procedure PurgeMemSys(cbNeeded: Size); external name '_PurgeMemSys';
  643. {$endc} {CALL_NOT_IN_CARBON}
  644. {
  645. * FreeMem()
  646. *
  647. * Availability:
  648. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  649. * CarbonLib: in CarbonLib 1.0 and later
  650. * Mac OS X: in version 10.0 and later
  651. * Note:
  652. FreeMem has been renamed MacFreeMem, to resolve a naming conflict with
  653. FreeMem in the Turbo Pascal/Delphi/FreePascal runtime library
  654. }
  655. function MacFreeMem: SInt32; external name '_FreeMem';
  656. {$ifc CALL_NOT_IN_CARBON}
  657. {
  658. * FreeMemSys()
  659. *
  660. * Availability:
  661. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  662. * CarbonLib: not available
  663. * Mac OS X: not available
  664. }
  665. function FreeMemSys: SInt32; external name '_FreeMemSys';
  666. {$endc} {CALL_NOT_IN_CARBON}
  667. {
  668. * ReserveMem()
  669. *
  670. * Availability:
  671. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  672. * CarbonLib: in CarbonLib 1.0 and later
  673. * Mac OS X: in version 10.0 and later
  674. }
  675. procedure ReserveMem(cbNeeded: Size); external name '_ReserveMem';
  676. {$ifc CALL_NOT_IN_CARBON}
  677. {
  678. * ReserveMemSys()
  679. *
  680. * Availability:
  681. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  682. * CarbonLib: not available
  683. * Mac OS X: not available
  684. }
  685. procedure ReserveMemSys(cbNeeded: Size); external name '_ReserveMemSys';
  686. {$endc} {CALL_NOT_IN_CARBON}
  687. {
  688. * MaxMem()
  689. *
  690. * Availability:
  691. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  692. * CarbonLib: in CarbonLib 1.0 and later
  693. * Mac OS X: in version 10.0 and later
  694. }
  695. function MaxMem(var grow: Size): Size; external name '_MaxMem';
  696. {$ifc CALL_NOT_IN_CARBON}
  697. {
  698. * MaxMemSys()
  699. *
  700. * Availability:
  701. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  702. * CarbonLib: not available
  703. * Mac OS X: not available
  704. }
  705. function MaxMemSys(var grow: Size): Size; external name '_MaxMemSys';
  706. {$endc} {CALL_NOT_IN_CARBON}
  707. {
  708. * SetGrowZone()
  709. *
  710. * Availability:
  711. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  712. * CarbonLib: in CarbonLib 1.0 and later
  713. * Mac OS X: in version 10.0 and later
  714. }
  715. procedure SetGrowZone(growZone: GrowZoneUPP); external name '_SetGrowZone';
  716. {
  717. * GetGrowZone()
  718. *
  719. * Availability:
  720. * Non-Carbon CFM: not available
  721. * CarbonLib: in CarbonLib 1.1 and later
  722. * Mac OS X: in version 10.0 and later
  723. }
  724. function GetGrowZone: GrowZoneUPP; external name '_GetGrowZone';
  725. {
  726. * MoveHHi()
  727. *
  728. * Availability:
  729. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  730. * CarbonLib: in CarbonLib 1.0 and later
  731. * Mac OS X: in version 10.0 and later
  732. }
  733. procedure MoveHHi(h: Handle); external name '_MoveHHi';
  734. {
  735. * DisposePtr()
  736. *
  737. * Availability:
  738. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  739. * CarbonLib: in CarbonLib 1.0 and later
  740. * Mac OS X: in version 10.0 and later
  741. }
  742. procedure DisposePtr(p: Ptr); external name '_DisposePtr';
  743. {
  744. * GetPtrSize()
  745. *
  746. * Availability:
  747. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  748. * CarbonLib: in CarbonLib 1.0 and later
  749. * Mac OS X: in version 10.0 and later
  750. }
  751. function GetPtrSize(p: Ptr): Size; external name '_GetPtrSize';
  752. {
  753. * SetPtrSize()
  754. *
  755. * Availability:
  756. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  757. * CarbonLib: in CarbonLib 1.0 and later
  758. * Mac OS X: in version 10.0 and later
  759. }
  760. procedure SetPtrSize(p: Ptr; newSize: Size); external name '_SetPtrSize';
  761. {
  762. * DisposeHandle()
  763. *
  764. * Availability:
  765. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  766. * CarbonLib: in CarbonLib 1.0 and later
  767. * Mac OS X: in version 10.0 and later
  768. }
  769. procedure DisposeHandle(h: Handle); external name '_DisposeHandle';
  770. {
  771. * SetHandleSize()
  772. *
  773. * Availability:
  774. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  775. * CarbonLib: in CarbonLib 1.0 and later
  776. * Mac OS X: in version 10.0 and later
  777. }
  778. procedure SetHandleSize(h: Handle; newSize: Size); external name '_SetHandleSize';
  779. {
  780. NOTE
  781. GetHandleSize and GetPtrSize are documented in Inside Mac as returning 0
  782. in case of an error, but the traps actually return an error code in D0.
  783. The glue sets D0 to 0 if an error occurred.
  784. }
  785. {
  786. * GetHandleSize()
  787. *
  788. * Availability:
  789. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  790. * CarbonLib: in CarbonLib 1.0 and later
  791. * Mac OS X: in version 10.0 and later
  792. }
  793. function GetHandleSize(h: Handle): Size; external name '_GetHandleSize';
  794. {$ifc CALL_NOT_IN_CARBON}
  795. {
  796. * InlineGetHandleSize()
  797. *
  798. * Availability:
  799. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  800. * CarbonLib: not available
  801. * Mac OS X: not available
  802. }
  803. function InlineGetHandleSize(h: Handle): Size; external name '_InlineGetHandleSize';
  804. {$endc} {CALL_NOT_IN_CARBON}
  805. {
  806. * ReallocateHandle()
  807. *
  808. * Availability:
  809. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  810. * CarbonLib: in CarbonLib 1.0 and later
  811. * Mac OS X: in version 10.0 and later
  812. }
  813. procedure ReallocateHandle(h: Handle; byteCount: Size); external name '_ReallocateHandle';
  814. {$ifc CALL_NOT_IN_CARBON}
  815. {
  816. * ReallocateHandleSys()
  817. *
  818. * Availability:
  819. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  820. * CarbonLib: not available
  821. * Mac OS X: not available
  822. }
  823. procedure ReallocateHandleSys(h: Handle; byteCount: Size); external name '_ReallocateHandleSys';
  824. {$endc} {CALL_NOT_IN_CARBON}
  825. {
  826. * EmptyHandle()
  827. *
  828. * Availability:
  829. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  830. * CarbonLib: in CarbonLib 1.0 and later
  831. * Mac OS X: in version 10.0 and later
  832. }
  833. procedure EmptyHandle(h: Handle); external name '_EmptyHandle';
  834. {
  835. * HSetRBit()
  836. *
  837. * Availability:
  838. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  839. * CarbonLib: in CarbonLib 1.0 and later
  840. * Mac OS X: in version 10.0 and later
  841. }
  842. procedure HSetRBit(h: Handle); external name '_HSetRBit';
  843. {
  844. * HClrRBit()
  845. *
  846. * Availability:
  847. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  848. * CarbonLib: in CarbonLib 1.0 and later
  849. * Mac OS X: in version 10.0 and later
  850. }
  851. procedure HClrRBit(h: Handle); external name '_HClrRBit';
  852. {
  853. * HGetState()
  854. *
  855. * Availability:
  856. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  857. * CarbonLib: in CarbonLib 1.0 and later
  858. * Mac OS X: in version 10.0 and later
  859. }
  860. function HGetState(h: Handle): SInt8; external name '_HGetState';
  861. {
  862. * HSetState()
  863. *
  864. * Availability:
  865. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  866. * CarbonLib: in CarbonLib 1.0 and later
  867. * Mac OS X: in version 10.0 and later
  868. }
  869. procedure HSetState(h: Handle; flags: SInt8); external name '_HSetState';
  870. {
  871. * PurgeSpace()
  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. procedure PurgeSpace(var total: SInt32; var contig: SInt32); external name '_PurgeSpace';
  879. {
  880. PurgeSpaceTotal and PurgeSpaceContiguous are currently only implement
  881. on classic 68K. The are the same as PurgeSpace() but return just
  882. one value (either total space purgable or contiguous space purgable).
  883. Begining in Mac OS 8.5 they are available in InterfaceLib.
  884. }
  885. {
  886. * PurgeSpaceTotal()
  887. *
  888. * Availability:
  889. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  890. * CarbonLib: in CarbonLib 1.0 and later
  891. * Mac OS X: in version 10.0 and later
  892. }
  893. function PurgeSpaceTotal: SInt32; external name '_PurgeSpaceTotal';
  894. {
  895. * PurgeSpaceContiguous()
  896. *
  897. * Availability:
  898. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  899. * CarbonLib: in CarbonLib 1.0 and later
  900. * Mac OS X: in version 10.0 and later
  901. }
  902. function PurgeSpaceContiguous: SInt32; external name '_PurgeSpaceContiguous';
  903. {$ifc CALL_NOT_IN_CARBON}
  904. {
  905. * PurgeSpaceSysTotal()
  906. *
  907. * Availability:
  908. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  909. * CarbonLib: not available
  910. * Mac OS X: not available
  911. }
  912. function PurgeSpaceSysTotal: SInt32; external name '_PurgeSpaceSysTotal';
  913. {
  914. * PurgeSpaceSysContiguous()
  915. *
  916. * Availability:
  917. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  918. * CarbonLib: not available
  919. * Mac OS X: not available
  920. }
  921. function PurgeSpaceSysContiguous: SInt32; external name '_PurgeSpaceSysContiguous';
  922. {****************************************************************************
  923. The routines:
  924. BlockMoveUncached, BlockMoveDataUncached
  925. BlockZero, BlockZeroUncached
  926. were first created for developers writing drivers. Originally they only
  927. existed in DriverServicesLib. Later they were added to InterfaceLib
  928. in PCI based PowerMacs. MacOS 8.5 provides these routines in InterfaceLib
  929. on all supported machines.
  930. ****************************************************************************}
  931. {$endc} {CALL_NOT_IN_CARBON}
  932. {
  933. * BlockMove()
  934. *
  935. * Availability:
  936. * Non-Carbon CFM: in DriverServicesLib 1.0 and later
  937. * CarbonLib: in CarbonLib 1.0 and later
  938. * Mac OS X: in version 10.0 and later
  939. }
  940. procedure BlockMove(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMove';
  941. {
  942. * BlockMoveData()
  943. *
  944. * Availability:
  945. * Non-Carbon CFM: in DriverServicesLib 1.0 and later
  946. * CarbonLib: in CarbonLib 1.0 and later
  947. * Mac OS X: in version 10.0 and later
  948. }
  949. procedure BlockMoveData(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveData';
  950. {
  951. * BlockMoveUncached()
  952. *
  953. * Availability:
  954. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  955. * CarbonLib: in CarbonLib 1.0 and later
  956. * Mac OS X: in version 10.0 and later
  957. }
  958. procedure BlockMoveUncached(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveUncached';
  959. {
  960. * BlockMoveDataUncached()
  961. *
  962. * Availability:
  963. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  964. * CarbonLib: in CarbonLib 1.0 and later
  965. * Mac OS X: in version 10.0 and later
  966. }
  967. procedure BlockMoveDataUncached(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveDataUncached';
  968. {
  969. * BlockZero()
  970. *
  971. * Availability:
  972. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  973. * CarbonLib: in CarbonLib 1.0 and later
  974. * Mac OS X: in version 10.0 and later
  975. }
  976. procedure BlockZero(destPtr: UnivPtr; byteCount: Size); external name '_BlockZero';
  977. {
  978. * BlockZeroUncached()
  979. *
  980. * Availability:
  981. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  982. * CarbonLib: in CarbonLib 1.0 and later
  983. * Mac OS X: in version 10.0 and later
  984. }
  985. procedure BlockZeroUncached(destPtr: UnivPtr; byteCount: Size); external name '_BlockZeroUncached';
  986. {$ifc CALL_NOT_IN_CARBON}
  987. {
  988. * MaxApplZone()
  989. *
  990. * Availability:
  991. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  992. * CarbonLib: not available
  993. * Mac OS X: not available
  994. }
  995. procedure MaxApplZone; external name '_MaxApplZone';
  996. {
  997. * SetApplBase()
  998. *
  999. * Availability:
  1000. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1001. * CarbonLib: not available
  1002. * Mac OS X: not available
  1003. }
  1004. procedure SetApplBase(startPtr: UnivPtr); external name '_SetApplBase';
  1005. {$endc} {CALL_NOT_IN_CARBON}
  1006. {
  1007. * MoreMasters()
  1008. *
  1009. * Availability:
  1010. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1011. * CarbonLib: in CarbonLib 1.0 and later
  1012. * Mac OS X: in version 10.0 and later
  1013. }
  1014. procedure MoreMasters; external name '_MoreMasters';
  1015. {
  1016. * MoreMasterPointers()
  1017. *
  1018. * Availability:
  1019. * Non-Carbon CFM: not available
  1020. * CarbonLib: in CarbonLib 1.0 and later
  1021. * Mac OS X: in version 10.0 and later
  1022. }
  1023. procedure MoreMasterPointers(inCount: UInt32); external name '_MoreMasterPointers';
  1024. {$ifc CALL_NOT_IN_CARBON}
  1025. {
  1026. * SetApplLimit()
  1027. *
  1028. * Availability:
  1029. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1030. * CarbonLib: not available
  1031. * Mac OS X: not available
  1032. }
  1033. procedure SetApplLimit(zoneLimit: UnivPtr); external name '_SetApplLimit';
  1034. {
  1035. * InitApplZone()
  1036. *
  1037. * Availability:
  1038. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1039. * CarbonLib: not available
  1040. * Mac OS X: not available
  1041. }
  1042. procedure InitApplZone; external name '_InitApplZone';
  1043. { Temporary Memory routines renamed, but obsolete, in System 7.0 and later. }
  1044. {$endc} {CALL_NOT_IN_CARBON}
  1045. {
  1046. * TempHLock()
  1047. *
  1048. * Availability:
  1049. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1050. * CarbonLib: in CarbonLib 1.0 and later
  1051. * Mac OS X: in version 10.0 and later
  1052. }
  1053. procedure TempHLock(h: Handle; var resultCode: OSErr); external name '_TempHLock';
  1054. {
  1055. * TempHUnlock()
  1056. *
  1057. * Availability:
  1058. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1059. * CarbonLib: in CarbonLib 1.0 and later
  1060. * Mac OS X: in version 10.0 and later
  1061. }
  1062. procedure TempHUnlock(h: Handle; var resultCode: OSErr); external name '_TempHUnlock';
  1063. {
  1064. * TempDisposeHandle()
  1065. *
  1066. * Availability:
  1067. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1068. * CarbonLib: in CarbonLib 1.0 and later
  1069. * Mac OS X: in version 10.0 and later
  1070. }
  1071. procedure TempDisposeHandle(h: Handle; var resultCode: OSErr); external name '_TempDisposeHandle';
  1072. {
  1073. * TempTopMem()
  1074. *
  1075. * Availability:
  1076. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1077. * CarbonLib: in CarbonLib 1.0 and later
  1078. * Mac OS X: in version 10.0 and later
  1079. }
  1080. function TempTopMem: Ptr; external name '_TempTopMem';
  1081. {
  1082. * HoldMemory()
  1083. *
  1084. * Availability:
  1085. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1086. * CarbonLib: in CarbonLib 1.1 and later
  1087. * Mac OS X: in version 10.0 and later
  1088. }
  1089. function HoldMemory(address: UnivPtr; count: UInt32): OSErr; external name '_HoldMemory';
  1090. {
  1091. * UnholdMemory()
  1092. *
  1093. * Availability:
  1094. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1095. * CarbonLib: in CarbonLib 1.1 and later
  1096. * Mac OS X: in version 10.0 and later
  1097. }
  1098. function UnholdMemory(address: UnivPtr; count: UInt32): OSErr; external name '_UnholdMemory';
  1099. {$ifc CALL_NOT_IN_CARBON}
  1100. {
  1101. * LockMemory()
  1102. *
  1103. * Availability:
  1104. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1105. * CarbonLib: not available
  1106. * Mac OS X: not available
  1107. }
  1108. function LockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemory';
  1109. {
  1110. * LockMemoryForOutput()
  1111. *
  1112. * Availability:
  1113. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  1114. * CarbonLib: not available
  1115. * Mac OS X: not available
  1116. }
  1117. function LockMemoryForOutput(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemoryForOutput';
  1118. {
  1119. * LockMemoryContiguous()
  1120. *
  1121. * Availability:
  1122. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1123. * CarbonLib: not available
  1124. * Mac OS X: not available
  1125. }
  1126. function LockMemoryContiguous(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemoryContiguous';
  1127. {
  1128. * UnlockMemory()
  1129. *
  1130. * Availability:
  1131. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1132. * CarbonLib: not available
  1133. * Mac OS X: not available
  1134. }
  1135. function UnlockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_UnlockMemory';
  1136. {$endc} {CALL_NOT_IN_CARBON}
  1137. {
  1138. * MakeMemoryResident()
  1139. *
  1140. * Availability:
  1141. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  1142. * CarbonLib: in CarbonLib 1.0.2 and later
  1143. * Mac OS X: in version 10.0 and later
  1144. }
  1145. function MakeMemoryResident(address: UnivPtr; count: UInt32): OSErr; external name '_MakeMemoryResident';
  1146. {
  1147. * ReleaseMemoryData()
  1148. *
  1149. * Availability:
  1150. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  1151. * CarbonLib: in CarbonLib 1.0.2 and later
  1152. * Mac OS X: in version 10.0 and later
  1153. }
  1154. function ReleaseMemoryData(address: UnivPtr; count: UInt32): OSErr; external name '_ReleaseMemoryData';
  1155. {
  1156. * MakeMemoryNonResident()
  1157. *
  1158. * Availability:
  1159. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  1160. * CarbonLib: in CarbonLib 1.0.2 and later
  1161. * Mac OS X: in version 10.0 and later
  1162. }
  1163. function MakeMemoryNonResident(address: UnivPtr; count: UInt32): OSErr; external name '_MakeMemoryNonResident';
  1164. {
  1165. * FlushMemory()
  1166. *
  1167. * Availability:
  1168. * Non-Carbon CFM: in InterfaceLib 8.5 and later
  1169. * CarbonLib: in CarbonLib 1.0.2 and later
  1170. * Mac OS X: in version 10.0 and later
  1171. }
  1172. function FlushMemory(address: UnivPtr; count: UInt32): OSErr; external name '_FlushMemory';
  1173. {$ifc CALL_NOT_IN_CARBON}
  1174. {
  1175. * GetPhysical()
  1176. *
  1177. * Availability:
  1178. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1179. * CarbonLib: not available
  1180. * Mac OS X: not available
  1181. }
  1182. function GetPhysical(var addresses: LogicalToPhysicalTable; var physicalEntryCount: UInt32): OSErr; external name '_GetPhysical';
  1183. {$endc} {CALL_NOT_IN_CARBON}
  1184. {$ifc CALL_NOT_IN_CARBON}
  1185. {
  1186. * GetVolumeVirtualMemoryInfo()
  1187. *
  1188. * Availability:
  1189. * Non-Carbon CFM: in InterfaceLib 9.0 and later
  1190. * CarbonLib: not available
  1191. * Mac OS X: not available
  1192. }
  1193. function GetVolumeVirtualMemoryInfo(volVMInfo: VolumeVirtualMemoryInfoPtr): OSErr; external name '_GetVolumeVirtualMemoryInfo';
  1194. {
  1195. * DeferUserFn()
  1196. *
  1197. * Availability:
  1198. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1199. * CarbonLib: not available
  1200. * Mac OS X: not available
  1201. }
  1202. function DeferUserFn(userFunction: UserFnUPP; argument: UnivPtr): OSErr; external name '_DeferUserFn';
  1203. {
  1204. * DebuggerGetMax()
  1205. *
  1206. * Availability:
  1207. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1208. * CarbonLib: not available
  1209. * Mac OS X: not available
  1210. }
  1211. function DebuggerGetMax: SInt32; external name '_DebuggerGetMax';
  1212. {
  1213. * DebuggerEnter()
  1214. *
  1215. * Availability:
  1216. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1217. * CarbonLib: not available
  1218. * Mac OS X: not available
  1219. }
  1220. procedure DebuggerEnter; external name '_DebuggerEnter';
  1221. {
  1222. * DebuggerExit()
  1223. *
  1224. * Availability:
  1225. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1226. * CarbonLib: not available
  1227. * Mac OS X: not available
  1228. }
  1229. procedure DebuggerExit; external name '_DebuggerExit';
  1230. {
  1231. * DebuggerPoll()
  1232. *
  1233. * Availability:
  1234. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1235. * CarbonLib: not available
  1236. * Mac OS X: not available
  1237. }
  1238. procedure DebuggerPoll; external name '_DebuggerPoll';
  1239. {
  1240. * GetPageState()
  1241. *
  1242. * Availability:
  1243. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1244. * CarbonLib: not available
  1245. * Mac OS X: not available
  1246. }
  1247. function GetPageState(address: UnivPtr): PageState; external name '_GetPageState';
  1248. {
  1249. * PageFaultFatal()
  1250. *
  1251. * Availability:
  1252. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1253. * CarbonLib: not available
  1254. * Mac OS X: not available
  1255. }
  1256. function PageFaultFatal: boolean; external name '_PageFaultFatal';
  1257. {
  1258. * DebuggerLockMemory()
  1259. *
  1260. * Availability:
  1261. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1262. * CarbonLib: not available
  1263. * Mac OS X: not available
  1264. }
  1265. function DebuggerLockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_DebuggerLockMemory';
  1266. {
  1267. * DebuggerUnlockMemory()
  1268. *
  1269. * Availability:
  1270. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1271. * CarbonLib: not available
  1272. * Mac OS X: not available
  1273. }
  1274. function DebuggerUnlockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_DebuggerUnlockMemory';
  1275. {
  1276. * EnterSupervisorMode()
  1277. *
  1278. * Availability:
  1279. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1280. * CarbonLib: not available
  1281. * Mac OS X: not available
  1282. }
  1283. function EnterSupervisorMode: StatusRegisterContents; external name '_EnterSupervisorMode';
  1284. {
  1285. * StripAddress()
  1286. *
  1287. * Summary:
  1288. * A trap on classic 68K, and the identity function for pre-carbon
  1289. *
  1290. * Availability:
  1291. * Non-Carbon CFM: available as macro/inline
  1292. * CarbonLib: not available
  1293. * Mac OS X: not available
  1294. }
  1295. function StripAddress(theAddress: UnivPtr): Ptr; external name '_StripAddress';
  1296. {
  1297. * Translate24To32()
  1298. *
  1299. * Summary:
  1300. * A trap on classic 68K, and the identity function for pre-carbon
  1301. *
  1302. * Availability:
  1303. * Non-Carbon CFM: available as macro/inline
  1304. * CarbonLib: not available
  1305. * Mac OS X: not available
  1306. }
  1307. function Translate24To32(addr24: UnivPtr): Ptr; external name '_Translate24To32';
  1308. {$endc} {CALL_NOT_IN_CARBON}
  1309. {
  1310. * HandToHand()
  1311. *
  1312. * Availability:
  1313. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1314. * CarbonLib: in CarbonLib 1.0 and later
  1315. * Mac OS X: in version 10.0 and later
  1316. }
  1317. function HandToHand(var theHndl: Handle): OSErr; external name '_HandToHand';
  1318. {
  1319. * PtrToXHand()
  1320. *
  1321. * Availability:
  1322. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1323. * CarbonLib: in CarbonLib 1.0 and later
  1324. * Mac OS X: in version 10.0 and later
  1325. }
  1326. function PtrToXHand(srcPtr: UnivPtr; dstHndl: Handle; size: SInt32): OSErr; external name '_PtrToXHand';
  1327. {
  1328. * PtrToHand()
  1329. *
  1330. * Availability:
  1331. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1332. * CarbonLib: in CarbonLib 1.0 and later
  1333. * Mac OS X: in version 10.0 and later
  1334. }
  1335. function PtrToHand(srcPtr: UnivPtr; var dstHndl: Handle; size: SInt32): OSErr; external name '_PtrToHand';
  1336. {
  1337. * HandAndHand()
  1338. *
  1339. * Availability:
  1340. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1341. * CarbonLib: in CarbonLib 1.0 and later
  1342. * Mac OS X: in version 10.0 and later
  1343. }
  1344. function HandAndHand(hand1: Handle; hand2: Handle): OSErr; external name '_HandAndHand';
  1345. {
  1346. * PtrAndHand()
  1347. *
  1348. * Availability:
  1349. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  1350. * CarbonLib: in CarbonLib 1.0 and later
  1351. * Mac OS X: in version 10.0 and later
  1352. }
  1353. function PtrAndHand(ptr1: UnivPtr; hand2: Handle; size: SInt32): OSErr; external name '_PtrAndHand';
  1354. { Carbon routines to aid in debugging. }
  1355. { Checks all applicable heaps for validity }
  1356. {
  1357. * CheckAllHeaps()
  1358. *
  1359. * Availability:
  1360. * Non-Carbon CFM: not available
  1361. * CarbonLib: in CarbonLib 1.0 and later
  1362. * Mac OS X: in version 10.0 and later
  1363. }
  1364. function CheckAllHeaps: boolean; external name '_CheckAllHeaps';
  1365. { Checks the application heap for validity }
  1366. {
  1367. * IsHeapValid()
  1368. *
  1369. * Availability:
  1370. * Non-Carbon CFM: not available
  1371. * CarbonLib: in CarbonLib 1.0 and later
  1372. * Mac OS X: in version 10.0 and later
  1373. }
  1374. function IsHeapValid: boolean; external name '_IsHeapValid';
  1375. { It is invalid to pass a NULL or an empty Handle to IsHandleValid }
  1376. {
  1377. * IsHandleValid()
  1378. *
  1379. * Availability:
  1380. * Non-Carbon CFM: not available
  1381. * CarbonLib: in CarbonLib 1.0 and later
  1382. * Mac OS X: in version 10.0 and later
  1383. }
  1384. function IsHandleValid(h: Handle): boolean; external name '_IsHandleValid';
  1385. { It is invalid to pass a NULL Pointer to IsPointerValid }
  1386. {
  1387. * IsPointerValid()
  1388. *
  1389. * Availability:
  1390. * Non-Carbon CFM: not available
  1391. * CarbonLib: in CarbonLib 1.0 and later
  1392. * Mac OS X: in version 10.0 and later
  1393. }
  1394. function IsPointerValid(p: Ptr): boolean; external name '_IsPointerValid';
  1395. {$ifc OLDROUTINENAMES}
  1396. {$ifc CALL_NOT_IN_CARBON}
  1397. {
  1398. * ApplicZone()
  1399. *
  1400. * Availability:
  1401. * Non-Carbon CFM: not available
  1402. * CarbonLib: not available
  1403. * Mac OS X: not available
  1404. }
  1405. function ApplicZone: THz; external name '_ApplicZone';
  1406. {
  1407. * MFTempNewHandle()
  1408. *
  1409. * Availability:
  1410. * Non-Carbon CFM: not available
  1411. * CarbonLib: not available
  1412. * Mac OS X: not available
  1413. }
  1414. function MFTempNewHandle(logicalSize: Size; var resultCode: OSErr): Handle; external name '_MFTempNewHandle';
  1415. {
  1416. * MFMaxMem()
  1417. *
  1418. * Availability:
  1419. * Non-Carbon CFM: not available
  1420. * CarbonLib: not available
  1421. * Mac OS X: not available
  1422. }
  1423. function MFMaxMem(var grow: Size): Size; external name '_MFMaxMem';
  1424. {
  1425. * MFFreeMem()
  1426. *
  1427. * Availability:
  1428. * Non-Carbon CFM: not available
  1429. * CarbonLib: not available
  1430. * Mac OS X: not available
  1431. }
  1432. function MFFreeMem: SInt32; external name '_MFFreeMem';
  1433. {
  1434. * MFTempHLock()
  1435. *
  1436. * Availability:
  1437. * Non-Carbon CFM: not available
  1438. * CarbonLib: not available
  1439. * Mac OS X: not available
  1440. }
  1441. procedure MFTempHLock(h: Handle; var resultCode: OSErr); external name '_MFTempHLock';
  1442. {
  1443. * MFTempHUnlock()
  1444. *
  1445. * Availability:
  1446. * Non-Carbon CFM: not available
  1447. * CarbonLib: not available
  1448. * Mac OS X: not available
  1449. }
  1450. procedure MFTempHUnlock(h: Handle; var resultCode: OSErr); external name '_MFTempHUnlock';
  1451. {
  1452. * MFTempDisposHandle()
  1453. *
  1454. * Availability:
  1455. * Non-Carbon CFM: not available
  1456. * CarbonLib: not available
  1457. * Mac OS X: not available
  1458. }
  1459. procedure MFTempDisposHandle(h: Handle; var resultCode: OSErr); external name '_MFTempDisposHandle';
  1460. {
  1461. * MFTopMem()
  1462. *
  1463. * Availability:
  1464. * Non-Carbon CFM: not available
  1465. * CarbonLib: not available
  1466. * Mac OS X: not available
  1467. }
  1468. function MFTopMem: Ptr; external name '_MFTopMem';
  1469. {
  1470. * ResrvMem()
  1471. *
  1472. * Availability:
  1473. * Non-Carbon CFM: not available
  1474. * CarbonLib: not available
  1475. * Mac OS X: not available
  1476. }
  1477. procedure ResrvMem(cbNeeded: Size); external name '_ResrvMem';
  1478. {
  1479. * DisposPtr()
  1480. *
  1481. * Availability:
  1482. * Non-Carbon CFM: not available
  1483. * CarbonLib: not available
  1484. * Mac OS X: not available
  1485. }
  1486. procedure DisposPtr(p: Ptr); external name '_DisposPtr';
  1487. {
  1488. * DisposHandle()
  1489. *
  1490. * Availability:
  1491. * Non-Carbon CFM: not available
  1492. * CarbonLib: not available
  1493. * Mac OS X: not available
  1494. }
  1495. procedure DisposHandle(h: Handle); external name '_DisposHandle';
  1496. {
  1497. * ReallocHandle()
  1498. *
  1499. * Availability:
  1500. * Non-Carbon CFM: not available
  1501. * CarbonLib: not available
  1502. * Mac OS X: not available
  1503. }
  1504. procedure ReallocHandle(h: Handle; byteCount: Size); external name '_ReallocHandle';
  1505. {$endc} {CALL_NOT_IN_CARBON}
  1506. {$endc} {OLDROUTINENAMES}
  1507. {$ALIGN MAC68K}
  1508. end.