-- Copyright (C) 1985, 1986 by Xerox Corporation. All rights reserved.
-- CBasics.mesa
-- NFS 18-Dec-85 15:01:02
-- BGY 11-Mar-86 14:51:55
-- MEW 14-Apr-86 13:14:45
DIRECTORY
AtomVariants USING [ATRecord],
CString USING [CString],
Stream USING [Handle];
CBasics: DEFINITIONS = {
ArraySpaceHandle: TYPE = LONG POINTER TO ArraySpace;
ArraySpace: TYPE;
FilePtr: TYPE = LONG POINTER TO Stream.Handle;
ArgChoice: TYPE = MACHINE DEPENDENT{neither, justArgC, both};
MainProc: TYPE = MACHINE DEPENDENT RECORD [
proc(0): SELECT args(0): ArgChoice FROM
neither => [main0(1): PROCEDURE RETURNS [INTEGER]],
justArgC => [main1(1): PROCEDURE [argC: CARDINAL] RETURNS [INTEGER]],
both => [
main2(1): PROCEDURE [
argC: CARDINAL, argV: LONG POINTER TO CString.CString]
RETURNS [INTEGER]],
ENDCASE];
CommonRecPtr: TYPE = LONG POINTER TO AtomVariants.ATRecord;
RegisterConfig: PROCEDURE [wordsNeeded: LONG CARDINAL];
RegisterFrame: PROCEDURE [wordsNeeded: LONG CARDINAL]
RETURNS [ArraySpaceHandle];
NextArray: PROCEDURE [heap: ArraySpaceHandle, nWords: LONG CARDINAL]
RETURNS [next: LONG POINTER];
CallMain: PROCEDURE [main: MainProc];
GetBcdInfo: PROCEDURE RETURNS [numArgs: CARDINAL, arraySize: LONG CARDINAL,
commonInfo: CommonRecPtr];
StartConfig: PROCEDURE;
GetCommons: PROCEDURE [comm: CommonRecPtr, comSpace: ArraySpaceHandle];
GetCommonSize: PROCEDURE [comm: CommonRecPtr]
RETURNS [totSize: LONG CARDINAL ← 0];
}.