// IfsInit.decl -- temporary storage used only during IFS initialization // Copyright Xerox Corporation 1979, 1980, 1981 // Last modified May 4, 1981 7:01 PM by Taft // The ISB is data passed around among the initialization modules. // It is destroyed by FreeStackEvent, which is executed as soon // as contexts start running. The ISB replaces a lot of statics // used only during initialization that would otherwise waste // resident storage (to say nothing of filling up Bldr's dictionary). //---------------------------------------------------------------------------- structure ISB: // Initialization Storage Block //---------------------------------------------------------------------------- [ // init-time parameters -- kept here so they can be patched easily lenBigZone word bigZoneIncr word lenSmallZone word smallZoneIncr word // global switches creatingPrimary word verifyTree word maxBanksXM word enableMiscServers word // other storage bigZoneBot word cfaIFSSwap word 8 // = lCFA relocTable word initStart word stkBase word stkLength word numOverlays word oD word lenOD word // resident PC values put in layout vector by Bldr pcX word // "X/Q" -- start of resident code movable to XM pcL word // "L/Q" -- start of resident Leaf code pcI word // "I/Q" -- start of resident initialization residentCodeXM word // true iff resident code was actually moved to XM xepTable word // -> table of pointers to XM Entry Point statics pinnedOverlays↑0,9 word // overlay numbers of overlays to be pinned in memory runFileCreated word 2 // Time at which Ifs.run was created ] manifest lenISB = size ISB/16