StorageTraps.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Paul Rovner, October 19, 1983 10:41 am
Richard Koo, July 2, 1984 4:12:07 pm PDT
Russ Atkinson (RRA) February 1, 1985 12:50:01 pm PST
Beach, February 22, 1985 2:55:11 pm PST
Doug Wyatt, February 24, 1985 9:55:05 pm PST
DIRECTORY
Allocator USING [NHeaderP],
Collector USING [Disposition],
SafeStorage USING [Type],
RTTypesBasicPrivate USING [TMapStiStd, TMapTiTd],
ZCT USING [ZeroCountTable];
StorageTraps: DEFINITIONS
= BEGIN
Reference counting ...
from AllocatorImpl
FreeTrap: PROC[nhp: Allocator.NHeaderP] RETURNS[success: BOOL];
AllocateTrap: PROC[size: CARDINAL, type: SafeStorage.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: SafeStorage.Type, nwords: CARDINAL];
AssignCompositeNew: PROC[rhs, lhs: LONG POINTER, type: SafeStorage.Type,
nwords: CARDINAL];
WITH refAny SELECT FROM ..., NARROWing of REF ANY ...
GetCanonicalReferentTypeTrap:
PROC[ref:
REF
ANY]
RETURNS[type: SafeStorage.Type];
from AllocatorImpl
this is the same as SafeStorage.GetCanonicalReferentType
GetCanonicalReferentTypeSDTrap: PROC[ref: REF ANY] RETURNS[type: SafeStorage.Type];
CheckForNarrowRefFault:
PROC[ref:
REF
ANY, targetType: SafeStorage.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.