RTMob.mesa
Copyright Ó 1985, 1986, 1987, 1991 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) October 12, 1987 7:04:48 pm PDT
Satterthwaite June 3, 1986 10:57:42 am PDT
DIRECTORY
MobDefs USING [SGIndex, RefLitIndex, TypeIndex, VersionStamp],
RCMap USING [Base, Index],
Symbols USING [SEIndex];
RTMob: DEFINITIONS = {
Mob extensions for RT info
VersionID: CARD = 03122;
rt segment headers
RTHeader: TYPE = MACHINE DEPENDENT RECORD [
versionIdent: CARD ¬ VersionID,
refLitTable: RTBase RELATIVE LONG POINTER TO RefLitList,
litBase: RTBase RELATIVE LONG POINTER, -- to uninterpreted words
litLength: INT,
rcMapBase: RTBase RELATIVE RCMap.Base,
rcMapLength: INT,
stampTable: RTBase RELATIVE LONG POINTER TO StampList,
typeTable: RTBase RELATIVE LONG POINTER TO TypeList];
RTBase: TYPE = LONG BASE POINTER TO RTHeader;
REFs to literals and ATOMs
RefLitIndex: TYPE = MobDefs.RefLitIndex;
RefLitItem: TYPE = MACHINE DEPENDENT RECORD [
referentType: TypeIndex,
offset: INT,
length: INT
];
RefLitList: TYPE = MACHINE DEPENDENT RECORD [
pad: CARD16 ¬ 0,
elems: SEQUENCE length: CARD16 OF RefLitItem];
types
TypeIndex: TYPE = MobDefs.TypeIndex;
TypeItem: TYPE = MACHINE DEPENDENT RECORD [
table: MobDefs.SGIndex,
sei: Symbols.SEIndex,
canonical: BOOLEAN,
pad1: NAT15 ¬ 0,
pad2: CARD16 ¬ 0,
ct: CTInfo,
ut: UTInfo,
rcMap: RCMap.Index];
TypeList: TYPE = MACHINE DEPENDENT RECORD [
pad: CARD16 ¬ 0,
elems: SEQUENCE length: CARD16 OF TypeItem];
auxiliary type info
CTInfo: TYPE = MACHINE DEPENDENT RECORD [index: INT];
offset of string from litBase
StampList: TYPE = MACHINE DEPENDENT RECORD [
pad: CARD16 ¬ 0,
elems: SEQUENCE limit: [1..CARD16.LAST] OF MobDefs.VersionStamp];
StampIndex: TYPE = MACHINE DEPENDENT RECORD [INT]; -- index in StampList
AnyStamp: StampIndex = [0];
UTInfo: TYPE = MACHINE DEPENDENT RECORD [
version: StampIndex, -- AnyStamp => sei good in any table
sei: Symbols.SEIndex];
}.