[ivy]<Satterthwaite>CrossCompiler>tRTSD.mesa!1

RTSD.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Willie-Sue on January 29, 1981 5:25 PM
Satterthwaite on 13-Jan-82 15:05:49
Rovner on May 11, 1983 12:24 pm
Russ Atkinson (RRA) January 31, 1985 12:49:22 pm PST
Satterthwaite November 26, 1985 4:28:50 pm PST
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;
153b, 156b, 160b, 170b, 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[ptrRef: REF ANY, refNew: Pointer, offset: BYTE];
supports a compiler option for refcounting thru SD rather than opcode
sPutRefTrap: CARDINAL = 172b;
PROC[ptrRef: REF ANY, refNew: Pointer, offset: BYTE];
supports a compiler option for refcounting thru SD rather than opcode
sPutRefNewTrap: CARDINAL = 173b;
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
}.