-- ControlPack.pack
-- Yokota March 23, 1981 10:37 AM GetGreenwichMeanTime is moved from SwappableSystem to ResidentCool.
-- McJones February 4, 1981 6:44 PM Eliminate control-z's
-- Gobbel January 31, 1981 11:18 AM Add ResidentCool pack (reserved memory handle); add SystemImpl.InitializeLocalTimeParameters to Initialization; delete frames
Control: SEGMENT =
BEGIN
ResidentSystem: CODE PACK =
{SystemImpl [InitializeUIDCleanup]}; -- A cleanup procedure
ResidentCool: CODE PACK = -- reserved memory handle only
-- GetGreenwichMeanTime is moved here since Star uses it often
{PilotControl [ReservedMemoryHandle]; SystemImpl [GetGreenwichMeanTime]};
SwappableSystem: CODE PACK =
{SystemImpl EXCEPT Initialization, ResidentCool, ResidentSystem};
Initialization: CODE PACK =
BEGIN
PilotControl EXCEPT ResidentCool;
SystemImpl [InitializeLocalTimeParameters];
SystemImpl [MAIN];
END;
END;
-- FileMgrPack.pack
-- Yokota March 23, 1981 11:38 AM GetLabelString is moved from FileHelperProcess to Volume, and GetSavedLocalTimeParameters is moved from FileAttributes to PhysicalVolume.
-- McJones January 31, 1981 11:19 AM {Get, Set}LocalTimeParameters; diddle Scavenger; delete frames
-- Gobbel January 13, 1981 3:36 PM (previous edit)
-- Levin August 26, 1982 3:42 pm ReplicateImmutable now separate from Move.
FileMgr: SEGMENT =
BEGIN
FileHelperProcess: CODE PACK =
BEGIN
FileImpl [FileHelperProcess, GetFileDescriptorSignals, GetFileDescriptor];
VolAllocMapImpl [Close];
VolFileMapImpl [Close, ContextSet, Find, Get, GetPageGroup, Lower,
ReadNext];
-- We include GetAttributes, GetLabelString, GetLogicalRootPage and
-- GetStatus here as they fit and are (or are presumed to be) called
-- frequently in the development environment
VolumeImpl [Activate, Deactivate, GetAttributes, GetLogicalRootPage, GetNext,
GetStatus, LogicalVolumeFind, LVGetEntryPointer, LVGetStatus, VolumeAccess];
END;
VMMHelperProcs: CODE PACK =
{FileImpl [GetFileAttributes]};
VFMChangingSize: CODE PACK =
BEGIN
VolAllocMapImpl [AccessVAM, AllocPageGroup, FreePageGroup];
VolFileMapImpl [CreateVPage, Delete, DeletePageGroup, FreeVPage, Insert,
InsertPageGroup, Merge, PutNext, Split, Xtra];
END;
FileCreate: CODE PACK =
{FileImpl [Create, CreateWithID, CreateWithIDExternal, CreateWithIDInternal,
TmpsEnter, TmpsGet, TmpsGrow]};
FileDelete: CODE PACK =
{FileImpl [Delete, DeleteCommon, DeleteFileOnVolumeInternal,
DeleteImmutable, TmpsRemove]};
FileSetSize: CODE PACK =
{FileImpl [SetSize, SetSizeInternal]};
FileAttributes: CODE PACK =
BEGIN
FileImpl [ChangeAttributes, ChangeAttributesInternal, GetAttributes,
GetSize, MakeImmutable, MakePermanent];
-- The following should be in a small cold PhysicalVolume pack (it is used once/boot), but it fits here:
END;
FileMapLogging: CODE PACK =
{FileImpl [GetBootLocation, GetFilePoint, GetVIDAndGroup]};
OtherFileStuff: CODE PACK =
{FileImpl [IsOnVolume, MakeBootable,
MakeBootableOrUnbootable, MakeUnbootable, SetDebuggerFiles]};
TransactionRelatedRunning: CODE PACK =
{FileImpl [LogContents, TxSetSize]};
TransactionRelatedAborting: CODE PACK =
{FileImpl [MakeMutable, MakeTemporary, TxCreate, TxMakePerm]};
Scavenger: CODE PACK =
BEGIN
ScavengeImpl EXCEPT [Initialize, MAIN];
VolFileMapImpl [InitMap];
VolumeImpl [BeginScavenging, EndScavenging];
END;
Volume: CODE PACK =
BEGIN
FileImpl [CloseVolumeAndFlushFiles, DeleteTempsInternal,
DeleteTmpsInternalNew, DeleteTmpsInternalOld, OpenVolumeAndDeleteTemps];
VolFileMapImpl [GetNextFile];
VolumeImpl [Close, CloseLogicalVolume, GetLabelString, GetRootFile, IsOnServer, Open,
OpenLogicalVolume, OpenLogicalVolumeInternal, OpenVolume, PutRootFile,
SetRootFile, SignalVolumeAccess];
END;
PhysicalVolume: CODE PACK =
BEGIN
MarkerPageImpl [Enter, EnterMarkerID, Find, FindInternal, Flush];
PhysicalVolumeImpl [AssertNotAPilotVolume, AssertPilotVolume,
AwaitStateChange, CheckPhysicalRootLabel, DriveSize,
FinishWithNonPilotVolume, GetAttributes, GetDrive, GetHandle, GetHints,
GetNext, GetNextDrive, GetNextLogicalVolume, GetPVDrive,
GetSavedLocalTimeParameters, InterpretHandle,
IsReady, Offline, PhysicalRootPageAccess, PhysicalRootPageAccessInternal,
PhysicalRootPageCheck, PhysicalRootPageMap, PhysicalRootPageUnmap,
PhysicalVolumeOffLineInternal, PhysicalVolumeOnLineInternal,
RegisterPvInfo, RegisterSubvolumeMarker, SetSavedLocalTimeParameters, ValidateDrive];
VolumeImpl [CheckLogicalVolume, EnterLV, FindLogicalVolume, GetLVStatus,
LogicalVolumeCheck, LogicalVolumeDebuggerCheck, LogicalVolumeLike,
LogicalVolumeOffLine, LVDecrementPieceCount, PinnedFileEnter,
PinnedFileFlush, ReadAndCheckLogicalRootLabel, RegisterLogicalSubvolume,
RegisterVFiles, SubvolumeOffline, SubvolumeOnline, UnregisterVFiles,
VFileEnter];
END;
Othello: CODE PACK =
BEGIN
MarkerPageImpl [CreateMarkerPage, GetNextPhysicalVolume, MarkerPageMap,
MarkerPageUnmap, UpdateLogicalMarkerPages, UpdatePhysicalMarkerPages];
PhysicalVolumeImpl [AccessPhysicalVolumeRootPage, CreateLogicalVolume,
CreatePhysicalVolume, EraseLogicalVolume, GetContainingPhysicalVolume,
GetNextBadPage, GetNextSubVolume, GetPhysicalVolumeAttributes,
GetPhysicalVolumeBootFiles, GetSubVolumeAttributes, MarkPageBad,
SetPhysicalVolumeBootFiles];
VolumeImpl [DriveSize, GetContainingPhysicalVolume,
GetLogicalVolumeBootFiles, GetType, LogicalVolumeCreate,
LogicalVolumeErase, SetLogicalVolumeBootFiles];
END;
FileMgrInitialization: CODE PACK =
BEGIN
-- Pin is only called by PilotControl. Move and ReplicateImmutable are
-- here only since they are unimplemented.
FileImpl [InitializeFileMgr, MAIN, Move, Pin, ReplicateImmutable];
MarkerPageImpl [MAIN];
PhysicalVolumeImpl [InitDisks, MAIN];
ScavengeImpl [Initialize, MAIN];
VolAllocMapImpl [MAIN];
VolFileMapImpl [MAIN];
VolumeImpl [OpenInitialVolumes, MAIN];
END;
END;
-- FilerPack.pack
-- Last edit by:
-- Yokota March 23, 1981 9:55 AM FCacheCleanUp, RemoveCacheEntry, SetFile, SetCacheEntry, SetPageGroup, Await, Report, Log and HandleError are moved from Resident to ResidentCool.
-- Gobbel January 31, 1981 11:30 AM Moved frame packs into PilotKernelFrames.pack.
-- Knutsen January 21, 1981 3:45 PM Added InitalizeSubVolume.
-- Gobbel January 19, 1981 4:17 PM Create ResidentCool code pack.
Filer: SEGMENT =
BEGIN
-- Resident code - by definition!
Resident: CODE PACK =
BEGIN
FileCacheImpl EXCEPT Initialization, ResidentCool;
FilerTransferImpl EXCEPT Initialization, LabelHacking, ResidentCool;
FileTaskImpl EXCEPT Initialization, ResidentCool;
SubVolumeImpl EXCEPT Initialization, ResidentCool;
END;
ResidentCool: CODE PACK = -- goes in display memory on Dandelion
BEGIN
FileCacheImpl [FlushFile, FlushFilesOnVolume, FCacheCleanUp, RemoveCacheEntry, SetFile,
SetCacheEntry, SetPageGroup];
FilerExceptionImpl EXCEPT Initialization;
FilerTransferImpl [Log];
FileTaskImpl [ErrorHalt, HandleError, LabelWait];
SubVolumeImpl [GetPageAddress, ErrorHalt, GetNext, OnLine, OffLine];
END;
-- Swappable code (resident descriptor)
LabelHacking: CODE PACK =
{FilerTransferImpl [ReadLabel, Perform, ReadRootLabel, WriteLabels,
VerifyLabels, ReadLabelAndData, WriteLabelAndData]};
-- Initialization code:
Initialization: CODE PACK = -- initially resident
BEGIN
FileCacheImpl [Initialize, MAIN];
FilerControl;
FilerExceptionImpl [MAIN];
FilerTransferImpl [MAIN];
FileTaskImpl [MAIN];
SubVolumeImpl [MAIN, InitializeSubVolume];
END;
END;
-- SwapperPack.pack
-- Last edited by:
-- Yokota March 23, 1981 10:22 AM Delete in CachedSpaceImpl is moved from Resident to ResidentCool. ResidentMemoryImpl and SwapperExceptionImpl in Resident are moved into ResidentCool. Some other procedures in Resident are moved into ResidentCool.
-- Knutsen February 18, 1981 12:35 PM Deleted MStoreImpl.Initialize.
-- McJones February 3, 1981 4:37 PM Add MStoreImpl.CheckRealPageMax
-- Gobbel January 31, 1981 11:33 AM Moved frame packs into PilotKernelFrames.pack.
-- Gobbel January 19, 1981 6:34 PM Create ResidentCool code pack
Swapper: SEGMENT =
BEGIN
Resident: CODE PACK =
BEGIN
CachedRegionImplA EXCEPT Initialization, ResidentCool;
CachedRegionImplB EXCEPT Initialization;
CachedSpaceImpl EXCEPT Initialization, ResidentCool;
MStoreImpl EXCEPT Initialization, ResidentCool;
PageFaultImpl EXCEPT Initialization;
SwapBufferImpl EXCEPT Initialization, ResidentCool;
SwapTaskImpl EXCEPT Initialization;
END;
SwappableSwapperHot: CODE PACK =
{SimpleSpaceImpl [ApplyToSpace, ForceOut, Map, Unmap]};
SwappableSwapperWarm: CODE PACK =
{SimpleSpaceImpl [CopyIn, CopyOut, Kill]};
ResidentCool: CODE PACK =
BEGIN
CachedRegionImplA [AgingProcess, AwaitNotCheckedOut, FindUnreferenced, Insert,
InitializeAllocateMStoreRuthlessly, InitializeDeallocateClean, InitializeInsertIfRoom];
CachedSpaceImpl [Delete, Get, Insert, Update];
MStoreImpl [AwaitBelowThreshold, CheckRealPageMax, DonateDedicatedRealMemory,
Promise,
-- CAUTION: RecoverMStore must be run BEFORE
-- DeviceCleanup.Perform[disconnect] has run
RecoverMStore];
ResidentMemoryImpl EXCEPT Initialization;
SwapBufferImpl [Error];
SwapperControl EXCEPT Initialization;
SwapperExceptionImpl EXCEPT Initialization;
END;
Initialization: CODE PACK =
BEGIN
CachedRegionImplA [InitializeInternal, InitializeRegionCacheA,
InitializeRegionCacheB, MAIN];
CachedRegionImplB [Initialize, MAIN];
CachedSpaceImpl [MAIN];
MStoreImpl [InitializeMStore, MAIN, SetThreshold];
PageFaultImpl [MAIN];
ResidentMemoryImpl [InitializeResidentMemoryA, InitializeResidentMemoryB,
MAIN];
SimpleSpaceImpl [AllocateVM, Create, DescribeSpace, DescribeSpaceInternal,
DisableInitialization, HandleFromPage, InitializeSimpleSpace, MAIN,
SuperFromPage];
SwapBufferImpl [InitializeSwapBuffer, MAIN];
SwapperControl [InitializeSwapper, MAIN];
SwapperExceptionImpl [MAIN];
SwapTaskImpl [MAIN];
END;
END; --SwapperPack.pack--
-- MesaRuntimePack.pack
-- Last edit by:
-- Yokota March 23, 1981 10:00 AM FrameImpl in Resident pack is moved into ResidentCool. All the procedures in Instructions are moved from Resident to ResidentCool. Several procedures are interchanged between ProcessesHot and ProcessesCold. Processes in Resident is moved to ResidentCool. GetCaller is moved from FrameImplHot to ResidentCool.
-- Gobbel March 1, 1981 2:04 PM Moved Process.SetTimeout, MsecToTicks, and EnableAborts into ResidentCool (for SoundGenerator on DLion).
-- Gobbel February 23, 1981 11:53 AM Moved Process.Pause into ResidentCool (for SoundGenerator on DLion).
-- Gobbel January 31, 1981 11:33 AM Moved frame packs into PilotKernelFrames.pack.
-- Gobbel January 26, 1981 5:02 PM Put PilotNub.InitializeDeviceCleanup in Resident code pack.
-- January 20, 1981 10:55 AM Knutsen Deleted duplicate frame of Signals - it's now Cold. Rearraged Processes code pack, deleted CheckProcess. FrameImpl's frame and fault handler must be resident. Procedures moved from Traps to FrameImpl. Misc procedures appearing and disappearing. Traps now swappable. InLoadFromBootLocation no longer resident, InitializeInLoadFromBootLoc is. GetPriority, SetPriority now resident.
-- Gobbel January 19, 1981 4:19 PM Created ResidentCool code pack
MesaRuntime: SEGMENT =
BEGIN
Resident: CODE PACK =
BEGIN
BootSwapCross EXCEPT Initialization;
PilotNub [InitializeDeviceCleanup];
-- InitializeInLoadFromBootLoc is vanilla resident so that it won't be mapped
-- with non-PrincOps memory.
SnapshotImpl [InitializeInLoadFromBootLoc];
END;
ResidentCool: CODE PACK = -- goes into display memory on Dandelion
BEGIN
-- GetCaller is moved from FrameHotImpl since Star often uses it
FrameImpl [Codebase, FrameFaultProcess, FrameSize, GetCaller];
Instructions EXCEPT Initialization;
PilotNub EXCEPT Initialization, Resident;
-- BootButton is resident so it is always available.
-- Process stuff is here because it gets used by SoundGenerator.Beep
-- GetPriority, SetPriority are used by the Swapper
Processes [EnableAborts, MsecToTicks, Pause, SetTimeout, GetPriority, SetPriority];
SnapshotImpl [BootButton];
END;
FrameImplHot: CODE PACK =
-- The following have been chosen basically at random only under
-- the constraint that this pack take up only one page.
-- GetCaller is here explicitly as it makes the working set
-- for owner checking (in HeapImpl) smaller.
{FrameImpl [InGFT, IsBound, ValidateFrame, ValidateGlobalFrame]};
FrameImplCold: CODE PACK =
{FrameImpl [AllocGlobalFrame, Copy, DeletedFrame, EntGlobalFrame, EnterGlobalFrame,
GetBcdTime, GetBuildTime, GetNextGlobalFrame, GetNxGlobalFrame, GlobalFrame, MakeFsi,
RemoveGlobalFrame, RemvGlobalFrame, SelfDestruct, zUnNew]};
ProcessesHot: CODE PACK =
{Processes [DisableAborts, DisableTimeout, GetCurrent, InitializeCondition,
InitializeMonitor, SecondsToTicks, TicksToMsec, ValidateProcess, Yield]};
ProcessesCold: CODE PACK =
{Processes [Abort, AllocateNakedCondition, DeallocateNakedCondition,
Detach, End, Fork, Join, ProcessTrap]};
InLoadOutLoad: CODE PACK =
{SnapshotImpl [BootFromFile, BootFromVolume, BootFromPhysicalVolume,
GetBootFileSize, GetDevice, InLoad, InLoadFromBootLocation, OutLoad]};
Signals: CODE PACK =
{Signals EXCEPT Initialization};
SnapshotMisc: CODE PACK =
{SnapshotImpl [InstallPhysicalVolumeBootFile,
InstallVolumeBootFile, MakeBootable, MakeUnbootable]};
Traps: CODE PACK =
{Traps [BoundsFaultTrap, CodeTrap, ControlFaultTrap, DivideCheckTrap, HardwareErrorTrap,
PointerFaultTrap, Restart, StackErrorTrap, Start, StartCM, StartWithState,
UnboundProcedureTrap, WakeupErrorTrap, ZeroDivisorTrap] };
Initialization: CODE PACK =
BEGIN
BootSwapCross [MAIN];
FrameImpl [InitializeFrameImpl, MAIN];
Instructions [InitializeInstructions, MAIN];
PilotNub [InitializeInterrupt, InitializePilotNub, Install, MAIN];
Processes [InitializeProcesses, MAIN];
Signals [InitializeSignals, MAIN];
SnapshotImpl [InitializeSnapshot, MAIN];
Traps [Initialize, MAIN];
END;
END;
-- MiscPack.pack
-- Last edit by:
-- Yokota March 23, 1981 10:11 AM All the procedures in Resident are moved into ResidentCool. FreeSpace, SpaceFromLongPointer and CheckOwner in HeapImpl are moved into Nodes.
-- Gobbel January 31, 1981 11:33 AM Moved frame packs into PilotKernelFrames.pack.
-- Jose January 27, 1981 2:10 PM Deleted LargeNode, NodeSize, RelativePointerToPointer from ResidentHeapImplt
-- Gobbel January 19, 1981 4:27 PM Created ResidentCool code pack
Misc: SEGMENT =
BEGIN
ByteBlt: CODE PACK =
{StreamImpl [ByteBlt]};
ResidentCool: CODE PACK = -- goes in display memory on Dandelion
BEGIN
ResidentHeapImpl [FreeNode, MakeNode, SplitNode, WordsToPages];
UtilitiesImpl EXCEPT Initialization;
ZoneImpl [AddSegment, MakeNode, FreeNode, Split, SplitNode, ValidateZone];
END;
Streams: CODE PACK =
{StreamImpl EXCEPT Initialization, ByteBlt};
-- The following code packs are non-resident and depend upon the resident
-- heap only creating, deleting, splitting nodes and adding segments.
Nodes: CODE PACK =
BEGIN
HeapImpl [CheckOwner, Expand, ExpandHeap, ExpandMDS, FreeLargeOrRegularNode,
FreeMDSNode, FreeNode, FreeSpace, MakeLargeNode, MakeMDSNode, MakeNode,
MakeSpace, Narrow, PagesForNewSegment, SpaceFromLongPointer];
END;
HeapPruning: CODE PACK =
BEGIN
HeapImpl [EnumerateSpaces, Prune, PruneHeap, PruneMDS];
ZoneImpl [GetAttributes, GetSegmentAttributes, RemoveSegment];
END;
Attributes: CODE PACK =
BEGIN
HeapImpl [GetAttributes, GetAttributesHeap, GetAttributesMDS];
ZoneImpl [NodeSize];
END;
CreateDelete: CODE PACK =
BEGIN
HeapImpl [Create, CreateHeap, CreateMDS, Delete, DeleteHeap, DeleteMDS,
MakeResident, MakeResidentHeap, MakeResidentMDS, MakeSwappable,
MakeSwappableHeap, MakeSwappableMDS];
ZoneImpl [Create];
END;
Recreating: CODE PACK =
{ZoneImpl [GetRootNode, Recreate, SetRootNode]};
Checking: CODE PACK =
BEGIN
HeapImpl [SetChecking, SetCheckingHeap, SetCheckingMDS];
ZoneImpl [CheckNode, CheckZone, SetChecking];
END;
Initialization: CODE PACK =
BEGIN
HeapImpl [InitializeHeap, MAIN];
ResidentHeapImpl [InitializeResidentHeap, MAIN];
StreamImpl [InitializeStream, MAIN];
UtilitiesImpl [InitializeUtilities, MAIN];
ZoneImpl [InitializeZone, MAIN];
END;
END;
-- UserTerminalDriverPack.pack
-- Last edit by:
-- Yokota March 23, 1981 10:29 AM GetBitBltTable, SetCursorPattern, SetMousePosition
-- are moved from Resident to ResidentCool (new CODE PACK).
-- Gobbel January 31, 1981 11:33 AM Moved frame packs into PilotKernelFrames.pack.
-- Levin 22-Mar-82 13:04:50 Add ColorDisplayImpl.
-- Levin June 10, 1982 9:32 am Add ColorCursorImpl.
UserTerminalDriver: SEGMENT =
BEGIN
Resident: CODE PACK =
BEGIN
UserTerminalImpl [WaitForScanLine, WaitForVerticalRetrace];
END;
ResidentCool: CODE PACK = {
UserTerminalImpl [GetBitBltTable, SetCursorPattern, SetMousePosition];
ColorCursorImpl [SetCursorPattern, Setup]};
UserTerminalDriverSwappable: CODE PACK = {
UserTerminalImpl EXCEPT Initialization, Resident, ResidentCool;
ColorDisplayImpl EXCEPT Initialization, Resident, ResidentCool;
ColorCursorImpl EXCEPT Initialization, Resident, ResidentCool};
Initialization: CODE PACK =
BEGIN
-- Explicit qualification is needed below to avoid ambiguous references
-- when all of Pilot is packaged via a merged segment.
UserTerminalDriver.StartChainPlug [MAIN, Start];
UserTerminalImpl [MAIN, Start];
ColorDisplayImpl [MAIN, Start, StartHead];
ColorCursorImpl [MAIN, Start, Init];
END;
END;
-- DiskDriversPack.pack
-- Last edit by:
-- Yokota March 20, 1981 10:20 AM MakeLP & MakeRP are moved from Resident to ResidentCool.
-- Gobbel January 31, 1981 11:33 AM Moved frame packs into PilotKernelFrames.pack.
-- Gobbel January 19, 1981 3:41 PM Discard AltoFileInterlock, move SA4000Impl.Start to initialization
-- Levin 28-Apr-82 11:54:30 Flush AltoFileInterlock; move its contents to ResidentCool.
DiskDrivers: SEGMENT =
BEGIN
Resident: CODE PACK =
BEGIN
-- The only resident driver code is that for the system volume (to prevent
-- monitor deadlocks caused by a page fault while in that monitor lock) and
-- the code is callable from the page fault path (i.e., the Filer) - the
-- driver procs getPageAddress, requestIO. WARNING: this packaging ASSUMES
-- that the SA4000 is the system volume!
DiskChannelImpl EXCEPT Initialization, ResidentCool;
DiskDriverSharedImpl EXCEPT Initialization;
SA4000Impl EXCEPT Initialization, ResidentCool;
END;
ResidentCool: CODE PACK = -- goes in display memory on Dandelion
BEGIN
DiskChannelImpl [ErrorHalt, AwaitStateChange, GetDriveAttributes,
GetDriveTag, GetNextDrive, GetPageNumber, SetDriveState, SetDriveTag,
Create, Delete, GetAttributes, GetPageAddress, CreateCompletionObject,
RegisterDrive, MakeLP, MakeRP, Idle, Restart, Suspend];
SA4000Impl [ErrorHalt, GetPageNumber, ChangeState];
SA800Impl [GetNextRequest, GetPageAddress, RequestIO];
END;
SwappableDiskDrivers: CODE PACK =
BEGIN
FloppyChannelImpl EXCEPT Initialization;
SA800Impl EXCEPT Initialization, ResidentCool;
END;
Initialization: CODE PACK =
BEGIN
DiskChannelImpl [MAIN];
DiskDriverSharedImpl [MAIN];
FloppyChannelImpl [MAIN, RegisterDrives];
SA4000Impl [InitGlobals, MAIN, RegisterDrives, Start];
SA800Impl [MAIN, RegisterDriverProcs];
DiskDrivers.StartChainPlug;
END;
END;
-- UtilityPilotKernelPack.pack
-- Code pack merging for all of UtilityPilotKernel
-- Yokota March 25, 1981 5:35 PM Misc.Resident is commented out and UserTerminalDriver.ResidentCool is added to KernelResidentCool
-- Gobbel February 3, 1981 11:38 AM Created from PilotKernelPack.pack
-- Levin 28-Apr-82 12:00:29 Flush DiskDrivers.AltoFileInterlock.
-- THE ORDER OF THE CODE PACKS BELOW IS CRUCIAL.
-- DO NOT REARRANGE THE ORDER OF ANYTHING UNLESS YOU
-- ARE SURE OF THE CONSEQUENCES. In general, new packs will probably be
-- be placed later in the sequence, rather than earlier.
-- This file is used to merge all of the other CODE packaging specifications
-- so as minimize breakage. This file is used as the next to the last .pack
-- file in the collection of files concatenated into the final packaging
-- specification. (UtilityPilotKernelFrames.pack must be last.)
UtilityPilotVM: SEGMENT =
BEGIN
UtilityPilotVMImpl: CODE PACK =
BEGIN
UtilitySpaceImpl EXCEPT UtilityPilotVMInitialization;
UtilityVMMControl EXCEPT UtilityPilotVMInitialization;
END;
UtilityPilotVMInitialization: CODE PACK =
BEGIN
UtilitySpaceImpl [MAIN, Create, InitializeSpace, CreateForCode];
UtilityVMMControl [MAIN, InitializePilotCounter, InitializePilotPerfMonitor,
InitializePilotLoadState, InitializeTransactionData, InitializeVMMgr,
RecoverTransactions, Log];
END;
END;
UtilityPilotKernel: SEGMENT
MERGES Control, DiskDrivers, Filer, MesaRuntime, Misc,
Swapper, UserTerminalDriver =
BEGIN
KernelResident: CODE PACK = -- must be first!
-- This pack merges all of the resident code which goes in PrincOps real
-- memory:
BEGIN
Control.ResidentSystem;
DiskDrivers.Resident;
Filer.Resident;
MesaRuntime.Resident;
-- Misc.Resident; Misc.Resident does not exist anymore
Swapper.Resident;
UserTerminalDriver.Resident;
Control.SwappableSystem;
DiskDrivers.SwappableDiskDrivers;
Filer.LabelHacking;
MesaRuntime.FrameImplHot;
MesaRuntime.FrameImplCold;
MesaRuntime.ProcessesHot;
MesaRuntime.ProcessesCold;
MesaRuntime.InLoadOutLoad;
MesaRuntime.Signals;
MesaRuntime.SnapshotMisc;
MesaRuntime.Traps;
Misc.Nodes;
Misc.ByteBlt;
Misc.HeapPruning;
Misc.Attributes;
Misc.CreateDelete;
Misc.Recreating;
Misc.Checking;
Misc.Streams;
Swapper.SwappableSwapperHot;
Swapper.SwappableSwapperWarm;
UserTerminalDriver.UserTerminalDriverSwappable;
END;
KernelResidentCool: CODE PACK = -- must be second!
-- This pack merges all of the resident code which goes in
-- non-PrincOps real memory:
BEGIN
Control.ResidentCool;
DiskDrivers.ResidentCool;
Filer.ResidentCool;
MesaRuntime.ResidentCool;
Misc.ResidentCool;
Swapper.ResidentCool;
UserTerminalDriver.ResidentCool;
END;
KernelInitialization: CODE PACK =
BEGIN
Control.Initialization;
DiskDrivers.Initialization;
Filer.Initialization;
MesaRuntime.Initialization;
Misc.Initialization;
Swapper.Initialization;
UserTerminalDriver.Initialization;
END;
END;
UtilityPilotFileMgrAndVM: SEGMENT
MERGES FileMgr, UtilityPilotVM =
BEGIN
VMResident: CODE PACK = -- must be first!
-- This pack merges all of the resident code which goes in PrincOps real
-- memory:
BEGIN
FileMgr.FileHelperProcess; -- should be first!
FileMgr.VMMHelperProcs;
FileMgr.FileAttributes;
FileMgr.FileSetSize;
FileMgr.VFMChangingSize;
FileMgr.FileCreate;
FileMgr.FileDelete;
FileMgr.FileMapLogging;
FileMgr.OtherFileStuff;
FileMgr.Volume;
FileMgr.PhysicalVolume;
FileMgr.Othello;
FileMgr.Scavenger;
UtilityPilotVMImpl;
END;
VMInitialization: CODE PACK =
BEGIN
FileMgr.FileMgrInitialization;
UtilityPilotVMInitialization;
END;
Discard: DISCARD CODE PACK =
BEGIN
TransactionRelatedRunning;
TransactionRelatedAborting;
END;
END;
-- UtilityPilotKernelFrames.pack
-- Frame packs for all of PilotKernel
-- February 2, 1981 5:55 PM Gobbel Created from old PilotKernelFrames.pack and frame packs for individual configs.
-- 23-Mar-82 16:28:42 Levin Add ColorDisplayImpl.
-- June 10, 1982 9:41 am Levin Add ColorCursorImpl.
UtilityPilotKernelFrames: FRAME PACK =
BEGIN
-- Control
SystemImpl; -- contains cleanup procedure
PilotControl; -- must be resident due to its exported variables
-- DiskDrivers
DiskChannelImpl;
DiskDriverSharedImpl;
FloppyChannelImpl;
SA4000Impl;
SA800Impl; -- Must be resident until Pilot knows how to dynamically make it
-- resident
-- Filer
FileCacheImpl;
FilerExceptionImpl;
FilerTransferImpl;
FileTaskImpl;
SubVolumeImpl;
-- MesaRuntime
BootSwapCross;
Instructions;
FrameImpl; -- resident since contains frame fault handler.
PilotNub;
Processes; -- used by the Swapper.
Signals;
SnapshotImpl;
Traps;
-- Misc
HeapImpl;
ResidentHeapImpl;
StreamImpl;
UtilitiesImpl;
ZoneImpl;
-- Swapper
CachedRegionImplA;
CachedRegionImplB;
CachedSpaceImpl;
MStoreImpl;
PageFaultImpl;
ResidentMemoryImpl;
SimpleSpaceImpl;
SwapBufferImpl;
SwapperControl;
SwapperExceptionImpl;
SwapTaskImpl;
-- UserTerminalDriver
UserTerminalImpl;
ColorDisplayImpl;
ColorCursorImpl;
-- FileMgr
FileImpl;
MarkerPageImpl;
PhysicalVolumeImpl;
ScavengeImpl;
VolAllocMapImpl;
VolFileMapImpl;
VolumeImpl;
-- VMMgr
UtilityVMMControl;
UtilitySpaceImpl;
-- The following are initialization only frames. They are included here
-- since they do not increase the size of this swap unit, thus saving one
-- page of MDS
DiskDrivers.StartChainPlug;
FilerControl;
UserTerminalDriver.StartChainPlug;
END --of frame pack UtilityPilotKernelFrames--;