Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Memory


Index

[']

& operator
@ operator

0 (memory location)
0-length handles
24-bit addressing [1] [2]
    defined
    setting with the Memory control panel
    stripping flag bits [1]
32-bit addressing [1] [2]
    defined
    machines that support
    setting with the Memory control panel
    using temporarily
32-bit clean

A

A5 register
    and A5 world [1] [2]
    grow-zone functions saving and restoring [1] [2]
    setting and restoring [1] [2] [3]
    use of by Toolbox and Operating System routines [1]
    using to access QuickDraw globals [1]
A5 world
    accessing in completion routines [1]
    accessing in interrupt tasks [1]
    defined
    setting [1] [2]
addresses. See memory addresses
addressing modes
    24-bit [1]
    32-bit [1]
    current mode, getting [1]
    switching [1]
Address Management Unit (AMU)
address space. See logical address space; physical address space
address-translation mode
    getting [1]
    setting [1]
    temporarily changing
AMU (Address Management Unit)
AND operator
AppleShare, and paging devices
application global variables
    accessing in completion routines
    accessing in interrupt tasks
application heap [1]
    defined
    determining amount of free space [1]
    maximizing space to prevent fragmentation
    setting up [1] [2]
application heap limit
    getting [1] [2]
    setting [1] [2]
application heap zone
    See also heap zones
    defined
    getting a pointer to [1]
    initializing [1]
    maximizing size of [1] [2]
    subdividing into multiple heap zones [1]
application parameters
application partitions [1] [2]
ApplicationZone function
ApplicationZone function [1]
ApplLimit global variable [1] [2] [3]
ApplZone global variable

B

backing-store files
    defined
    volume specified in Memory control panel
backing volume. See paging device
block contents
block headers [1]
BlockMove function [1] [2]
BlockMove procedure [1] [2]
_BlockMove trap, flushing instruction cache
blocks, memory
    See also nonrelocatable blocks; relocatable blocks
    allocating [1]
    concatenating [1]
    copying [1] [2]
    defined
    how allocated
    manipulating [1]
    releasing [1]
    size correction for
Boolean operators, short-circuit [1]
BufPtr global variable [1]
    limitation on lowering during startup
bus-error vectors

C

caches. See data cache; disk cache; instruction cache
callback routines
    and code segmentation [1]
    maintaining the A5 register in [1]
click-loop routines, and the A5 register
code resources, copying into system heap
code segmenting
    and dangling pointers [1]
    effect on callback routines [1]
compacting heap zones [1]
compaction. See heap compaction
CompactMem function [1]
CompactMem function
CompactMemSys function
CompactMemSys function [1]
completion routines
    deferred under virtual memory
    maintaining the A5 register in [1]
concatenating memory blocks [1]
concurrent drivers
control action procedures, and the A5 register
control definition procedures, and the A5 register
control panels, Memory
    See Memory control panel
copy-back cache
copying memory blocks [1] [2]
CurrentA5 global variable [1] [2]
    and callback routines
    defined
    getting value [1] [2]
current heap zone
CurStackBase global variable
cushions. See memory cushions

D

dangling pointers
    avoiding [1]
    causes of [1]
    dangling procedure pointers [1]
    defined
    detecting
    introduced
    locking blocks to prevent [1]
    referencing callback routines [1]
    using local variables to prevent
data cache [1]
    and virtual memory
    defined
    flushing
DebuggerEnter procedure [1] [2]
DebuggerEnter function
DebuggerExit function
DebuggerExit procedure [1] [2]
DebuggerGetMax function [1]
DebuggerGetMax function
DebuggerLockMemory function
DebuggerLockMemory function [1]
DebuggerPoll function
DebuggerPoll procedure [1] [2]
debuggers, and virtual memory [1]
DebuggerUnlockMemory function
DebuggerUnlockMemory function [1]
_DebugUtil trap
deferred tasks, and the A5 register
DeferUserFn function
DeferUserFn function [1]
    introduced
    using [1]
dereferenced handles
DeskHook global variable
    and displaying windows during startup time
DetachResource procedure
device drivers, avoiding page faults
dialog boxes, and low-memory situations
direct memory access (DMA) [1] [2]
    and stale data
disk cache
    defined [1]
    setting with the Memory control panel
disposed handles
    checking for
    defined
    preventing dereferencing of [1]
    problems using
DisposeHandle procedure [1] [2] [3]
DisposeHandle function [1] [2]
DisposePtr function [1] [2]
DisposePtr procedure [1] [2] [3]
DMA. See direct memory access
double indirection
double page faults [1] [2]
duplicating relocatable blocks [1]

E

EmptyHandle function [1] [2]
EmptyHandle procedure [1] [2]
    used by a grow-zone function
empty handles
    checking for
    defined

F

fake handles [1] [2] [3]
    defined
    problems using [1] [2]
Finder, allocation of memory for disk copying
flag bits
    master pointer
    stripping
FlushCodeCache procedure [1]
FlushCodeCacheRange function [1]
FlushDataCache function
FlushDataCache procedure [1]
flushing
    data cache [1] [2]
    instruction cache [1] [2] [3]
FlushInstructionCache function
FlushInstructionCache procedure [1]
fragmentation. See heap fragmentation
FreeMem function [1]
FreeMem function
FreeMemSys function
FreeMemSys function [1]
free space
    assessing [1]
    assessing availability for temporary memory [1]

G

gaps in heaps, danger of
GetApplLimit function [1] [2]
GetApplLimit function [1] [2]
GetHandleSize function
GetHandleSize function [1]
GetMMUMode function [1]
GetMMUMode function
GetNextEvent function, and temporary memory
GetPageState function
GetPageState function [1]
GetPhysical function
GetPhysical function [1]
    and discontiguous physical address space
    introduced
    using [1]
GetPtrSize function [1]
GetPtrSize function
GetZone function
GetZone function [1]
global variables. See application global variables; system global variables; QuickDraw global variables
grow-zone functions [1] [2]
    and the A5 register
    defined
    finding protected block [1] [2]
    setting [1] [2]
    using SetA5 function [1] [2]
    using SetCurrentA5 function [1] [2]
GZRootHnd global variable [1] [2]
GZSaveHnd function [1] [2]
GZSaveHnd function [1] [2]

H

HandAndHand function
HandAndHand function [1]
handles
    See also relocatable blocks
    defined [1]
    recovering [1]
    relative
HandleZone function [1]
HandleZone function
HandToHand function
HandToHand function [1]
HClrRBit function
HClrRBit procedure [1]
heap compaction
    defined
    movement of relocatable blocks during
    routines for [1]
HeapEnd global variable
heap fragmentation
    causes of [1]
    defined
    during memory reservation [1]
    maximizing heap size to prevent
    preventing [1]
    summary of prevention [1]
heap purging [1]
    routines for [1]
heap. See application heap; system heap
heap zones
    See also zone headers; zone trailers
    accessing [1]
    changing [1]
    defined
    getting current zone [1]
    initializing [1]
    manipulating [1]
    organization of [1]
    subdividing into multiple heap zones [1]
HFS RAM Cache panel
HGetState function [1] [2]
HGetState function [1] [2]
high memory, allocating at startup time [1]
HLock procedure [1] [2] [3]
HLock function [1] [2]
HLockHi function [1] [2]
HLockHi procedure [1] [2]
HNoPurge function [1] [2]
HNoPurge procedure [1] [2]
holding physical memory
HoldMemory function
HoldMemory function [1]
HPurge function [1] [2]
HPurge procedure [1] [2]
HSetRBit function
HSetRBit procedure [1]
HSetState procedure [1] [2] [3]
HSetState function [1] [2]
HUnlock function [1] [2]
HUnlock procedure [1] [2]
_HWPriv trap macro

I

InitApplZone function
InitApplZone procedure [1]
initializing new heap zones within other heap zones [1]
InitZone function [1] [2]
InitZone procedure [1] [2] [3]
instruction cache
    defined
    flushing [1] [2] [3]
interprocess buffers, and temporary memory
interrupt tasks
    and Memory Manager routines [1] [2]
    and temporary memory
    deferring under virtual memory
    maintaining the A5 register [1]
interrupt time
    avoiding Memory Manager routines at [1] [2]
    deferring code execution under virtual memory
interrupts, nonmaskable
I/O completion routines, and the A5 register
ISP. See stack pointer, interrupt

J, K

jump table
jump table entries
    and stale instructions
    for callback routines

L

linked lists, allocating new elements in
loading code segments, and dangling pointers [1]
_LoadSeg trap, flushing instruction cache
locking physical memory
    debugger routine [1]
    defined
    routines for [1]
locking relocatable blocks [1] [2] [3]
LockMemoryContiguous function [1]
LockMemory function
LockMemoryContiguous function
LockMemory function [1]
    and stale data
    introduced
logical address space [1]
    possible fragmentation of
    size of with 24-bit addressing
    size of with 32-bit addressing
    translating to physical address space
logical sizes of blocks
logical-to-physical translation table. See translation table
low-memory conditions [1]
low-memory global variables
    See system global variables

M

master pointer blocks
master pointer flag bits
master pointers
    allocating manually [1] [2]
    comparing
    defined
    determining how many to preallocate [1]
    number per block in application zone
    running out of
MaxApplZone function [1] [2]
MaxApplZone procedure [1] [2]
    and ApplLimit global variable
    and heap fragmentation
    automatic execution of [1] [2]
MaxBlock function [1]
MaxBlock function
MaxBlockSys function
MaxBlockSys function [1]
maximizing heap zone space [1]
MaxMem function [1]
MaxMem function
MaxMemSys function
MaxMemSys function [1]
MC680x0 microprocessor
    data cache
    instruction cache
    size of memory blocks with
MemErr global variable [1] [2]
MemError function [1] [2] [3] [4]
memory
    See also temporary memory; virtual memory
    allocating and releasing [1] [2]
    allocating during startup [1]
    assessing [1]
    changing sizes of blocks [1]
    freeing [1]
    holding
    organization of [1] [2]
    releasing
memory addresses
    comparing
    converting to 32-bit mode [1] [2]
    mapping logical to physical [1]
    stripping flag bits from [1] [2]
    translating [1] [2]
memory-block record
memory blocks. See blocks, memory
memory configuration, obtaining information about
Memory control panel [1] [2]
    addressing mode controls
    disk cache controls
    illustrated
    introduced
    RAM disk controls
    virtual memory controls
memory cushions
    defined
    determining optimal size of
    maintaining [1]
_MemoryDispatch trap macro
_MemoryDispatchA0Result trap macro
memory management unit (MMU)
Memory Manager [1]
    24-bit
    32-bit
    allocating master pointers
    and application heap [1]
    application-defined routines [1]
    calling grow-zone function
    capabilities of
    compacting heap [1]
    data types [1] [2]
    defined
    movement of blocks by
    purging heap [1]
    reserving memory [1] [2]
    returning result codes [1] [2] [3] [4]
    routines [1]
    testing for features [1]
memory reservation. See reserving memory
memory reserves
    benefits of
    defined
    maintaining [1]
MemTop global variable [1] [2]
menu definition procedures, and the A5 register
MMU (memory management unit)
MoreMasters procedure [1] [2]
MoreMasters function [1] [2]
MoveHHi function [1] [2]
MoveHHi procedure [1] [2]
moving relocatable blocks high [1] [2]
multiple heap zones
    implementing [1]
    uses for [1]

N

NewEmptyHandle function [1]
NewEmptyHandle function
NewEmptyHandleSys function
NewEmptyHandleSys function [1]
NewHandle function [1] [2]
NewHandle function [1] [2]
NewHandleClear function [1] [2]
NewHandleClear function [1] [2]
NewHandleSys function [1]
NewHandleSys function
NewHandleSysClear function
NewHandleSysClear function [1]
NewPtr function [1] [2]
NewPtr function [1] [2]
NewPtrClear function [1] [2]
NewPtrClear function [1] [2]
NewPtrSys function [1]
NewPtrSys function
NewPtrSysClear function
NewPtrSysClear function [1]
nonessential memory requests, checking whether to satisfy
nonmaskable interrupts
nonrelocatable blocks
    See also blocks, memory
    advantages of [1]
    allocating [1] [2] [3]
    allocating temporarily
    defined
    disposal and reallocation of [1]
    releasing [1] [2]
    sizing [1]
    when to allocate [1]
Notification Manager, and the A5 world
notification response procedures, and the A5 register

O

OpenResFile function, calling StripAddress on filenames
OpenRFPerm function, calling StripAddress on filenames
operating system queues, storing elements in system heap zone
ordered address comparisons
original application heap zone
_OSDispatch trap macro

P

Paged Memory Management Unit (PMMU)
PageFaultFatal function
PageFaultFatal function [1]
page faults
    See also double page faults
    defined
    handling
    intercepted by Virtual Memory Manager [1] [2]
    protection against [1] [2]
pages, memory
    defined
    holding
    locking
    locking contiguously
    releasing
    unlocking
paging
paging device
partitions
    See also application partitions; system partition
patches, and stale instructions
physical address space [1]
    discontiguous
physical memory [1]
    holding pages in [1]
    locking pages in [1]
    releasing pages
    unlocking pages
physical sizes of blocks
PMMU (Paged Memory Management Unit)
pointers [1]
    See also nonrelocatable blocks; dangling pointers
Process Manager, and callback routines
processor caches [1]
    See also data cache; instruction cache
ProcPtr data type
ProcPtr data type [1]
    and code segmentation [1]
program counter, fixing before switching to 32-bit mode
protected blocks
    defined
    determining which they are [1] [2]
    handle to returned by GZSaveHnd [1] [2]
PtrAndHand function [1]
PtrAndHand function
PtrToHand function
PtrToHand function [1]
PtrToXHand function [1]
PtrToXHand function
PtrZone function
PtrZone function [1]
purge-warning procedures [1] [2]
    defined
    installed by SetResPurge
    restrictions on
    sample
    using SetA5 function
    using SetCurrentA5 function
PurgeMem procedure [1]
PurgeMem function
PurgeMemSys function
PurgeMemSys procedure [1]
PurgeSpace function [1] [2]
PurgeSpace procedure [1] [2]
purging heap zones [1] [2]
purging relocatable blocks [1]

Q

QuickDraw global variables
    defined
    reading in stand-alone code [1]
    using in stand-alone code [1]

R

RAM cache. See disk cache
RAM disks
    defined
    setting size of with Memory control panel
_Read trap, flushing instruction cache
ReallocateHandle function [1] [2]
ReallocateHandle procedure [1] [2]
reallocating relocatable blocks [1]
RecoverHandle function
RecoverHandle function [1]
relative handles
releasing held pages
relocatable blocks
    See also blocks, memory; handles
    allocating [1] [2]
    changing properties [1] [2]
    clearing resource bit [1]
    concatenating [1]
    defined
    disadvantages of [1]
    duplicating [1]
    emptying [1] [2]
    getting properties [1] [2]
    in bottom of heap zone
    locking [1] [2] [3]
      for long periods of time
      for short periods of time
    making purgeable [1] [2]
    making unpurgeable [1] [2]
    managing [1] [2]
    master pointers after disposing
    master pointers for
    moving around nonrelocatable blocks
    moving high [1] [2]
    properties of [1]
    purging [1]
    reallocating [1] [2] [3]
    releasing [1] [2]
    restrictions on locked blocks
    setting properties [1] [2]
    setting resource bit [1]
    sizing [1]
      movement during
    unlocking [1] [2] [3]
    when to lock
removable disks, and virtual memory
ReserveMem procedure [1] [2]
ReserveMem function [1] [2]
ReserveMemSys function
ReserveMemSys procedure [1]
reserves. See memory reserves
reserving memory [1]
    and heap fragmentation [1]
    defined
    for relocatable blocks
    limitation of [1]
    routines [1]
resource bit
    clearing [1]
    setting [1]
Resource Manager, installing purge-warning procedures
resource types
    'SIZE'
    'sysz'
result codes for Memory Manager routines [1] [2] [3] [4]

S

self-modifying code, and stale instructions
SetA5 function [1] [2]
SetA5 function [1] [2]
    used in a grow-zone function [1] [2]
    used in a purge-warning procedure
SetApplBase function
SetApplBase procedure [1]
SetApplLimit function [1] [2]
SetApplLimit procedure [1] [2]
    using to increase size of stack [1]
SetCurrentA5 function [1] [2]
SetCurrentA5 function [1] [2]
    used in a grow-zone function [1] [2]
    used in a purge-warning procedure
SetGrowZone procedure [1] [2] [3] [4]
SetGrowZone function [1] [2]
SetHandleSize function
SetHandleSize procedure [1]
SetPtrSize function
SetPtrSize procedure [1]
SetResPurge procedure, installing purge-warning procedures
SetZone function
SetZone procedure [1]
short-circuit Boolean operators [1]
size correction for blocks
Size data type
Size data type
'SIZE' resource type, specifying partition size
slot-based VBL tasks, deferred under virtual memory
stack
    collisions with the heap
    default size of
    defined
    determining available space
    increasing size of [1]
stack frame
stack pointer
    interrupt (ISP)
    user (USP)
stack sniffer
StackSpace function
StackSpace function [1]
stale data
    avoiding problems with
    defined
stale instructions
    avoiding problems with
    defined
stand-alone code resources, changing address-translation mode in [1]
startup process
    allocating memory during [1]
    displaying windows during
StripAddress function
StripAddress function [1]
supervisor mode
SwapDataCache function [1]
SwapDataCache function
SwapInstructionCache function
SwapInstructionCache function [1]
SwapMMUMode function
SwapMMUMode procedure [1]
    calling from stand-alone code [1]
SysEqu.p interface file
system extensions, allocating memory at startup time
system global variables
    changing
    defined [1] [2]
    reading [1]
    uses of [1]
system heap [1]
    defined
    held in RAM under virtual memory
system heap zone
    allocating memory in
    creating new heap zones within
    defined
    getting a pointer to [1]
    installing interrupt code into [1]
    uses for
system partition [1]
    See also system heap; system global variables
SystemZone function
SystemZone function [1]
SysZone global variable
'sysz' resource type

T

tag bytes
TempFreeMem function [1]
TempFreeMem function
TempMaxMem function
TempMaxMem function [1]
TempNewHandle function
TempNewHandle function [1]
temporary memory
    allocating [1]
    confirming success of allocation
    defined [1] [2]
    determining zone of
    limitation on locking
    operating on blocks
    optimal usage of
    release of during application termination
    routines [1]
    testing for features of [1]
    tracking of
    using as a heap zone
TheZone global variable
32-bit addressing [1] [2]
    defined
    machines that support
    setting with the Memory control panel
    using temporarily
32-bit cleanTHz data type
Time Manager tasks
    and the A5 register
    deferred under virtual memory
TopMem function
TopMem function [1]
Translate24To32 function
Translate24To32 function [1]
translating logical to physical addresses [1] [2]
translation tables
trap patches, and the A5 register
24-bit addressing [1] [2]
    defined
    setting with the Memory control panel
    stripping flag bits [1]

U

UnholdMemory function
UnholdMemory function [1]
_UnloadSeg trap, flushing instruction cache
unlocking physical memory [1] [2]
    debugger routine [1]
unlocking relocatable blocks [1] [2] [3]
UnlockMemory function
UnlockMemory function [1]
updating windows, saving memory space for
USP. See stack pointer, user

V

VBL tasks
    and the A5 register
    deferred under virtual memory
Vector Base Register (VBR)
virtual memory
    and AppleShare volumes
    and removable disks
    and user interrupts
    backing-store file
    bus-error vectors under
    CPU data caching
    debugger routines [1]
    debugger support for [1]
    deferring interrupt code execution
    introduced
    management routines [1]
    mapping information, getting [1]
    requirements for running
    setting with the Memory control panel
    testing for availability [1]
Virtual Memory Manager [1]
    See also virtual memory
    data structures [1]
    defined [1]
    routines [1]

W, X, Y

WaitNextEvent function, and temporary memory
window definition procedures, and the A5 register
WITH statement (Pascal), and dangling pointers
word-break routines, and the A5 register
write-through cache

Z

zero (memory location)
    See 0 (memory location)
zero-length handles
    See 0-length handles
zone headers [1]
zone pointers
zone records [1]
zone trailer blocks
zone trailers

Previous Book Contents Book Index Next

© Apple Computer, Inc.
3 JUL 1996