StorageTraps.Mesa
last edited October 19, 1983 10:41 am by Paul Rovner
DIRECTORY
Allocator USING[NHeaderP],
Collector USING[Disposition],
SafeStorage USING[Type],
RTTypesBasicPrivate USING[TMapStiStd, TMapTiTd],
ZCT USING[ZeroCountTable];
StorageTraps: DEFINITIONS
= BEGIN OPEN SafeStorage;
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
Safe language runtime check for offstack assignment of inner procedure descriptors
ProcCheck: PROC[proc: PROC ANY RETURNS ANY] RETURNS[PROC ANY RETURNS ANY];
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.
END.