-- PackagerDefs.mesa
--  last edited by Lewis on 22-Oct-81 12:46:57
--  last edited by Satterthwaite, January 12, 1983 9:53 am

DIRECTORY
  Alloc: TYPE USING [Handle],
  BcdDefs: TYPE USING [BinderNTables, VersionStamp],
  CIFS: TYPE USING [OpenFile],
  Stream: TYPE USING [Handle],
  Table: TYPE USING [Selector],
  Tree: TYPE USING [Link, treeType];

PackagerDefs: DEFINITIONS = {

-- Global Packaging Information

  globalData: READONLY GlobalData;
  
  GlobalData: TYPE~LONG POINTER TO GlobalDataRecord;
  GlobalDataRecord: TYPE~RECORD [
    root:  	      Tree.Link,
    zone:  	      UNCOUNTED ZONE ← NIL,
    packagerVersion:  BcdDefs.VersionStamp,
    rootName:         LONG STRING,  -- packName without ".pack" suffix
    packName:         LONG STRING,  -- packaging description file name
    packVersion:      BcdDefs.VersionStamp,
    packStream:       Stream.Handle,
    sourceBcdName:    LONG STRING,  -- source Bcd file name
    sourceBcdVersion: BcdDefs.VersionStamp,
    sourceBcdFile:    CIFS.OpenFile,
    outputBcdName:    LONG STRING,  -- output Bcd file name
    outputBcdFile:    CIFS.OpenFile,
    packListFileName: LONG STRING,  -- code and frame pack listing file name
    packListStream:   Stream.Handle,
    mapFileName:      LONG STRING,  -- code map listing file name
    mapStream:        Stream.Handle,
    logStream:        Stream.Handle,
    errorStream:      Stream.Handle,
    ownTable:         Alloc.Handle ← NIL,
    textIndex:        CARDINAL,
    network:          [0..127],
    host:             [0..255],
    debug:            BOOL,
    printMap:         BOOL,
    errors, warnings: BOOL,
    nErrors, nWarnings: CARDINAL];

  nullSourceIndex: CARDINAL~CARDINAL.LAST;


 -- Table Allocation Codes 
 --  (generally prefixed by "pack" to avoid confusion with BcdDefs codes)

  packtreetype:  Table.Selector~Tree.treeType;    -- parse tree table (= Table.chunkType)
  packhttype:    Table.Selector~BcdDefs.BinderNTables; -- hash table
  packsstype:    Table.Selector~packhttype+1;    -- packed string table
  packsttype:    Table.Selector~packhttype+2;    -- semantic entry table
  packctreetype: Table.Selector~packhttype+3;    -- config tree table
  packpotype:    Table.Selector~packhttype+4;    -- module processing order table
  packmdtype:    Table.Selector~packhttype+5;    -- code pack module table

  packagerNTables: CARDINAL~BcdDefs.BinderNTables+6;

  }.