StorageTraps.Mesa
last edited October 19, 1983 10:41 am by Paul Rovner
last edited July 2, 1984 4:12:07 pm PDT by Richard Koo
DIRECTORY
Allocator USING[NHeaderP],
Collector USING[Disposition],
SafeStorage USING[Type],
RTTypesBasicPrivate USING[TMapStiStd, TMapTiTd],
ZCT USING[ZeroCountTable];
Reference counting
from AllocatorImpl
FreeTrap: PROC[nhp: Allocator.NHeaderP] RETURNS[success: BOOL];
AllocateTrap: PROC[size: CARDINAL, type: Type] RETURNS[REF];
from ZCTImpl
AssignRefTrap: PROC[refNew: REF, ptrRef: LONG POINTER TO REF];
DisableMicrocodeTrap: PROC[zct: ZCT.ZeroCountTable];
EnableMicrocodeTrap:
PROC[zct: ZCT.ZeroCountTable] RETURNS[ucVersion: NAT ← 0];
ReclaimableRefTrap: PROC[nhp: Allocator.NHeaderP] RETURNS[Collector.Disposition];
ReclaimedRefTrap: PROC[ref: REF ANY] RETURNS[REF ANY];
CreateRefTrap: PROC[nhp: Allocator.NHeaderP];
The 2 fns below are exported by RCMapWalkerImpl to RTTypesBasicPrivate. They are not included here to avoid cloning RCMapWalkerImpl for NewSafeStorage
AssignComposite: PROC[rhs, lhs: LONG POINTER, type: Type, nwords: CARDINAL];
AssignCompositeNew:
PROC[rhs, lhs: LONG POINTER, type: Type, nwords: CARDINAL];
WITH refAny SELECT FROM ..., NARROWing of REF ANY
GetCanonicalReferentTypeTrap:
PROC[ref:
REF
ANY]
RETURNS[type: Type];
from AllocatorImpl
this is the same as SafeStorage.GetCanonicalReferentType
GetCanonicalReferentTypeSDTrap: PROC[ref: REF ANY] RETURNS[type: Type];
CheckForNarrowRefFault:
PROC[ref:
REF
ANY, targetType: Type]
RETURNS[
REF
ANY];
from TypesBasicImpl
RaiseNarrowFault: PROC; -- from StorageTrapsImpl
Enable CoCedar to find symbols for Types
MapStiStd: RTTypesBasicPrivate.TMapStiStd;
from TypesBasicImpl. Stuffed into SD first by StorageTrapsImpl and later by SymbolAccessImpl
MapTiTd: RTTypesBasicPrivate.TMapTiTd;
from TypesBasicImpl. Stuffed into SD by StorageTrapsImpl.