Manager: Memory Manager



Carbon supports the majority of the Memory Manager programming interface. Changes primarily affect applications that use zones, system memory, or temporary memory. For example, temporary memory allocations in Mac OS X are allocated in the application's address space. As a result, calling TempNewHandle is effectively the same as calling NewHandle.

Carbon does not support functions for accessing the system heap, as the system heap in unavailable in Mac OS X.

By adhering to the following guidelines, you can increase your application's compliance with Mac OS X memory management:

Unsupported  ApplicationZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  BlockMove

Available in CarbonLib 1.0 and later when DriverServicesLib 1.0 or later is present. Available in Mac OS X 10.0 and later.

Supported  BlockMoveData

Available in CarbonLib 1.0 and later when DriverServicesLib 1.0 or later is present. Available in Mac OS X 10.0 and later.

Supported  BlockMoveDataUncached

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  BlockMoveUncached

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  BlockZero

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  BlockZeroUncached

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  CheckAllHeaps

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Unsupported  CloseMappedFile

Not available in CarbonLib. Not available in Mac OS X.

Supported  CompactMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  CompactMemSys

Operations on the system heap are not allowed. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerEnter

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerExit

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerGetMax

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerLockMemory

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerPoll

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DebuggerUnlockMemory

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  DeferUserFn

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Supported  DisposeGrowZoneUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  DisposeHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  DisposePtr

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  DisposePurgeUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  DisposeUserFnUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  EmptyHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  EnterSupervisorMode

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Supported  FlushMemory

Available in CarbonLib 1.0.2 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  FreeMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  FreeMemSys

Operations on the system heap are not allowed in Carbon. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  FSpOpenMappedFile

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetApplLimit

Mac OS X applications have no size limit on their application partition. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetFileViewAccessOptions

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetFileViewFromAddress

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetFileViewInformation

Not available in CarbonLib. Not available in Mac OS X.

Supported  GetGrowZone

Available in CarbonLib 1.1 and later. Available in Mac OS X 10.0 and later.

Supported  GetHandleSize

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  GetMappedFileInformation

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetNextFileView

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetNextMappedFile

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetPageState

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetPhysical

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Supported  GetPtrSize

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  GetVolumeVirtualMemoryInfo

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  GetZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  GZSaveHnd

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HandAndHand

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  HandleZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  HandToHand

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HClrRBit

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HGetState

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HLock

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HLockHi

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HNoPurge

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HoldMemory

Available in CarbonLib 1.1 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HPurge

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HSetRBit

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HSetState

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  HUnlock

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  InitApplZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  InitZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  InlineGetHandleSize

Used by 68K code. Not available in CarbonLib. Not available in Mac OS X.

Supported  InvokeGrowZoneUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  InvokePurgeUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  InvokeUserFnUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  IsHandleValid

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  IsHeapValid

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  IsPointerValid

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Unsupported  LockMemory

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  LockMemoryContiguous

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  LockMemoryForOutput

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Supported  MakeMemoryNonResident

Available in CarbonLib 1.0.2 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  MakeMemoryResident

Available in CarbonLib 1.0.2 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Unsupported  MapFileView

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  MaxApplZone

Not available in CarbonLib. Not available in Mac OS X.

Supported  MaxBlock

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  MaxBlockSys

Operations on the system heap are not allowed. Use the function MaxBlock instead. Not available in CarbonLib. Not available in Mac OS X.

Supported  MaxMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  MaxMemSys

Operations on the system heap are not allowed. Use the function MaxMem instead. Not available in CarbonLib. Not available in Mac OS X.

Supported  MemError

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  MoreMasterPointers

Carbon applications should use this function instead of MoreMasters to allocate a nonrelocatable block of master pointers in the current heap zone. Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Not Recommended  MoreMasters

You should instead use MoreMasterPointers. Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  MoveHHi

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  NewEmptyHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  NewEmptyHandleSys

Operations on the system heap are not allowed. Use the function NewEmptyHandle instead. Not available in CarbonLib. Not available in Mac OS X.

Supported  NewGrowZoneUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  NewHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  NewHandleClear

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  NewHandleSys

Operations on the system heap are not allowed. To allocate a new relocatable block of memory in the current heap, use the function NewHandle instead. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  NewHandleSysClear

Operations on the system heap are not allowed. To allocate a block of memory in the current heap and initialize all of its bytes to 0, use the function NewHandleClear. Not available in CarbonLib. Not available in Mac OS X.

Supported  NewPtr

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  NewPtrClear

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  NewPtrSys

There is no System in Mac OS X. Use the function NewPtr instead. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  NewPtrSysClear

There is no System in Mac OS X. Use the function NewPtrClear instead. Not available in CarbonLib. Not available in Mac OS X.

Supported  NewPurgeUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Supported  NewUserFnUPP

Available in CarbonLib 1.0 and later. Available in Mac OS X 10.0 and later.

Unsupported  OpenMappedFile

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  OpenMappedScratchFile

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  PageFaultFatal

There is no System in Mac OS X. Not available in CarbonLib. Not available in Mac OS X.

Supported  PtrAndHand

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  PtrToHand

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  PtrToXHand

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  PtrZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  PurgeMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  PurgeMemSys

Operations on the system heap are not allowed. Use the function PurgeMem to purge the current heap. Not available in CarbonLib. Not available in Mac OS X.

Supported  PurgeSpace

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  PurgeSpaceContiguous

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Unsupported  PurgeSpaceSysContiguous

Operations on the system heap are not allowed. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  PurgeSpaceSysTotal

Operations on the system heap are not allowed. Not available in CarbonLib. Not available in Mac OS X.

Supported  PurgeSpaceTotal

Available in CarbonLib 1.0 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  ReallocateHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  ReallocateHandleSys

Operations on the system heap are not allowed. Not available in CarbonLib. Not available in Mac OS X.

Supported  RecoverHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  RecoverHandleSys

Operations on the system heap are not allowed. Not available in CarbonLib. Not available in Mac OS X.

Supported  ReleaseMemoryData

Available in CarbonLib 1.0.2 and later when running Mac OS 8.5 or later. Available in Mac OS X 10.0 and later.

Supported  ReserveMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  ReserveMemSys

Operations on the system heap are not allowed. Use the function ReserveMem instead. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  SetApplBase

Applications do not have the same memory layout in Mac OS X as in Mac OS 9. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  SetApplLimit

Mac OS X applications have no size limit on their application partition. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  SetFileViewAccess

Not available in CarbonLib. Not available in Mac OS X.

Unsupported  SetFileViewBackingBase

Not available in CarbonLib. Not available in Mac OS X.

Supported  SetGrowZone

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  SetHandleSize

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  SetMappedFileSize

Not available in CarbonLib. Not available in Mac OS X.

Supported  SetPtrSize

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  SetZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  StackSpace

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  StripAddress

There will be no 24-bit memory mode in Mac OS X, so there will be no 24-bit addresses to strip.

Unsupported  SystemZone

Carbon does not support zones because they do not work in a preemptively multitasked environment. Not available in CarbonLib. Not available in Mac OS X.

Supported  TempDisposeHandle

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempFreeMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempHLock

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempHUnlock

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempMaxMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempNewHandle

Temporary memory allocations will actually come from the applications's address space in Mac OS X. However, Carbon applications running under Mac OS 8.x will be able to get true temporary memory. Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TempTopMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Supported  TopMem

Available in CarbonLib 1.0 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  Translate24To32

There will be no 24-bit memory mode in Mac OS X, so there is no need to translate from 24- to 32-bit addresses.

Supported  UnholdMemory

Available in CarbonLib 1.1 and later when running Mac OS 8.1 or later. Available in Mac OS X 10.0 and later.

Unsupported  UnlockMemory

There is no replacement for this function at this time, nor is there likely to be a replacement in the future. Not available in CarbonLib. Not available in Mac OS X.

Unsupported  UnmapFileView

Not available in CarbonLib. Not available in Mac OS X.

[Table of Contents] [Manager Index] [Function Index]

Generated on: 12/12/2001. Copyright © 1999-2001 Apple Computer, Inc. All rights reserved.