DIRECTORY BasicTime USING [GMT, nullGMT], BcdDefs USING [BcdBase, CTHandle, FPHandle, FTIndex, ModuleIndex, MTHandle, NameRecord, SPHandle], BootFile USING [Header], BootStartList USING [Header, Base, StateVectorCounts], IO USING [STREAM], MBVM USING [Base, BIndex, CodeSeg, DataSeg, FileSeg, Links, nullIndex, Pages, Segs], PrincOps USING [ControlLink, FrameSizeIndex, GlobalFrameHandle, PageNumber], Rope USING [ROPE]; MB: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Handle: TYPE = REF Object; Object: TYPE = RECORD [ input, output, etherOutput, loadmapName: ROPE _ NIL, buildTime: BasicTime.GMT _ BasicTime.nullGMT, typescript, loadmap: IO.STREAM _ NIL, debug, germ, etherFormat, hexLoadmap: BOOL _ FALSE, inputBCDs: REF InputBCDs _ NIL, lsseg: MBVM.DataSeg _ NIL, -- loadstate's MBVM segment bootHeader: REF BootFile.Header _ NIL, bootStream: IO.STREAM _ NIL, header: REF BootStartList.Header _ NIL, -- header portion of start list in MakeBoot's VM scriptBase: BootStartList.Base _ NIL, -- entire start list in MakeBoot's VM scriptBaseInVM: BootStartList.Base _ NIL, -- entire start list in target VM nProcesses, framePages, pdaPages, svSize, gftLength: CARDINAL _ 0, mdsBase, codeBase: MBVM.Base _ 0, vmMap: BitArray _ NIL, lastVMPage: MBVM.Base _ 0, nModules, nGFIs, nFilePages, nResidentPages, nBootLoadedPages: CARDINAL _ 0, stateVectorCounts: BootStartList.StateVectorCounts _ ALL[0] ]; BIndex: TYPE = MBVM.BIndex; nullIndex: BIndex = MBVM.nullIndex; BCount: TYPE = [0..LAST[BIndex]-1+1]; InputBCDs: TYPE = RECORD[ nBcds: BCount _ 0, bcds: SEQUENCE length: BCount OF BHandle _ NULL ]; BHandle: TYPE = REF BObject; BObject: TYPE = RECORD [ name: ROPE, -- name as presented in command input, extension guaranteed bcd: BcdDefs.BcdBase, -- in MakeBoot's address space pages: MBVM.Pages, -- in MakeBoot's address space bcdSeg: MBVM.FileSeg, -- in boot file's address space mt: MT, gfiOffset: CARDINAL, files: FileList ]; FileList: TYPE = LIST OF BcdDefs.FTIndex; MT: TYPE = REF ModuleInfoSequence; ModuleInfoSequence: TYPE = RECORD [ SEQUENCE length: BcdDefs.ModuleIndex OF ModuleInfo ]; ModuleInfo: TYPE = RECORD [ mth: BcdDefs.MTHandle, frame: PrincOps.GlobalFrameHandle, code: MBVM.CodeSeg, codeLinks: MBVM.Links ]; BitArray: TYPE = REF BitArrayObject; BitArrayObject: TYPE = RECORD [PACKED SEQUENCE length: CARDINAL OF BOOL]; InitDebug: PROC [h: Handle]; FinishDebug: PROC; DumpSegs: PROC [segs: MBVM.Segs, msg: ROPE]; DumpFrames: PROC; DumpInputBcds: PROC; DumpBootHeader: PROC; DumpStartList: PROC; MakeBootVersion: PROC RETURNS [ROPE]; InitLoader: PROC [h: Handle]; FinishLoader: PROC; Load: PROC; Alloc: UNSAFE PROC [fsi: CARDINAL] RETURNS [p: POINTER]; -- not really UNSAFE AllocFault: ERROR; InitLoadmap: PROC [h: Handle]; FinishLoadmap: PROC; OpenLoadmap: PROC; InitMain: PROC [h: Handle]; FinishMain: PROC; Abort: SIGNAL; Error: PROC [msg: ROPE]; InitMemory: PROC; TurnOffStartTrap: PROC; StartControlLink: PROC RETURNS [PrincOps.ControlLink]; GetFrameWeight: PROC [index: PrincOps.FrameSizeIndex] RETURNS [weight: CARDINAL]; SetFrameWeight: PROC [index: PrincOps.FrameSizeIndex, weight: CARDINAL]; GetFsiChain: PROC [index: PrincOps.FrameSizeIndex] RETURNS [fsiNext: PrincOps.FrameSizeIndex]; SetFsiChain: PROC [index: PrincOps.FrameSizeIndex, fsiNext: PrincOps.FrameSizeIndex]; AllocateFrames: UNSAFE PROC [size: CARDINAL, single, resident: BOOL] RETURNS [frames: POINTER, inFrameHeap: BOOL]; -- not really UNSAFE ReportFrameAllocation: PROC; InitOutput: PROC [h: Handle]; FinishOutput: PROC; PreScanSegsForOutput: PROC [segs: MBVM.Segs] RETURNS [lastBootedPage: PrincOps.PageNumber]; WriteBootFile: PROC; WriteGermFile: PROC; ListType: TYPE = {resident, resDesc, in}; InitParse: PROC [h: Handle]; FinishParse: PROC; ProcessInput: PROC [file: ROPE]; EchoInput: PROC; WartFrame: PROC RETURNS [PrincOps.GlobalFrameHandle]; EnumerateCode: PROC [ state: ListType, proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateFramePacks: PROC [ state: ListType, proc: PROC [bh: BHandle, fph: BcdDefs.FPHandle] RETURNS [BOOL]]; EnumerateSpaces: PROC [ state: ListType, proc: PROC [bh: BHandle, sph: BcdDefs.SPHandle, index: CARDINAL] RETURNS [BOOL]]; EnumerateGlobalFrames: PROC [ state: ListType, proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateBCDs: PROC [ state: ListType, proc: PROC [bh: BHandle] RETURNS [BOOLEAN]]; EnumerateNoTrapModules: PROC [ proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateControlList: PROC [ proc: PROC [bh: BHandle, cth: BcdDefs.CTHandle] RETURNS [BOOL]]; InitScript: PROC [h: Handle]; FinishScript: PROC; MakeScript: PROC; InitUtilities: PROC [h: Handle]; FinishUtilities: PROC; NameToG: PROC [name: ROPE] RETURNS [PrincOps.GlobalFrameHandle]; NameToMTHandle: PROC [name: ROPE] RETURNS [bh: BHandle, mth: BcdDefs.MTHandle]; NameToFPHandle: PROC [name: ROPE] RETURNS [bh: BHandle, fph: BcdDefs.FPHandle]; NameToSPHandle: PROC [name: ROPE] RETURNS [bh: BHandle, sph: BcdDefs.SPHandle, index: CARDINAL]; NameToCTHandle: PROC [name: ROPE] RETURNS [bh: BHandle, cth: BcdDefs.CTHandle]; InstanceToMTHandle: PROC [module, instance: ROPE] RETURNS [bh: BHandle, mth: BcdDefs.MTHandle]; RopeForFTI: PROC [bcd: BcdDefs.BcdBase, fti: BcdDefs.FTIndex] RETURNS [ROPE]; RopeForNameRecord: PROC [bcd: BcdDefs.BcdBase, name: BcdDefs.NameRecord] RETURNS [ROPE]; DoAllModules: PROC [PROC [BHandle, BcdDefs.MTHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllSpaces: PROC [PROC [BHandle, BcdDefs.SPHandle, CARDINAL] RETURNS [BOOL]] RETURNS [BOOL]; DoAllFramePacks: PROC [PROC [BHandle, BcdDefs.FPHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllBCDs: PROC [PROC [BHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllTopLevelConfigs: PROC [proc: PROC [BHandle, BcdDefs.CTHandle] RETURNS [BOOL]] RETURNS [BOOL]; SetConfig: PROC [name: ROPE]; ResetConfig: PROC; VirtualGlobalFrame: PROC [PrincOps.GlobalFrameHandle] RETURNS [PrincOps.GlobalFrameHandle]; InitCache: PROC [h: Handle]; FinishCache: PROC; InitVM: PROC [h: Handle]; FinishVM: PROC; END. šMB.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Sandman on 6-Aug-81 16:06:17 Lewis on 17-Sep-81 14:54:32 Levin on January 12, 1984 1:27 pm Russ Atkinson on March 8, 1985 4:58:29 pm PST Types and Related Declarations From MBDebug From MBDriver From MBLoader and friends From MBLoadmap From MBMain From MBOutput From MBParse From MBScript From MBUtilities From MBVMemory and MBCache Κ ˜codešœ™Kšœ Οmœ1™˜LKšœžœžœ˜K˜—Kšžœžœž œ˜K˜Kšž˜K˜Kšœ™K˜K˜Kšžœžœžœ˜K˜Kšœžœžœ˜šœžœžœ˜Kšœ)žœžœ˜4Kšœžœ˜-Kšœžœžœžœ˜%Kšœ&žœžœ˜3Kšœ žœ žœ˜Kšœžœ žœΟc˜7Kšœ žœžœ˜&Kšœ žœžœžœ˜KšœžœžœŸ0˜YKšœ!žœŸ%˜LKšœ%žœŸ!˜LKšœ5žœ˜BKšœžœ ˜!Kšœžœ˜Kšœ žœ ˜Kšœ?žœ˜LKšœ5žœ˜;K˜K˜—Kšœžœžœ˜Kšœžœ ˜#K˜Kšœžœžœ˜%šœ žœžœ˜K˜Kšœžœžœ ž˜/Kšœ˜K˜—Kšœ žœžœ ˜šœ žœžœ˜KšœžœŸ<˜IKšœŸ˜5Kšœžœ Ÿ˜2Kšœžœ Ÿ˜6Kšœžœ˜Kšœ žœ˜Kšœ˜K˜K˜—šœ žœžœžœ˜)K˜—Kšžœžœžœ˜"šœžœžœ˜#Kšžœžœ ˜2Kšœ˜—šœ žœžœ˜K˜K˜"Kšœžœ ˜Kšœ žœ˜Kšœ˜K˜—Kšœ žœžœ˜$Kšœžœžœžœžœ žœžœžœ˜IK˜K˜šœ ™ K˜KšΟn œžœ ˜Kš  œžœ˜K˜Kš œžœžœ žœ˜,Kš  œžœ˜Kš  œžœ˜Kš œžœ˜Kš  œžœ˜—K˜Kšœ ™ ˜Kš œžœžœžœ˜%—K˜Kšœ™˜Kš  œžœ ˜Kš  œžœ˜K˜Kš œžœ˜ K˜Kš  œžœžœžœžœžœŸ˜NKšœ žœ˜—K˜Kšœ™˜Kš  œžœ ˜Kš  œžœ˜—˜Kš  œžœ˜—K™Kšœ ™ ˜Kš œžœ ˜Kš  œžœ˜K˜Kšœžœ˜Kš œžœžœ˜K˜Kš  œžœ˜Kš œžœ˜Kš œžœžœ˜6K˜Kš œžœ"žœ žœ˜QKš œžœ*žœ˜HK˜š  œžœ!˜2Kšžœ$˜+—Kš  œžœD˜UK˜š  œžœžœžœžœ˜DKšžœ žœžœŸ˜CK˜—Kš œžœ˜—K˜Kšœ ™ ˜Kš  œžœ ˜Kš  œžœ˜K˜š œžœžœ˜,Kšžœ'˜.K˜—Kš  œžœ˜Kš  œžœ˜—K˜Kšœ ™ ˜Kšœ žœ˜)K˜Kš  œžœ ˜Kš  œžœ˜K˜Kš  œžœžœ˜ Kš  œžœ˜K˜Kš  œžœžœ˜5š  œžœ˜Kšœžœ&žœžœ˜Q—š œžœ˜Kšœžœ&žœžœ˜Q—š œžœ˜Kš œžœ-žœžœžœ˜b—š œžœ˜Kšœžœ&žœžœ˜Q—š  œžœ˜Kšœžœžœžœ˜=—š œžœ˜Kšœžœ&žœžœ˜@—š œžœ˜Kšœžœ&žœžœ˜@K˜K˜——Kšœ ™ ˜Kš  œžœ ˜Kš  œžœ˜K˜Kš  œžœ˜—K˜Kšœ™˜Kš  œžœ ˜ Kš œžœ˜K˜Kš œžœžœžœ˜@Kš œžœžœžœ&˜OKš œžœžœžœ&˜Oš œžœžœ˜!Kšžœ-žœ˜>—š œžœžœžœ&˜OK˜—š œžœžœ˜1Kšžœ&˜-K˜—Kš  œžœ.žœžœ˜Mš œžœ1˜HKšžœžœ˜K˜—š   œžœžœžœžœ˜DKšžœžœ˜—š   œžœžœžœžœžœ˜MKšžœžœ˜—š  œžœžœžœžœ˜GKšžœžœ˜—š   œžœžœ žœžœ˜/Kšžœžœ˜—š  œžœžœžœžœ˜RKšžœžœ˜K˜—Kš  œžœžœ˜Kš  œžœ˜K˜š œžœ˜5Kšžœ˜%—K˜—Kšœ™˜Kš  œžœ ˜Kš  œžœ˜K˜Kš œžœ ˜Kš œžœ˜—K˜šžœ˜K˜K˜——…—Π#~