4
Contains: Memory Manager Interfaces.
6
Version: Technology: Mac OS 9
7
Release: Universal Interfaces 3.4.2
9
Copyright: � 1985-2002 by Apple Computer, Inc., all rights reserved
11
Bugs?: For bug reports, consult the following page on
14
http://www.freepascal.org/bugs.html
20
Modified for use with Free Pascal
22
Please report any bugs to <gpc@microbizz.nl>
33
{$setc UNIVERSAL_INTERFACES_VERSION := $0342}
34
{$setc GAP_INTERFACES_VERSION := $0200}
36
{$ifc not defined USE_CFSTR_CONSTANT_MACROS}
37
{$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
40
{$ifc defined CPUPOWERPC and defined CPUI386}
41
{$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
43
{$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
44
{$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
47
{$ifc not defined __ppc__ and defined CPUPOWERPC}
52
{$ifc not defined __i386__ and defined CPUI386}
58
{$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
59
{$error Conflicting definitions for __ppc__ and __i386__}
62
{$ifc defined __ppc__ and __ppc__}
63
{$setc TARGET_CPU_PPC := TRUE}
64
{$setc TARGET_CPU_X86 := FALSE}
65
{$elifc defined __i386__ and __i386__}
66
{$setc TARGET_CPU_PPC := FALSE}
67
{$setc TARGET_CPU_X86 := TRUE}
69
{$error Neither __ppc__ nor __i386__ is defined.}
71
{$setc TARGET_CPU_PPC_64 := FALSE}
73
{$ifc defined FPC_BIG_ENDIAN}
74
{$setc TARGET_RT_BIG_ENDIAN := TRUE}
75
{$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
76
{$elifc defined FPC_LITTLE_ENDIAN}
77
{$setc TARGET_RT_BIG_ENDIAN := FALSE}
78
{$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
80
{$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
82
{$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
83
{$setc CALL_NOT_IN_CARBON := FALSE}
84
{$setc OLDROUTINENAMES := FALSE}
85
{$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
86
{$setc OPAQUE_UPP_TYPES := TRUE}
87
{$setc OTCARBONAPPLICATION := TRUE}
88
{$setc OTKERNEL := FALSE}
89
{$setc PM_USE_SESSION_APIS := TRUE}
90
{$setc TARGET_API_MAC_CARBON := TRUE}
91
{$setc TARGET_API_MAC_OS8 := FALSE}
92
{$setc TARGET_API_MAC_OSX := TRUE}
93
{$setc TARGET_CARBON := TRUE}
94
{$setc TARGET_CPU_68K := FALSE}
95
{$setc TARGET_CPU_MIPS := FALSE}
96
{$setc TARGET_CPU_SPARC := FALSE}
97
{$setc TARGET_OS_MAC := TRUE}
98
{$setc TARGET_OS_UNIX := FALSE}
99
{$setc TARGET_OS_WIN32 := FALSE}
100
{$setc TARGET_RT_MAC_68881 := FALSE}
101
{$setc TARGET_RT_MAC_CFM := FALSE}
102
{$setc TARGET_RT_MAC_MACHO := TRUE}
103
{$setc TYPED_FUNCTION_POINTERS := TRUE}
104
{$setc TYPE_BOOL := FALSE}
105
{$setc TYPE_EXTENDED := FALSE}
106
{$setc TYPE_LONGLONG := TRUE}
107
uses MacTypes,MixedMode;
114
maxSize = $7FFFFFF0; { the largest block possible }
116
defaultPhysicalEntryCount = 8;
118
{ values returned from the GetPageState function }
123
{ masks for Zone->heapType field }
124
k32BitHeap = 1; { valid in all Memory Managers }
125
kNewStyleHeap = 2; { true if new Heap Manager is present }
126
kNewDebugHeap = 4; { true if new Heap Manager is running in debug mode on this heap }
129
{ bits for use with HGetState/HSetState }
130
kHandleIsResourceBit = 5;
131
kHandlePurgeableBit = 6;
132
kHandleLockedBit = 7;
134
{ masks for use with HGetState/HSetState }
135
kHandleIsResourceMask = $20;
136
kHandlePurgeableMask = $40;
137
kHandleLockedMask = $80;
141
{$ifc TYPED_FUNCTION_POINTERS}
142
GrowZoneProcPtr = function(cbNeeded: Size): SInt32;
144
GrowZoneProcPtr = ProcPtr;
147
{$ifc TYPED_FUNCTION_POINTERS}
148
PurgeProcPtr = procedure(blockToPurge: Handle);
150
PurgeProcPtr = ProcPtr;
153
{$ifc TYPED_FUNCTION_POINTERS}
154
UserFnProcPtr = procedure(parameter: UnivPtr);
156
UserFnProcPtr = Register68kProcPtr;
159
{$ifc OPAQUE_UPP_TYPES}
160
GrowZoneUPP = ^SInt32; { an opaque UPP }
162
GrowZoneUPP = UniversalProcPtr;
164
{$ifc OPAQUE_UPP_TYPES}
165
PurgeUPP = ^SInt32; { an opaque UPP }
167
PurgeUPP = UniversalProcPtr;
169
{$ifc OPAQUE_UPP_TYPES}
170
UserFnUPP = ^SInt32; { an opaque UPP }
172
UserFnUPP = UniversalProcPtr;
186
heapType: SInt8; { previously "maxNRel", now holds flags (e.g. k32BitHeap) }
199
MemoryBlockPtr = ^MemoryBlock;
205
LogicalToPhysicalTablePtr = ^LogicalToPhysicalTable;
206
LogicalToPhysicalTable = record
207
logical: MemoryBlock;
208
physical: array [0..7] of MemoryBlock;
212
StatusRegisterContents = SInt16;
215
kVolumeVirtualMemoryInfoVersion1 = 1; { first version of VolumeVirtualMemoryInfo }
219
VolumeVirtualMemoryInfoPtr = ^VolumeVirtualMemoryInfo;
220
VolumeVirtualMemoryInfo = record
221
version: PBVersion; { Input: Version of the VolumeVirtualMemoryInfo structure }
222
volumeRefNum: SInt16; { Input: volume reference number }
223
inUse: boolean; { output: true if volume is currently used for file mapping }
225
vmOptions: UInt32; { output: tells what volume can support (same as DriverGestaltVMOptionsResponse vmOptions bits in DriverGestalt) }
226
{ end of kVolumeVirtualMemoryInfoVersion1 structure }
231
uppGrowZoneProcInfo = $000000F0;
232
uppPurgeProcInfo = $000000C0;
233
uppUserFnProcInfo = $00009802;
238
* Non-Carbon CFM: available as macro/inline
239
* CarbonLib: in CarbonLib 1.0 and later
240
* Mac OS X: in version 10.0 and later
242
function NewGrowZoneUPP(userRoutine: GrowZoneProcPtr): GrowZoneUPP; external name '_NewGrowZoneUPP'; { old name was NewGrowZoneProc }
247
* Non-Carbon CFM: available as macro/inline
248
* CarbonLib: in CarbonLib 1.0 and later
249
* Mac OS X: in version 10.0 and later
251
function NewPurgeUPP(userRoutine: PurgeProcPtr): PurgeUPP; external name '_NewPurgeUPP'; { old name was NewPurgeProc }
256
* Non-Carbon CFM: available as macro/inline
257
* CarbonLib: in CarbonLib 1.0 and later
258
* Mac OS X: in version 10.0 and later
260
function NewUserFnUPP(userRoutine: UserFnProcPtr): UserFnUPP; external name '_NewUserFnUPP'; { old name was NewUserFnProc }
262
* DisposeGrowZoneUPP()
265
* Non-Carbon CFM: available as macro/inline
266
* CarbonLib: in CarbonLib 1.0 and later
267
* Mac OS X: in version 10.0 and later
269
procedure DisposeGrowZoneUPP(userUPP: GrowZoneUPP); external name '_DisposeGrowZoneUPP';
274
* Non-Carbon CFM: available as macro/inline
275
* CarbonLib: in CarbonLib 1.0 and later
276
* Mac OS X: in version 10.0 and later
278
procedure DisposePurgeUPP(userUPP: PurgeUPP); external name '_DisposePurgeUPP';
283
* Non-Carbon CFM: available as macro/inline
284
* CarbonLib: in CarbonLib 1.0 and later
285
* Mac OS X: in version 10.0 and later
287
procedure DisposeUserFnUPP(userUPP: UserFnUPP); external name '_DisposeUserFnUPP';
289
* InvokeGrowZoneUPP()
292
* Non-Carbon CFM: available as macro/inline
293
* CarbonLib: in CarbonLib 1.0 and later
294
* Mac OS X: in version 10.0 and later
296
function InvokeGrowZoneUPP(cbNeeded: Size; userRoutine: GrowZoneUPP): SInt32; external name '_InvokeGrowZoneUPP'; { old name was CallGrowZoneProc }
301
* Non-Carbon CFM: available as macro/inline
302
* CarbonLib: in CarbonLib 1.0 and later
303
* Mac OS X: in version 10.0 and later
305
procedure InvokePurgeUPP(blockToPurge: Handle; userRoutine: PurgeUPP); external name '_InvokePurgeUPP'; { old name was CallPurgeProc }
310
* Non-Carbon CFM: available as macro/inline
311
* CarbonLib: in CarbonLib 1.0 and later
312
* Mac OS X: in version 10.0 and later
314
procedure InvokeUserFnUPP(parameter: UnivPtr; userRoutine: UserFnUPP); external name '_InvokeUserFnUPP'; { old name was CallUserFnProc }
315
{$ifc CALL_NOT_IN_CARBON}
320
* Non-Carbon CFM: in InterfaceLib 7.1 and later
321
* CarbonLib: not available
322
* Mac OS X: not available
324
function GetApplLimit: Ptr; external name '_GetApplLimit';
329
* Non-Carbon CFM: in InterfaceLib 7.1 and later
330
* CarbonLib: not available
331
* Mac OS X: not available
333
function SystemZone: THz; external name '_SystemZone';
338
* Non-Carbon CFM: in InterfaceLib 7.1 and later
339
* CarbonLib: not available
340
* Mac OS X: not available
342
function ApplicationZone: THz; external name '_ApplicationZone';
343
{$endc} {CALL_NOT_IN_CARBON}
349
* Non-Carbon CFM: in InterfaceLib 7.1 and later
350
* CarbonLib: in CarbonLib 1.0 and later
351
* Mac OS X: in version 10.0 and later
353
function GZSaveHnd: Handle; external name '_GZSaveHnd';
358
* Non-Carbon CFM: in InterfaceLib 7.1 and later
359
* CarbonLib: in CarbonLib 1.0 and later
360
* Mac OS X: in version 10.0 and later
362
function TopMem: Ptr; external name '_TopMem';
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
371
function MemError: OSErr; external name '_MemError';
372
{$ifc CALL_NOT_IN_CARBON}
377
* Non-Carbon CFM: in InterfaceLib 7.1 and later
378
* CarbonLib: not available
379
* Mac OS X: not available
381
function GetZone: THz; external name '_GetZone';
382
{$endc} {CALL_NOT_IN_CARBON}
388
* Non-Carbon CFM: in InterfaceLib 7.1 and later
389
* CarbonLib: in CarbonLib 1.0 and later
390
* Mac OS X: in version 10.0 and later
392
function NewHandle(byteCount: Size): Handle; external name '_NewHandle';
393
{$ifc CALL_NOT_IN_CARBON}
398
* Non-Carbon CFM: in InterfaceLib 7.1 and later
399
* CarbonLib: not available
400
* Mac OS X: not available
402
function NewHandleSys(byteCount: Size): Handle; external name '_NewHandleSys';
403
{$endc} {CALL_NOT_IN_CARBON}
409
* Non-Carbon CFM: in InterfaceLib 7.1 and later
410
* CarbonLib: in CarbonLib 1.0 and later
411
* Mac OS X: in version 10.0 and later
413
function NewHandleClear(byteCount: Size): Handle; external name '_NewHandleClear';
414
{$ifc CALL_NOT_IN_CARBON}
416
* NewHandleSysClear()
419
* Non-Carbon CFM: in InterfaceLib 7.1 and later
420
* CarbonLib: not available
421
* Mac OS X: not available
423
function NewHandleSysClear(byteCount: Size): Handle; external name '_NewHandleSysClear';
428
* Non-Carbon CFM: in InterfaceLib 7.1 and later
429
* CarbonLib: not available
430
* Mac OS X: not available
432
function HandleZone(h: Handle): THz; external name '_HandleZone';
433
{$endc} {CALL_NOT_IN_CARBON}
439
* Non-Carbon CFM: in InterfaceLib 7.1 and later
440
* CarbonLib: in CarbonLib 1.0 and later
441
* Mac OS X: in version 10.0 and later
443
function RecoverHandle(p: Ptr): Handle; external name '_RecoverHandle';
444
{$ifc CALL_NOT_IN_CARBON}
449
* Non-Carbon CFM: in InterfaceLib 7.1 and later
450
* CarbonLib: not available
451
* Mac OS X: not available
453
function RecoverHandleSys(p: Ptr): Handle; external name '_RecoverHandleSys';
454
{$endc} {CALL_NOT_IN_CARBON}
460
* Non-Carbon CFM: in InterfaceLib 7.1 and later
461
* CarbonLib: in CarbonLib 1.0 and later
462
* Mac OS X: in version 10.0 and later
464
function NewPtr(byteCount: Size): Ptr; external name '_NewPtr';
465
{$ifc CALL_NOT_IN_CARBON}
470
* Non-Carbon CFM: in InterfaceLib 7.1 and later
471
* CarbonLib: not available
472
* Mac OS X: not available
474
function NewPtrSys(byteCount: Size): Ptr; external name '_NewPtrSys';
475
{$endc} {CALL_NOT_IN_CARBON}
481
* Non-Carbon CFM: in InterfaceLib 7.1 and later
482
* CarbonLib: in CarbonLib 1.0 and later
483
* Mac OS X: in version 10.0 and later
485
function NewPtrClear(byteCount: Size): Ptr; external name '_NewPtrClear';
486
{$ifc CALL_NOT_IN_CARBON}
491
* Non-Carbon CFM: in InterfaceLib 7.1 and later
492
* CarbonLib: not available
493
* Mac OS X: not available
495
function NewPtrSysClear(byteCount: Size): Ptr; external name '_NewPtrSysClear';
500
* Non-Carbon CFM: in InterfaceLib 7.1 and later
501
* CarbonLib: not available
502
* Mac OS X: not available
504
function PtrZone(p: Ptr): THz; external name '_PtrZone';
505
{$endc} {CALL_NOT_IN_CARBON}
511
* Non-Carbon CFM: in InterfaceLib 7.1 and later
512
* CarbonLib: in CarbonLib 1.0 and later
513
* Mac OS X: in version 10.0 and later
515
function MaxBlock: SInt32; external name '_MaxBlock';
516
{$ifc CALL_NOT_IN_CARBON}
521
* Non-Carbon CFM: in InterfaceLib 7.1 and later
522
* CarbonLib: not available
523
* Mac OS X: not available
525
function MaxBlockSys: SInt32; external name '_MaxBlockSys';
526
{$endc} {CALL_NOT_IN_CARBON}
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
536
function StackSpace: SInt32; external name '_StackSpace';
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
545
function NewEmptyHandle: Handle; external name '_NewEmptyHandle';
546
{$ifc CALL_NOT_IN_CARBON}
548
* NewEmptyHandleSys()
551
* Non-Carbon CFM: in InterfaceLib 7.1 and later
552
* CarbonLib: not available
553
* Mac OS X: not available
555
function NewEmptyHandleSys: Handle; external name '_NewEmptyHandleSys';
556
{$endc} {CALL_NOT_IN_CARBON}
562
* Non-Carbon CFM: in InterfaceLib 7.1 and later
563
* CarbonLib: in CarbonLib 1.0 and later
564
* Mac OS X: in version 10.0 and later
566
procedure HLock(h: Handle); external name '_HLock';
571
* Non-Carbon CFM: in InterfaceLib 7.1 and later
572
* CarbonLib: in CarbonLib 1.0 and later
573
* Mac OS X: in version 10.0 and later
575
procedure HUnlock(h: Handle); external name '_HUnlock';
580
* Non-Carbon CFM: in InterfaceLib 7.1 and later
581
* CarbonLib: in CarbonLib 1.0 and later
582
* Mac OS X: in version 10.0 and later
584
procedure HPurge(h: Handle); external name '_HPurge';
589
* Non-Carbon CFM: in InterfaceLib 7.1 and later
590
* CarbonLib: in CarbonLib 1.0 and later
591
* Mac OS X: in version 10.0 and later
593
procedure HNoPurge(h: Handle); external name '_HNoPurge';
598
* Non-Carbon CFM: in InterfaceLib 7.1 and later
599
* CarbonLib: in CarbonLib 1.0 and later
600
* Mac OS X: in version 10.0 and later
602
procedure HLockHi(h: Handle); external name '_HLockHi';
607
* Non-Carbon CFM: in InterfaceLib 7.1 and later
608
* CarbonLib: in CarbonLib 1.0 and later
609
* Mac OS X: in version 10.0 and later
611
function TempNewHandle(logicalSize: Size; var resultCode: OSErr): Handle; external name '_TempNewHandle';
616
* Non-Carbon CFM: in InterfaceLib 7.1 and later
617
* CarbonLib: in CarbonLib 1.0 and later
618
* Mac OS X: in version 10.0 and later
620
function TempMaxMem(var grow: Size): Size; external name '_TempMaxMem';
625
* Non-Carbon CFM: in InterfaceLib 7.1 and later
626
* CarbonLib: in CarbonLib 1.0 and later
627
* Mac OS X: in version 10.0 and later
629
function TempFreeMem: SInt32; external name '_TempFreeMem';
630
{$ifc CALL_NOT_IN_CARBON}
635
* Non-Carbon CFM: in InterfaceLib 7.1 and later
636
* CarbonLib: not available
637
* Mac OS X: not available
639
procedure InitZone(pgrowZone: GrowZoneUPP; cmoreMasters: SInt16; limitPtr: UnivPtr; startPtr: UnivPtr); external name '_InitZone';
641
{$endc} {CALL_NOT_IN_CARBON}
643
{$ifc CALL_NOT_IN_CARBON}
648
* Non-Carbon CFM: in InterfaceLib 7.1 and later
649
* CarbonLib: not available
650
* Mac OS X: not available
652
procedure SetZone(hz: THz); external name '_SetZone';
653
{$endc} {CALL_NOT_IN_CARBON}
659
* Non-Carbon CFM: in InterfaceLib 7.1 and later
660
* CarbonLib: in CarbonLib 1.0 and later
661
* Mac OS X: in version 10.0 and later
663
function CompactMem(cbNeeded: Size): Size; external name '_CompactMem';
664
{$ifc CALL_NOT_IN_CARBON}
669
* Non-Carbon CFM: in InterfaceLib 7.1 and later
670
* CarbonLib: not available
671
* Mac OS X: not available
673
function CompactMemSys(cbNeeded: Size): Size; external name '_CompactMemSys';
674
{$endc} {CALL_NOT_IN_CARBON}
680
* Non-Carbon CFM: in InterfaceLib 7.1 and later
681
* CarbonLib: in CarbonLib 1.0 and later
682
* Mac OS X: in version 10.0 and later
684
procedure PurgeMem(cbNeeded: Size); external name '_PurgeMem';
685
{$ifc CALL_NOT_IN_CARBON}
690
* Non-Carbon CFM: in InterfaceLib 7.1 and later
691
* CarbonLib: not available
692
* Mac OS X: not available
694
procedure PurgeMemSys(cbNeeded: Size); external name '_PurgeMemSys';
695
{$endc} {CALL_NOT_IN_CARBON}
701
* Non-Carbon CFM: in InterfaceLib 7.1 and later
702
* CarbonLib: in CarbonLib 1.0 and later
703
* Mac OS X: in version 10.0 and later
705
function FreeMem: SInt32; external name '_FreeMem';
706
{$ifc CALL_NOT_IN_CARBON}
711
* Non-Carbon CFM: in InterfaceLib 7.1 and later
712
* CarbonLib: not available
713
* Mac OS X: not available
715
function FreeMemSys: SInt32; external name '_FreeMemSys';
716
{$endc} {CALL_NOT_IN_CARBON}
722
* Non-Carbon CFM: in InterfaceLib 7.1 and later
723
* CarbonLib: in CarbonLib 1.0 and later
724
* Mac OS X: in version 10.0 and later
726
procedure ReserveMem(cbNeeded: Size); external name '_ReserveMem';
727
{$ifc CALL_NOT_IN_CARBON}
732
* Non-Carbon CFM: in InterfaceLib 7.1 and later
733
* CarbonLib: not available
734
* Mac OS X: not available
736
procedure ReserveMemSys(cbNeeded: Size); external name '_ReserveMemSys';
737
{$endc} {CALL_NOT_IN_CARBON}
743
* Non-Carbon CFM: in InterfaceLib 7.1 and later
744
* CarbonLib: in CarbonLib 1.0 and later
745
* Mac OS X: in version 10.0 and later
747
function MaxMem(var grow: Size): Size; external name '_MaxMem';
748
{$ifc CALL_NOT_IN_CARBON}
753
* Non-Carbon CFM: in InterfaceLib 7.1 and later
754
* CarbonLib: not available
755
* Mac OS X: not available
757
function MaxMemSys(var grow: Size): Size; external name '_MaxMemSys';
758
{$endc} {CALL_NOT_IN_CARBON}
764
* Non-Carbon CFM: in InterfaceLib 7.1 and later
765
* CarbonLib: in CarbonLib 1.0 and later
766
* Mac OS X: in version 10.0 and later
768
procedure SetGrowZone(growZone: GrowZoneUPP); external name '_SetGrowZone';
773
* Non-Carbon CFM: not available
774
* CarbonLib: in CarbonLib 1.1 and later
775
* Mac OS X: in version 10.0 and later
777
function GetGrowZone: GrowZoneUPP; external name '_GetGrowZone';
783
* Non-Carbon CFM: in InterfaceLib 7.1 and later
784
* CarbonLib: in CarbonLib 1.0 and later
785
* Mac OS X: in version 10.0 and later
787
procedure MoveHHi(h: Handle); external name '_MoveHHi';
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
796
procedure DisposePtr(p: Ptr); external name '_DisposePtr';
801
* Non-Carbon CFM: in InterfaceLib 7.1 and later
802
* CarbonLib: in CarbonLib 1.0 and later
803
* Mac OS X: in version 10.0 and later
805
function GetPtrSize(p: Ptr): Size; external name '_GetPtrSize';
811
* Non-Carbon CFM: in InterfaceLib 7.1 and later
812
* CarbonLib: in CarbonLib 1.0 and later
813
* Mac OS X: in version 10.0 and later
815
procedure SetPtrSize(p: Ptr; newSize: Size); external name '_SetPtrSize';
820
* Non-Carbon CFM: in InterfaceLib 7.1 and later
821
* CarbonLib: in CarbonLib 1.0 and later
822
* Mac OS X: in version 10.0 and later
824
procedure DisposeHandle(h: Handle); external name '_DisposeHandle';
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
833
procedure SetHandleSize(h: Handle; newSize: Size); external name '_SetHandleSize';
837
GetHandleSize and GetPtrSize are documented in Inside Mac as returning 0
838
in case of an error, but the traps actually return an error code in D0.
839
The glue sets D0 to 0 if an error occurred.
845
* Non-Carbon CFM: in InterfaceLib 7.1 and later
846
* CarbonLib: in CarbonLib 1.0 and later
847
* Mac OS X: in version 10.0 and later
849
function GetHandleSize(h: Handle): Size; external name '_GetHandleSize';
851
{$ifc CALL_NOT_IN_CARBON}
853
* InlineGetHandleSize()
856
* Non-Carbon CFM: in InterfaceLib 7.1 and later
857
* CarbonLib: not available
858
* Mac OS X: not available
860
function InlineGetHandleSize(h: Handle): Size; external name '_InlineGetHandleSize';
861
{$endc} {CALL_NOT_IN_CARBON}
867
* Non-Carbon CFM: in InterfaceLib 7.1 and later
868
* CarbonLib: in CarbonLib 1.0 and later
869
* Mac OS X: in version 10.0 and later
871
procedure ReallocateHandle(h: Handle; byteCount: Size); external name '_ReallocateHandle';
872
{$ifc CALL_NOT_IN_CARBON}
874
* ReallocateHandleSys()
877
* Non-Carbon CFM: in InterfaceLib 8.5 and later
878
* CarbonLib: not available
879
* Mac OS X: not available
881
procedure ReallocateHandleSys(h: Handle; byteCount: Size); external name '_ReallocateHandleSys';
882
{$endc} {CALL_NOT_IN_CARBON}
888
* Non-Carbon CFM: in InterfaceLib 7.1 and later
889
* CarbonLib: in CarbonLib 1.0 and later
890
* Mac OS X: in version 10.0 and later
892
procedure EmptyHandle(h: Handle); external name '_EmptyHandle';
897
* Non-Carbon CFM: in InterfaceLib 7.1 and later
898
* CarbonLib: in CarbonLib 1.0 and later
899
* Mac OS X: in version 10.0 and later
901
procedure HSetRBit(h: Handle); external name '_HSetRBit';
906
* Non-Carbon CFM: in InterfaceLib 7.1 and later
907
* CarbonLib: in CarbonLib 1.0 and later
908
* Mac OS X: in version 10.0 and later
910
procedure HClrRBit(h: Handle); external name '_HClrRBit';
915
* Non-Carbon CFM: in InterfaceLib 7.1 and later
916
* CarbonLib: in CarbonLib 1.0 and later
917
* Mac OS X: in version 10.0 and later
919
function HGetState(h: Handle): SInt8; external name '_HGetState';
924
* Non-Carbon CFM: in InterfaceLib 7.1 and later
925
* CarbonLib: in CarbonLib 1.0 and later
926
* Mac OS X: in version 10.0 and later
928
procedure HSetState(h: Handle; flags: SInt8); external name '_HSetState';
933
* Non-Carbon CFM: in InterfaceLib 7.1 and later
934
* CarbonLib: in CarbonLib 1.0 and later
935
* Mac OS X: in version 10.0 and later
937
procedure PurgeSpace(var total: SInt32; var contig: SInt32); external name '_PurgeSpace';
940
PurgeSpaceTotal and PurgeSpaceContiguous are currently only implement
941
on classic 68K. The are the same as PurgeSpace() but return just
942
one value (either total space purgable or contiguous space purgable).
943
Begining in Mac OS 8.5 they are available in InterfaceLib.
949
* Non-Carbon CFM: in InterfaceLib 8.5 and later
950
* CarbonLib: in CarbonLib 1.0 and later
951
* Mac OS X: in version 10.0 and later
953
function PurgeSpaceTotal: SInt32; external name '_PurgeSpaceTotal';
955
* PurgeSpaceContiguous()
958
* Non-Carbon CFM: in InterfaceLib 8.5 and later
959
* CarbonLib: in CarbonLib 1.0 and later
960
* Mac OS X: in version 10.0 and later
962
function PurgeSpaceContiguous: SInt32; external name '_PurgeSpaceContiguous';
963
{$ifc CALL_NOT_IN_CARBON}
965
* PurgeSpaceSysTotal()
968
* Non-Carbon CFM: in InterfaceLib 8.5 and later
969
* CarbonLib: not available
970
* Mac OS X: not available
972
function PurgeSpaceSysTotal: SInt32; external name '_PurgeSpaceSysTotal';
974
* PurgeSpaceSysContiguous()
977
* Non-Carbon CFM: in InterfaceLib 8.5 and later
978
* CarbonLib: not available
979
* Mac OS X: not available
981
function PurgeSpaceSysContiguous: SInt32; external name '_PurgeSpaceSysContiguous';
982
{****************************************************************************
986
BlockMoveUncached, BlockMoveDataUncached
987
BlockZero, BlockZeroUncached
989
were first created for developers writing drivers. Originally they only
990
existed in DriverServicesLib. Later they were added to InterfaceLib
991
in PCI based PowerMacs. MacOS 8.5 provides these routines in InterfaceLib
992
on all supported machines.
994
****************************************************************************}
995
{$endc} {CALL_NOT_IN_CARBON}
1001
* Non-Carbon CFM: in DriverServicesLib 1.0 and later
1002
* CarbonLib: in CarbonLib 1.0 and later
1003
* Mac OS X: in version 10.0 and later
1005
procedure BlockMove(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMove';
1010
* Non-Carbon CFM: in DriverServicesLib 1.0 and later
1011
* CarbonLib: in CarbonLib 1.0 and later
1012
* Mac OS X: in version 10.0 and later
1014
procedure BlockMoveData(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveData';
1016
* BlockMoveUncached()
1019
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1020
* CarbonLib: in CarbonLib 1.0 and later
1021
* Mac OS X: in version 10.0 and later
1023
procedure BlockMoveUncached(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveUncached';
1026
* BlockMoveDataUncached()
1029
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1030
* CarbonLib: in CarbonLib 1.0 and later
1031
* Mac OS X: in version 10.0 and later
1033
procedure BlockMoveDataUncached(srcPtr: UnivPtr; destPtr: UnivPtr; byteCount: Size); external name '_BlockMoveDataUncached';
1039
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1040
* CarbonLib: in CarbonLib 1.0 and later
1041
* Mac OS X: in version 10.0 and later
1043
procedure BlockZero(destPtr: UnivPtr; byteCount: Size); external name '_BlockZero';
1046
* BlockZeroUncached()
1049
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1050
* CarbonLib: in CarbonLib 1.0 and later
1051
* Mac OS X: in version 10.0 and later
1053
procedure BlockZeroUncached(destPtr: UnivPtr; byteCount: Size); external name '_BlockZeroUncached';
1056
{$ifc CALL_NOT_IN_CARBON}
1061
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1062
* CarbonLib: not available
1063
* Mac OS X: not available
1065
procedure MaxApplZone; external name '_MaxApplZone';
1070
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1071
* CarbonLib: not available
1072
* Mac OS X: not available
1074
procedure SetApplBase(startPtr: UnivPtr); external name '_SetApplBase';
1075
{$endc} {CALL_NOT_IN_CARBON}
1081
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1082
* CarbonLib: in CarbonLib 1.0 and later
1083
* Mac OS X: in version 10.0 and later
1085
procedure MoreMasters; external name '_MoreMasters';
1087
* MoreMasterPointers()
1090
* Non-Carbon CFM: not available
1091
* CarbonLib: in CarbonLib 1.0 and later
1092
* Mac OS X: in version 10.0 and later
1094
procedure MoreMasterPointers(inCount: UInt32); external name '_MoreMasterPointers';
1096
{$ifc CALL_NOT_IN_CARBON}
1101
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1102
* CarbonLib: not available
1103
* Mac OS X: not available
1105
procedure SetApplLimit(zoneLimit: UnivPtr); external name '_SetApplLimit';
1110
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1111
* CarbonLib: not available
1112
* Mac OS X: not available
1114
procedure InitApplZone; external name '_InitApplZone';
1115
{ Temporary Memory routines renamed, but obsolete, in System 7.0 and later. }
1116
{$endc} {CALL_NOT_IN_CARBON}
1122
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1123
* CarbonLib: in CarbonLib 1.0 and later
1124
* Mac OS X: in version 10.0 and later
1126
procedure TempHLock(h: Handle; var resultCode: OSErr); external name '_TempHLock';
1131
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1132
* CarbonLib: in CarbonLib 1.0 and later
1133
* Mac OS X: in version 10.0 and later
1135
procedure TempHUnlock(h: Handle; var resultCode: OSErr); external name '_TempHUnlock';
1137
* TempDisposeHandle()
1140
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1141
* CarbonLib: in CarbonLib 1.0 and later
1142
* Mac OS X: in version 10.0 and later
1144
procedure TempDisposeHandle(h: Handle; var resultCode: OSErr); external name '_TempDisposeHandle';
1149
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1150
* CarbonLib: in CarbonLib 1.0 and later
1151
* Mac OS X: in version 10.0 and later
1153
function TempTopMem: Ptr; external name '_TempTopMem';
1158
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1159
* CarbonLib: in CarbonLib 1.1 and later
1160
* Mac OS X: in version 10.0 and later
1162
function HoldMemory(address: UnivPtr; count: UInt32): OSErr; external name '_HoldMemory';
1167
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1168
* CarbonLib: in CarbonLib 1.1 and later
1169
* Mac OS X: in version 10.0 and later
1171
function UnholdMemory(address: UnivPtr; count: UInt32): OSErr; external name '_UnholdMemory';
1172
{$ifc CALL_NOT_IN_CARBON}
1177
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1178
* CarbonLib: not available
1179
* Mac OS X: not available
1181
function LockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemory';
1183
* LockMemoryForOutput()
1186
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1187
* CarbonLib: not available
1188
* Mac OS X: not available
1190
function LockMemoryForOutput(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemoryForOutput';
1192
* LockMemoryContiguous()
1195
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1196
* CarbonLib: not available
1197
* Mac OS X: not available
1199
function LockMemoryContiguous(address: UnivPtr; count: UInt32): OSErr; external name '_LockMemoryContiguous';
1204
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1205
* CarbonLib: not available
1206
* Mac OS X: not available
1208
function UnlockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_UnlockMemory';
1209
{$endc} {CALL_NOT_IN_CARBON}
1212
* MakeMemoryResident()
1215
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1216
* CarbonLib: in CarbonLib 1.0.2 and later
1217
* Mac OS X: in version 10.0 and later
1219
function MakeMemoryResident(address: UnivPtr; count: UInt32): OSErr; external name '_MakeMemoryResident';
1221
* ReleaseMemoryData()
1224
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1225
* CarbonLib: in CarbonLib 1.0.2 and later
1226
* Mac OS X: in version 10.0 and later
1228
function ReleaseMemoryData(address: UnivPtr; count: UInt32): OSErr; external name '_ReleaseMemoryData';
1230
* MakeMemoryNonResident()
1233
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1234
* CarbonLib: in CarbonLib 1.0.2 and later
1235
* Mac OS X: in version 10.0 and later
1237
function MakeMemoryNonResident(address: UnivPtr; count: UInt32): OSErr; external name '_MakeMemoryNonResident';
1242
* Non-Carbon CFM: in InterfaceLib 8.5 and later
1243
* CarbonLib: in CarbonLib 1.0.2 and later
1244
* Mac OS X: in version 10.0 and later
1246
function FlushMemory(address: UnivPtr; count: UInt32): OSErr; external name '_FlushMemory';
1247
{$ifc CALL_NOT_IN_CARBON}
1252
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1253
* CarbonLib: not available
1254
* Mac OS X: not available
1256
function GetPhysical(var addresses: LogicalToPhysicalTable; var physicalEntryCount: UInt32): OSErr; external name '_GetPhysical';
1257
{$endc} {CALL_NOT_IN_CARBON}
1259
{$ifc CALL_NOT_IN_CARBON}
1261
* GetVolumeVirtualMemoryInfo()
1264
* Non-Carbon CFM: in InterfaceLib 9.0 and later
1265
* CarbonLib: not available
1266
* Mac OS X: not available
1268
function GetVolumeVirtualMemoryInfo(volVMInfo: VolumeVirtualMemoryInfoPtr): OSErr; external name '_GetVolumeVirtualMemoryInfo';
1273
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1274
* CarbonLib: not available
1275
* Mac OS X: not available
1277
function DeferUserFn(userFunction: UserFnUPP; argument: UnivPtr): OSErr; external name '_DeferUserFn';
1282
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1283
* CarbonLib: not available
1284
* Mac OS X: not available
1286
function DebuggerGetMax: SInt32; external name '_DebuggerGetMax';
1291
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1292
* CarbonLib: not available
1293
* Mac OS X: not available
1295
procedure DebuggerEnter; external name '_DebuggerEnter';
1300
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1301
* CarbonLib: not available
1302
* Mac OS X: not available
1304
procedure DebuggerExit; external name '_DebuggerExit';
1309
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1310
* CarbonLib: not available
1311
* Mac OS X: not available
1313
procedure DebuggerPoll; external name '_DebuggerPoll';
1318
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1319
* CarbonLib: not available
1320
* Mac OS X: not available
1322
function GetPageState(address: UnivPtr): PageState; external name '_GetPageState';
1327
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1328
* CarbonLib: not available
1329
* Mac OS X: not available
1331
function PageFaultFatal: boolean; external name '_PageFaultFatal';
1333
* DebuggerLockMemory()
1336
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1337
* CarbonLib: not available
1338
* Mac OS X: not available
1340
function DebuggerLockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_DebuggerLockMemory';
1342
* DebuggerUnlockMemory()
1345
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1346
* CarbonLib: not available
1347
* Mac OS X: not available
1349
function DebuggerUnlockMemory(address: UnivPtr; count: UInt32): OSErr; external name '_DebuggerUnlockMemory';
1351
* EnterSupervisorMode()
1354
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1355
* CarbonLib: not available
1356
* Mac OS X: not available
1358
function EnterSupervisorMode: StatusRegisterContents; external name '_EnterSupervisorMode';
1363
* A trap on classic 68K, and the identity function for pre-carbon
1366
* Non-Carbon CFM: available as macro/inline
1367
* CarbonLib: not available
1368
* Mac OS X: not available
1370
function StripAddress(theAddress: UnivPtr): Ptr; external name '_StripAddress';
1375
* A trap on classic 68K, and the identity function for pre-carbon
1378
* Non-Carbon CFM: available as macro/inline
1379
* CarbonLib: not available
1380
* Mac OS X: not available
1382
function Translate24To32(addr24: UnivPtr): Ptr; external name '_Translate24To32';
1383
{$endc} {CALL_NOT_IN_CARBON}
1389
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1390
* CarbonLib: in CarbonLib 1.0 and later
1391
* Mac OS X: in version 10.0 and later
1393
function HandToHand(var theHndl: Handle): OSErr; external name '_HandToHand';
1399
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1400
* CarbonLib: in CarbonLib 1.0 and later
1401
* Mac OS X: in version 10.0 and later
1403
function PtrToXHand(srcPtr: UnivPtr; dstHndl: Handle; size: SInt32): OSErr; external name '_PtrToXHand';
1408
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1409
* CarbonLib: in CarbonLib 1.0 and later
1410
* Mac OS X: in version 10.0 and later
1412
function PtrToHand(srcPtr: UnivPtr; var dstHndl: Handle; size: SInt32): OSErr; external name '_PtrToHand';
1418
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1419
* CarbonLib: in CarbonLib 1.0 and later
1420
* Mac OS X: in version 10.0 and later
1422
function HandAndHand(hand1: Handle; hand2: Handle): OSErr; external name '_HandAndHand';
1427
* Non-Carbon CFM: in InterfaceLib 7.1 and later
1428
* CarbonLib: in CarbonLib 1.0 and later
1429
* Mac OS X: in version 10.0 and later
1431
function PtrAndHand(ptr1: UnivPtr; hand2: Handle; size: SInt32): OSErr; external name '_PtrAndHand';
1432
{ Carbon routines to aid in debugging. }
1433
{ Checks all applicable heaps for validity }
1438
* Non-Carbon CFM: not available
1439
* CarbonLib: in CarbonLib 1.0 and later
1440
* Mac OS X: in version 10.0 and later
1442
function CheckAllHeaps: boolean; external name '_CheckAllHeaps';
1444
{ Checks the application heap for validity }
1449
* Non-Carbon CFM: not available
1450
* CarbonLib: in CarbonLib 1.0 and later
1451
* Mac OS X: in version 10.0 and later
1453
function IsHeapValid: boolean; external name '_IsHeapValid';
1455
{ It is invalid to pass a NULL or an empty Handle to IsHandleValid }
1460
* Non-Carbon CFM: not available
1461
* CarbonLib: in CarbonLib 1.0 and later
1462
* Mac OS X: in version 10.0 and later
1464
function IsHandleValid(h: Handle): boolean; external name '_IsHandleValid';
1466
{ It is invalid to pass a NULL Pointer to IsPointerValid }
1471
* Non-Carbon CFM: not available
1472
* CarbonLib: in CarbonLib 1.0 and later
1473
* Mac OS X: in version 10.0 and later
1475
function IsPointerValid(p: Ptr): boolean; external name '_IsPointerValid';
1478
{$ifc OLDROUTINENAMES}
1479
{$ifc CALL_NOT_IN_CARBON}
1484
* Non-Carbon CFM: not available
1485
* CarbonLib: not available
1486
* Mac OS X: not available
1488
function ApplicZone: THz; external name '_ApplicZone';
1493
* Non-Carbon CFM: not available
1494
* CarbonLib: not available
1495
* Mac OS X: not available
1497
function MFTempNewHandle(logicalSize: Size; var resultCode: OSErr): Handle; external name '_MFTempNewHandle';
1502
* Non-Carbon CFM: not available
1503
* CarbonLib: not available
1504
* Mac OS X: not available
1506
function MFMaxMem(var grow: Size): Size; external name '_MFMaxMem';
1511
* Non-Carbon CFM: not available
1512
* CarbonLib: not available
1513
* Mac OS X: not available
1515
function MFFreeMem: SInt32; external name '_MFFreeMem';
1520
* Non-Carbon CFM: not available
1521
* CarbonLib: not available
1522
* Mac OS X: not available
1524
procedure MFTempHLock(h: Handle; var resultCode: OSErr); external name '_MFTempHLock';
1529
* Non-Carbon CFM: not available
1530
* CarbonLib: not available
1531
* Mac OS X: not available
1533
procedure MFTempHUnlock(h: Handle; var resultCode: OSErr); external name '_MFTempHUnlock';
1535
* MFTempDisposHandle()
1538
* Non-Carbon CFM: not available
1539
* CarbonLib: not available
1540
* Mac OS X: not available
1542
procedure MFTempDisposHandle(h: Handle; var resultCode: OSErr); external name '_MFTempDisposHandle';
1547
* Non-Carbon CFM: not available
1548
* CarbonLib: not available
1549
* Mac OS X: not available
1551
function MFTopMem: Ptr; external name '_MFTopMem';
1556
* Non-Carbon CFM: not available
1557
* CarbonLib: not available
1558
* Mac OS X: not available
1560
procedure ResrvMem(cbNeeded: Size); external name '_ResrvMem';
1565
* Non-Carbon CFM: not available
1566
* CarbonLib: not available
1567
* Mac OS X: not available
1569
procedure DisposPtr(p: Ptr); external name '_DisposPtr';
1574
* Non-Carbon CFM: not available
1575
* CarbonLib: not available
1576
* Mac OS X: not available
1578
procedure DisposHandle(h: Handle); external name '_DisposHandle';
1583
* Non-Carbon CFM: not available
1584
* CarbonLib: not available
1585
* Mac OS X: not available
1587
procedure ReallocHandle(h: Handle; byteCount: Size); external name '_ReallocHandle';
1588
{$endc} {CALL_NOT_IN_CARBON}
1589
{$endc} {OLDROUTINENAMES}