RTSD.mesa
last modified by Willie-Sue on January 29, 1981 5:25 PM
last modified by Satterthwaite on 13-Jan-82 15:05:49
last modified by Paul Rovner on May 11, 1983 12:24 pm
NOTE the compiler, the CedarRuntime software and the CedarRuntime microcode depend on this, so BEWARE of changing it
Except for the following, all items below are stuffed into SD by START code in SSTrapsImpl:
sGetCanonicalProcType  stuffed into SD by AMFrameBridgeImpl
sGetCanonicalSignalType stuffed into SD by AMFrameBridgeImpl
sSystemZone     stuffed into SD by RTZonesImpl
RTSD: DEFINITIONS = {
locations 150b thru 207b in SD are for Cedar entries (listed herein)
sFirstCedarFree: CARDINAL = 204b;
156b, 160b, 170b, 172b 173b, 175b and 177b are unused.
205b, 206b and 207b are used by Birrell for his freezer and freezee (CoCedar support).
PROC[refNew: REF ANY, ptrRef: Pointer];
supports a compiler option for refcounting thru SD rather than opcode
sAssignRefTrap: CARDINAL = 151b;
PROC[refNew: REF ANY, ptrRef: Pointer];
supports a compiler option for refcounting thru SD rather than opcode
sAssignRefNewTrap: CARDINAL = 152b;
PROC[proc: PROC ANY RETURNS ANY] RETURNS[PROC ANY RETURNS ANY];
check for assignment of nested procs out of scope
sProcCheck: CARDINAL = 154b;
PROC[ref: REF ANY, targetType: Type] RETURNS[REF ANY];
Raises SafeStorage.NarrowRefFault unless ref=NIL, in which case it returns NIL
sCheckForNarrowRefFault: CARDINAL = 155b;
PROC;
Unconditionally raises SafeStorage.NarrowFault
sRaiseNarrowFault: CARDINAL = 157b;
LONG POINTER TO RTRefCounts.AGCState;
Root of the SafeStorage runtime data structure. used by CoCedar (remotely)
sGCState: CARDINAL = 161b; -- also 162b
PROC[proc: PROC ANY RETURNS ANY] RETURNS[Type];
Supports NARROW; uses the Abstract Machine
sGetCanonicalProcType: CARDINAL = 163b;
PROC[sig: SIGNAL ANY RETURNS ANY] RETURNS[Type];
Supports NARROW; uses the Abstract Machine
sGetCanonicalSignalType: CARDINAL = 164b;
PROC[ref: REF ANY] RETURNS[Type];
supports a compiler option for NARROWing REFs thru SD rather than opcode
sGetCanonicalReferentType: CARDINAL = 165b;
ZONE.
The default ZONE arg to bare NEW
sSystemZone: CARDINAL = 166b; -- also 167b
PROC[rhs, lhs: Pointer, type: Type, nwords: CARDINAL];
(Compiler) Supports composite statement
sAssignComposite: CARDINAL = 174b;
PROC[rhs, lhs: Pointer, type: Type, nwords: CARDINAL];
(Compiler) Supports composite statement
sAssignCompositeNew: CARDINAL = 176b;
PROC;
sClobberedOverflowTable: CARDINAL = 171b;
PROC[zn: PRealZone, size: CARDINAL, type: Type] RETURNS[Pointer];
Resort to software when the (partially) microcoded allocator can't hack it.
sAllocateHeapNodeTrap: CARDINAL = 201b;
RTTypesBasicPrivate.TMapStiStd
Root of symbol access stuff. Used by CoCedar (remotely)
sMapStiStd: CARDINAL = 202b; -- also 203b
}.