-- PilotKernel.bootmesa
-- last modified by Levin:  July 14, 1982 11:42 am

-- WARNING: If a procedure is RESIDENT, the entry vector for its containing
-- module must also be RESIDENT.  If a procedure is RESIDENTDESCRIPTOR, the
-- entry vector for its containing module must be RESIDENTDESCRIPTOR or
-- RESIDENT.  Finally, if a procedure is IN, the entry vector for its
-- containing module must be IN or RESIDENT.

-- All procedures (and their entry vectors and global frames) which run
-- inside of the Space monitor must be RESIDENTDESCRIPTOR, so that the
-- swapper is able to read in that code without the VMHelper (which is
-- unable to run when the Space monitor is locked).  All procedures (and
-- their entry vectors and global frames) which run inside any of the
-- FileMgr and Filer monitors which are required by the FileHelper must
-- be RESIDENTDESCRIPTOR, so that the Filer is able to read in that code
-- without the FileHelper (which is unable to run when the FileMgr and
-- Filer monitors are locked).  As a practical matter, this means ALL
-- CODE IN THE VMMgr, FileMgr, Filer, and Swapper MUST BE
-- RESIDENTDESCRIPTOR (if it's not already resident).  [Initialization
-- code however, is typically just IN.]

WART: PilotControl;

RESIDENT:
  SPACE [Resident, ResidentCool],
  SPACE [HighStoreResident],
  FRAME [ResidentFrames];

RESIDENTDESCRIPTOR:
  -- IF YOU MAKE ANY CHANGES TO THE RESIDENTDESCRIPTOR SECTION, be sure to
  -- copy its contents into the corresponding section of IN below.

  --Control-- SPACE [SwappableSystem],
  --FileMgr-- SPACE [
        FileAttributes, FileCreate, FileDelete, FileHelperProcess,
        FileSetSize, Othello, OtherFileStuff, PhysicalVolume,
        Scavenger, VFMChangingSize, Volume],
  --FileMgr/VMMgr-- SPACE [MapLogging],
  --Filer-- SPACE [LabelHacking],
  --MesaRuntime-- SPACE [
        FrameImplHot, FrameImplCold, -- ProcessesHot, -- ProcessesCold,
        Signals, Traps],
  --Swapper-- SPACE [SwappableSwapperHot, SwappableSwapperWarm],
  --Transactions-- SPACE [
        TransactionsCommon, TransactionsRunning, TransactionsAborting],
  --UserTerminal-- SPACE [UserTerminalDriverSwappable],
  --VMMgr-- SPACE [
        SpaceCodeHacking, SpaceCopying, SpaceCreateDelete,
        SpaceMap, SpaceMisc, SpaceRemap, SpaceStatusOps,
        SpaceUnmap, SpaceOpsCommon, VMMHelperProcess]

   ;  -- (delimiter for ResDesc section)

IN:
  -- The following must be IN since they are RESIDENTDESCRIPTOR:

-- BEGIN copy of RESIDENTDESCRIPTOR section --

  --Control-- SPACE [SwappableSystem],
  --FileMgr-- SPACE [
        FileAttributes, FileCreate, FileDelete, FileHelperProcess,
        FileSetSize, Othello, OtherFileStuff, PhysicalVolume,
        Scavenger, VFMChangingSize, Volume],
  --FileMgr/VMMgr-- SPACE [MapLogging],
  --Filer-- SPACE [LabelHacking],
  --MesaRuntime-- SPACE [
        FrameImplHot, FrameImplCold, -- ProcessesHot, -- ProcessesCold,
        Signals, Traps],
  --Swapper-- SPACE [SwappableSwapperHot, SwappableSwapperWarm],
  --Transactions-- SPACE [
        TransactionsCommon, TransactionsRunning, TransactionsAborting],
  --UserTerminal-- SPACE [UserTerminalDriverSwappable],
  --VMMgr-- SPACE [
        SpaceCodeHacking, SpaceCopying, SpaceCreateDelete,
        SpaceMap, SpaceMisc, SpaceRemap, SpaceStatusOps,
        SpaceUnmap, SpaceOpsCommon, VMMHelperProcess]

-- END copy of RESIDENTDESCRIPTOR section --
           ,  -- (delimiter for copy of ResDesc section)

  -- The following are IN due to initialization requirements:
  SPACE [CreateDelete],  -- for ResidentHeap initialization
  SPACE [FileMgrInitialization],
  SPACE [ResidentInitialization],
  SPACE [SwappableDiskDrivers], -- must be started at SimpleSpace time.
  SPACE [TransactionsInitialization], -- must be started at SimpleSpace time.
  SPACE [VMMgrInitialization],
  BCD [PilotKernel]; -- to facilitate remote debugging
  -- end of IN section --

NOTRAP: PilotControl, Traps;

-- Process Data Area:
PROCESSES: 75;  -- will fit in 3 pages when ClientMain reduced to 3.
    -- FEWER PROCESSES HERE WILL SAVE YOU RESIDENT MEMORY
    -- AND INCREASE PERFORMANCE.
STATEVECTORSIZE: 20;
-- Priority levels 0, 4, 5, and 7 are reserved for Pilot.  If you add a
-- (faultable) process at that level, you must also add a state vector for it.
STATEVECTORCOUNT: 0, 1;  -- IdleProcess.
STATEVECTORCOUNT: 1, --1--5;  -- Client Low.   (TEMP until FileMgr fixed)
STATEVECTORCOUNT: 2, --3--8;  -- Client Main.  (TEMP until FileMgr fixed)
STATEVECTORCOUNT: 3, --1--5;  -- Client High.  (TEMP until FileMgr fixed)
STATEVECTORCOUNT: 4, 3;  -- PageFaultLow: 1 for basic Swapper/Filer processes + 1 for SpaceClient + 1 for FileClient.
STATEVECTORCOUNT: 5, 5;  -- PageFaultHigh: 1 for basic Swapper/Filer processes + 1 for FileHelper + 1 for VMHelper + 1 for SA800Requester + 1 for WriteFaultProcess.
STATEVECTORCOUNT: 6, 1;  -- Real Time Processes
STATEVECTORCOUNT: 7, 1;  -- FrameFaultProcess.

FRAMEPAGES: 15;
FRAMEWEIGHT: 0, 11;
FRAMEWEIGHT: 1, 15;
FRAMEWEIGHT: 2, 11;
FRAMEWEIGHT: 3, 10;
FRAMEWEIGHT: 4, 9;
FRAMEWEIGHT: 5, 8;
FRAMEWEIGHT: 6, 6;
FRAMEWEIGHT: 7, 4;
FRAMEWEIGHT: 8, 4;
FRAMEWEIGHT: 9, 2;
FRAMEWEIGHT: 10, 2;
FRAMEWEIGHT: 11, 1;
FRAMEWEIGHT: 12, 1;
FRAMEWEIGHT: 13, 1;
FRAMEWEIGHT: 14, 1;
FRAMEWEIGHT: 15, 1;
FRAMEWEIGHT: 16, 1;
FRAMEWEIGHT: 17, 1;
FRAMEWEIGHT: 18, 1;
FRAMEWEIGHT: 19, 0;
FRAMEWEIGHT: 20, 0;
FRAMEWEIGHT: 21, 0;
FRAMEWEIGHT: 22, 0;
FRAMEWEIGHT: 23, 0;
FRAMEWEIGHT: 24, 0;
FRAMEWEIGHT: 25, 0;
FRAMEWEIGHT: 26, 0;
FRAMEWEIGHT: 27, 0;
FRAMEWEIGHT: 28, 0;
FRAMEWEIGHT: 29, 0;  -- "29" = PrincOps.LastAVSlot.

GFT: 768;
MDSBASE: 1000B;
CODEBASE: 1400B;

-- LOG:

-- Gobbel  January 19, 1981  4:44 PM	Added ResidentCool, LabelHacking,
--					MapLogging code pack, renamed VMMgrCommon
--					to SpaceOpsCommon.  Made SwappableDiskDrivers be an IN.

-- Knutsen   January 22, 1981  4:24 PM	Renamed Frames* to FrameImpl*.  New pack Traps
--					is a ResDesc.  Made LabelHacking ResDesc.

-- Knutsen   January 27, 1981  4:33 PM   Put in new StateVectorCount commands.
-- Knutsen   February 5, 1981  9:08 AM	Set priorities to correct values.  Added state
--					vector for pri 0.  Deleted PDABASE.  PDAPAGES
--					replaced by PROCESSES: 70.  MDS ← 1000B.
--					Codebase ← 1400B.  GFT ← 768.  "Merged"
--					PilotDorado and PilotDLion.bootmesa.
-- Knutsen   January 27, 1981  4:33 PM	Temporarily give 5 state vectors for clientLow
--					and clientHigh.
-- Knutsen   February 18, 1981  1:57 PM	Add new resident code pack HighStoreResident.
-- Knutsen   February 26, 1981  2:29 PM	Increase to 75 processes.  Increase frame pages from
--					10 to 15.  Change STATEVECTORSIZE from 20B to 20.
--					Put in frame weights. Decrease StateVectorCount[2]
--					from 10 to 8.
-- Yokota   March 23, 1981  6:20 PM	SpaceCreate and SpaceDelete are merged into SpaceCreateDelete.
--					ProcessesHot in RESIDENTDESCRIPTOR and IN is commented out.
-- Levin   11-Feb-82 14:13:38		Make machine-independent version.
-- Levin   July 14, 1982 11:42 am		IN: BCD[PilotKernel].