-- file RTSD.mesa
  -- last modified by Willie-Sue on January 29, 1981  5:25 PM 
  -- last modified by Satterthwaite on August 17, 1982 12:00 pm 
  -- last modified by Paul Rovner on June 8, 1982 2:51 pm 

-- NOTE the compiler and the microcode depend on this, so BEWARE of changing it

DIRECTORY
  SDDefs: TYPE USING [SD];

RTSD: DEFINITIONS = {

 -- the "system data vector"
  SD: POINTER TO ARRAY [0..0) OF UNSPECIFIED = SDDefs.SD;


-- locations 150b thru 207b in SD are for Cedar entries (listed herein)  

  sFirstCedarFree: CARDINAL = 204b;

        -- AssignRefTrap: PROC, for AssignRef: PROC[refNew: REF ANY, ptrRef: Pointer];
  sAssignRefTrap: CARDINAL = 151b;

        -- AssignRefNewTrap: PROC, for AssignRefNew: PROC[refNew: REF ANY, ptrRef: Pointer];
  sAssignRefNewTrap: CARDINAL = 152b;

        -- PutRefTrap: PROC, for PutRef: PROC[ptrRef: Pointer, refNew: REF ANY, offset: BYTE];
  sPutRefTrap: CARDINAL = 202b;

        -- PutRefNewTrap: PROC, for PutRefNew: PROC[ptrRef: Pointer, refNew: REF ANY, offset: BYTE];
  sPutRefNewTrap: CARDINAL = 203b;

        -- CedarFork: PROC; write around of Pilot's FORK, to register the process
  sFork: CARDINAL = 153b;

        -- ProcCheck: PROC[proc: PROC ANY RETURNS ANY]
	--      RETURNS[PROC ANY RETURNS ANY];
	--check for assignment of nested procs out of scope
  sProcCheck: CARDINAL = 154b;

        -- CheckForNarrowRefFault: PROC[ref: REF ANY] RETURNS[REF ANY];
  sCheckForNarrowRefFault: CARDINAL = 155b;

        -- GetCanonicalReferentTypeD0Trap: PROC (implicit) [ref: REF ANY] RETURNS[Type];
  sGetCanonicalReferentTypeD0Trap: CARDINAL = 156b;

        -- RaiseNarrowFault: PROC;
  sRaiseNarrowFault: CARDINAL = 157b;

        -- LoaderAdjunct: PROC[bcd: BcdOps.BcdBase,
        --                     map: PilotLoadStateOps.Map,
        --                     binding: PilotLoaderOps.Binding,
        --                     fl: PilotLoaderOps.FrameList];
  sLoaderAdjunct: CARDINAL = 160b;

        -- RTState: LONG POINTER TO RTRefCounts.AGCState;
  sRTState: CARDINAL = 161b;  -- also 162b

        -- AssignComposite: PROC[rhs, lhs: Pointer, type: Type, nwords: CARDINAL];
  sAssignComposite: CARDINAL = 174b;

        -- AssignCompositeNew:
        --           PROC[rhs, lhs: Pointer, type: Type, nwords: CARDINAL];
  sAssignCompositeNew: CARDINAL = 176b;

        -- GetCanonicalProcType: PROC[proc: PROC ANY RETURNS ANY] RETURNS[Type];
  sGetCanonicalProcType: CARDINAL = 163b;

        -- GetCanonicalSignalType: PROC[sig: SIGNAL ANY RETURNS ANY] RETURNS[Type];
  sGetCanonicalSignalType: CARDINAL = 164b;

        -- GetCanonicalReferentType: PROC[ref: REF ANY] RETURNS[Type];
  sGetCanonicalReferentType: CARDINAL = 165b;

        -- The SystemZone. Collectible, prefixed, in RootBase
  sSystemZone: CARDINAL = 166b;  -- also 167b

        -- CREATEOutOfOverflowTable: PROC[ref: REF ANY, npr: CARDINAL];
  sCREATEOutOfOverflowTable: CARDINAL = 170b;

        -- ClobberedOverflowTable: PROC;
  sClobberedOverflowTable: CARDINAL = 171b;

        -- GetCanonicalReferentTypeTrap: PROC (implicit [ref: REF ANY] RETURNS[Type]);
  sGetCanonicalReferentTypeTrap: CARDINAL = 172b;

        -- FreeCollectibleObject: PROC[refObj: REF ANY]; 
  sFreeCollectibleObject: CARDINAL = 173b;

        -- ASSIGNOutOfOverflowTable: PROC[ref: REF ANY, ptrRef: LONG POINTER TO REF, who: CARDINAL]; 
  sASSIGNOutOfOverflowTable: CARDINAL = 175b;

        -- ALTERCOUNTOutOfOverflowTable: PROC; 
  sALTERCOUNTOutOfOverflowTable: CARDINAL = 177b;

        -- AllocateQuantizedNodeTrap: (implicit)
  -- PROC[zn:PRealZone, size: CARDINAL, type: Type] RETURNS[Pointer];  
  sAllocateQuantizedNodeTrap: CARDINAL = 200b;

        -- AllocateHeapNodeTrap: (implicit)
  -- PROC[zn:PRealZone, size: CARDINAL, type: Type] RETURNS[Pointer];  
  sAllocateHeapNodeTrap: CARDINAL = 201b;

  }.