Loader.mesa
Last Modified By Paul Rovner On August 15, 1983 11:49 am
Last Edited by: Levin, September 22, 1983 1:06 pm
DIRECTORY
BasicTime USING [GMT],
FS USING [OpenFile],
PrincOps USING [ControlModule],
Rope USING [ROPE];
Loader: DEFINITIONS =
BEGIN
Instantiate: PROC[file: FS.OpenFile, pageOffset: INT ← 0, codeLinks: BOOLTRUE]
RETURNS[cm: PrincOps.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.ROPE, index: NAT];
Start: PROC[cm: PrincOps.ControlModule];
MakeProcedureResident: SAFE PROC[proc: PROC ANY RETURNS ANY];
MakeProcedureSwappable: PROC[proc: PROC ANY RETURNS ANY];
MakeGlobalFrameResident: SAFE PROC[proc: PROC ANY RETURNS ANY];
MakeGlobalFrameSwappable: PROC[proc: PROC ANY RETURNS ANY];
BCDBuildTime: SAFE PROC[proc: PROC ANY RETURNS ANYNIL] RETURNS[BasicTime.GMT];
Error: ERROR[type: ErrorType, message: Rope.ROPENIL];
ErrorType: TYPE = {
invalidBcd, fileNotFound, versionMismatch, loadStateFull, insufficientVM
};
END.