DIRECTORY BasicLoadStateFormat USING [ConfigIndex, ModuleInfo], BcdDefs USING [BcdBase, EXPIndex, Link, MTHandle, MTIndex, MTNull], PrincOps USING [ControlLink, GFTIndex, GlobalFrameHandle, MaxNGfi], MB USING [BHandle, Handle], Rope USING [ROPE]; MBLoaderOps: CEDAR DEFINITIONS = BEGIN ConfigIndex: TYPE = BasicLoadStateFormat.ConfigIndex; ModuleInfo: TYPE = BasicLoadStateFormat.ModuleInfo; VirtualLinks: TYPE = LONG DESCRIPTOR FOR ARRAY OF BcdDefs.Link; RealLinksTable: TYPE = ARRAY [0..256) OF PrincOps.ControlLink; RealLinks: TYPE = REF RealLinksTable; FindFiles: PROC [loadee: MB.BHandle]; -- find code files FindCode: PROC [loadee: MB.BHandle]; -- load code into MBVM FileNotFound: SIGNAL [name: Rope.ROPE]; OpenLinkSpace: PROC [loadee: MB.BHandle, mth: BcdDefs.MTHandle]; WriteLink: PROC [offset: CARDINAL, link: PrincOps.ControlLink]; ReadLink: PROC [offset: CARDINAL] RETURNS [link: PrincOps.ControlLink]; CloseLinkSpace: PROC; WriteLinks: PROC [loadee: MB.BHandle, mth: BcdDefs.MTHandle, links: RealLinks]; LinkFragLength: PROC [loadee: MB.BHandle, mth: BcdDefs.MTHandle] RETURNS [nLinks: CARDINAL]; GetVirtualLinks: PROC [loadee: MB.BHandle, mth: BcdDefs.MTHandle] RETURNS [virtualLinks: VirtualLinks]; ProcessUnboundImports: PROC; InitLoaderCore: PROC [h: MB.Handle]; FinishLoaderCore: PROC; InitLoaderExtra: PROC [h: MB.Handle]; FinishLoaderExtra: PROC; Bind: PROC [loadee: MB.BHandle, config: ConfigIndex]; VersionMismatch: SIGNAL [interface, ref1, ref2: Rope.ROPE]; Binding: TYPE = REF BindingRecord; BindingRecord: TYPE = RECORD [ bias: PrincOps.GFTIndex, -- = bcd.firstdummy b: SEQUENCE n: --import gfi-- CARDINAL OF BindLink ]; BindLink: TYPE = RECORD [ whichgfi: [0..PrincOps.MaxNGfi), body: SELECT type: * FROM interface => [eti: BcdDefs.EXPIndex], module => [mti: BcdDefs.MTIndex], notbound => NULL, ENDCASE ]; InitLoadState: PROC [h: MB.Handle]; FinishLoadState: PROC; InputLoadState: PROC RETURNS [nbcds: ConfigIndex]; UpdateLoadState: PROC [config: ConfigIndex, handle: MB.BHandle]; WriteLoadState: PROC; EnterModule: PROC [ rgfi: PrincOps.GFTIndex, module: ModuleInfo, mti: BcdDefs.MTIndex _ BcdDefs.MTNull]; GetModule: PROC [rgfi: PrincOps.GFTIndex] RETURNS [module: ModuleInfo]; AcquireBcd: PROC [config: ConfigIndex] RETURNS [handle: MB.BHandle]; InitBinding: PROC [bcd: BcdDefs.BcdBase] RETURNS [binding: Binding]; BcdUnresolved: PROC [bcd: ConfigIndex] RETURNS [BOOLEAN]; BcdExports: PROC [bcd: ConfigIndex] RETURNS [BOOLEAN]; BcdExportsTypes: PROC [bcd: ConfigIndex] RETURNS [BOOLEAN]; GetNextGFI: PROC [reserve: CARDINAL] RETURNS [next: PrincOps.GFTIndex]; SetGFTEntry: PROC [ frame: PrincOps.GlobalFrameHandle, gfi: PrincOps.GFTIndex, ngfi: CARDINAL]; EnumerationDirection: TYPE = {recentfirst, recentlast}; EnumerateModules: PROC [ proc: PROC [rgfi: PrincOps.GFTIndex, module: ModuleInfo] RETURNS [BOOLEAN]] RETURNS [PrincOps.GFTIndex]; EnumerateBcds: PROC [ dir: EnumerationDirection, proc: PROC [ConfigIndex] RETURNS [BOOLEAN]] RETURNS [config: ConfigIndex]; END. fMBLoaderOps.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Lewis on 17-Sep-81 11:01:30 Levin on January 11, 1984 6:00 pm Russ Atkinson (RRA) March 8, 1985 4:58:55 pm PST From MBLoader From MBLoaderCore From MBLoaderExtra From MBLoadState Loadstate ModuleInfo (gfi -> ) management GFT management Enumerators ʵ˜codešœ™Kšœ Ïmœ1™Kšœ žœžœ˜%K˜KšÏn œžœ žœ Ïc˜9KšŸœžœ žœ  ˜=Kšœžœ žœ˜'K˜KšŸ œžœ žœ!˜@KšŸ œžœ žœ˜?KšŸœžœ žœžœ˜GKšŸœžœ˜K˜šŸ œžœ žœ3˜OK˜—šŸœžœ žœ ˜@Kšžœ žœ˜K˜—šŸœžœ žœ ˜AKšžœ˜%K˜—KšŸœžœ˜—K˜Kšœ™˜KšŸœžœžœ ˜$KšŸœžœ˜—K˜Kšœ™˜KšŸœžœžœ ˜%KšŸœžœ˜K˜KšŸœžœ žœ˜5Kšœžœžœ˜;—K˜Kšœ™˜Kšœ žœžœ˜"šœžœžœ˜Kšœ ˜-Kšœžœ ž œžœ ˜2K˜—šœ žœžœ˜K˜ šœžœ ž˜K˜%K˜$Kšœ žœ˜Kšž˜—šœ˜K˜——KšŸ œžœžœ ˜#KšŸœžœ˜K˜KšŸœžœžœ˜2KšŸœžœžœ ˜@KšŸœžœ˜K˜Kšœ?™?K˜šŸ œžœ˜KšœT˜T—KšŸ œžœžœ˜GK˜KšŸ œžœžœ žœ ˜DK˜šŸ œžœžœ˜DK˜—KšŸ œžœžœžœ˜9KšŸ œžœžœžœ˜6KšŸœžœžœžœ˜;K˜Kšœ™K˜KšŸ œžœ žœžœ˜GšŸ œžœ˜KšœAžœ˜KK˜—Kšœ ™ K˜Kšœžœ˜7K˜šŸœžœ˜Kšœžœ/žœžœ˜KKšžœ˜K˜—šŸ œžœ˜Kšœ!žœžœžœ˜FKšžœ˜K˜——Kšžœ˜˜K˜——…— äÿ