Loader.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Rovner, August 15, 1983 11:49 am
Levin, September 22, 1983 1:06 pm
Russ Atkinson (RRA) February 4, 1985 4:43:28 pm PST
DIRECTORY
BasicTime USING [GMT],
FS USING [OpenFile],
PrincOps USING [ControlModule],
Rope USING [ROPE];
Loader: DEFINITIONS = BEGIN OPEN BasicTime, FS, PrincOps, Rope;
Instantiate: PROC[file: OpenFile, pageOffset: INT ← 0, codeLinks: BOOLTRUE] RETURNS[cm: ControlModule, unboundImports: LIST OF IRItem];
offset is the offset within the file of the first page of the BCD. This is normally 0.
Instantiate can raise Error
IRItem: TYPE = RECORD[interfaceName: ROPE, index: NAT];
IRList: TYPE = LIST OF IRItem;
Start: PROC[cm: ControlModule];
Start the given control module, which must have resulted from an Instantiate.
MakeProcedureResident: SAFE PROC[proc: PROC ANY RETURNS ANY];
Pins the code for a given procedure.
MakeProcedureSwappable: PROC[proc: PROC ANY RETURNS ANY];
Unpins the code for a given procedure.
MakeGlobalFrameResident: SAFE PROC[proc: PROC ANY RETURNS ANY];
Pins the global frame for a given procedure.
MakeGlobalFrameSwappable: PROC[proc: PROC ANY RETURNS ANY];
Unpins the global frame for a given procedure.
BCDBuildTime: SAFE PROC[proc: PROC ANY RETURNS ANYNIL] RETURNS[GMT];
Returns the time that a given bcd file was built.
Error: ERROR[type: ErrorType, message: ROPENIL];
ErrorType: TYPE = {
invalidBcd, fileNotFound, versionMismatch, loadStateFull, insufficientVM
};
END.