COMPILATION LISTING OF SEGMENT init_sst_name_seg Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0939.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 init_sst_name_seg: procedure; 14 15 /* This procedure is called by initialization to set up the names of the hardcore 16* segments in the SST name table, if selected via the DEBG card. 17* 18* The SLT is scanned, and the names of all segments who are IN FACT (not necessarily in the SLT) 19* paged are placed in the SST name table. This must be done before the 20* first seg_fault to tell BOS of the validity of this segment. 21* 22* Last Modified and Reason: 23* 24* Coded by Bernard Greenberg, 10/10/74 25* Modified 03/21/81, W. Olin Sibert, for ADP PTWs and get_ptrs_$given_sdw 26* Modified 9/83, Keith Loepere for paged, wired segs. 27* Modified 8/84, Keith Loepere to rename sstnt.multics_or_bos. 28* */ 29 30 dcl slt$ external static; 31 dcl sst_seg$ external static; 32 dcl dseg$ (0:1023) fixed bin (71) external static; 33 dcl sst$ast_track bit (1) aligned external static; 34 dcl sst$pts (0:3) fixed bin external static; 35 dcl unpaged_page_tables$ external static; 36 dcl get_ptrs_$given_sdw entry (pointer) returns (pointer); 37 dcl sdw_util_$dissect entry (pointer, pointer); 38 39 dcl (pts, ptsi, segnum, segnam_size) fixed bin; 40 41 dcl 1 sdwi aligned like sdw_info aligned automatic; 42 43 dcl (addr, bin, divide, ptr, rel, reverse, segno, substr, verify) builtin; 44 45 46 if ^sst$ast_track then return; /* No work called for */ 47 sstnp = addr (sst_names_$); /* get ptr to SLT's name table seg */ 48 sltp = addr (slt$); /* and the current 'name table */ 49 names_ptr = sltp -> slt.name_seg_ptr; /* Get SLT name seg ptr. */ 50 51 sstnp -> sstnt.valid = "1"b; /* Signify to BOS not to fill in */ 52 sstnp -> sstnt.multics_or_bce = "mult"; 53 upt_ptr = addr (unpaged_page_tables$); 54 55 do segnum = sltp -> slt.first_sup_seg to sltp -> slt.last_sup_seg, 56 sltp -> slt.first_init_seg to sltp -> slt.last_init_seg; 57 58 sltep = addr (sltp -> slt.seg (segnum)); /* get ptr to SLTE of segment */ 59 namep = ptr (names_ptr, sltep -> slte.names_ptr); /* get ptr to seg name block */ 60 call sdw_util_$dissect (addr (dseg$ (segnum)), addr (sdwi)); 61 if ^sdwi.faulted & sdwi.paged & (upt.sst_absloc <= sdwi.address & sdwi.address <= upt.sst_last_loc) then do; /* process segs with page tables in sst */ 62 astep = get_ptrs_$given_sdw (addr (dseg$ (segnum))); /* Get the AST entry ptr */ 63 ptsi = bin (astep -> aste.ptsi, 3);/* get pt size index from ASTE */ 64 pts = sst$pts (ptsi); /* and real Page Table size. */ 65 segnam_size = 32 - verify (reverse (namep -> segnam.name (1)), " ") + 1; 66 sstnp -> sstnt.names (divide (bin (rel (astep), 18) - sstnp -> sstnt.ast_offsets (ptsi), 67 sstnp -> sstnt.ast_sizes (ptsi), 17, 0) + sstnp -> sstnt.ast_name_offsets (ptsi)) 68 = substr (namep -> segnam.name (1), 1, segnam_size); 69 /* Copy primary name into SST name table */ 70 end; 71 end; 72 73 /* Begin include file sstnt.incl.pl1 */ 1 2 1 3 /* Created 10/03/74 by Bernard Greenberg */ 1 4 /* modified 08/24/79 by J. A. Bush for easier calculation of size of sstnt */ 1 5 /* Modified 08/27/84 by Keith Loepere to purge BOS */ 1 6 1 7 dcl sst_names_$ ext; /* Segment containing sst name table */ 1 8 1 9 dcl sstnp ptr; /* Pointer to sst name segment */ 1 10 1 11 dcl 1 sstnt based (sstnp) aligned, /* Major structure */ 1 12 2 valid bit (1) aligned, /* 1 => structure filled by Multics */ 1 13 2 multics_or_bce char (4) aligned, /* Origin of data in table */ 1 14 2 nentries fixed bin, /* number of entries in the sstnt */ 1 15 2 pad1 (5) fixed bin, 1 16 1 17 2 (ast_sizes, /* Sizes of ASTE's at each level */ 1 18 ast_name_offsets, /* Starting index for names at each level */ 1 19 ast_offsets, /* Starting rel addr of each AST region */ 1 20 pad2) (0 : 3) fixed bin, 1 21 1 22 2 names (0 : 0 refer (sstnt.nentries)) char (32) varying; /* Names of AST entries */ 1 23 1 24 dcl (sstnmx, ptsi_a) fixed bin (17); /* Index into name table */ 1 25 1 26 dcl nm_astep ptr; /* astep to be used */ 1 27 1 28 /* End include file sstnt.incl.pl1 */ 73 74 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 2 2 2 3 /* Template for an AST entry. Length = 12 words. */ 2 4 2 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 2 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 2 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 2 8 2 9 dcl astep ptr; 2 10 2 11 dcl 1 aste based (astep) aligned, 2 12 2 13 (2 fp bit (18), /* forward used list rel pointer */ 2 14 2 bp bit (18), /* backward used list rel pointer */ 2 15 2 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 2 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 2 18 2 19 2 strp bit (18), /* rel pointer to process trailer */ 2 20 2 par_astep bit (18), /* rel pointer to parent aste */ 2 21 2 22 2 uid bit (36), /* segment unique id */ 2 23 2 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 2 25 2 pvtx fixed bin (8), /* physical volume table index */ 2 26 2 vtocx fixed bin (17), /* vtoc entry index */ 2 27 2 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 2 29 2 init bit (1), /* used bit - insure 1 lap */ 2 30 2 gtus bit (1), /* global transparent usage switch */ 2 31 2 gtms bit (1), /* global transparent modified switch */ 2 32 2 hc bit (1), /* hard core segment */ 2 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 2 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 2 35 2 write_access_on bit (1), /* any sdw allows write access */ 2 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 2 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 2 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 2 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 2 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 2 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 2 42 2 pad1 bit (2), /* OO */ 2 43 2 dius bit (1), /* dumper in use switch */ 2 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 2 45 2 dmpr_pad bit (1), 2 46 2 ehs bit (1), /* entry hold switch */ 2 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 2 48 2 dirsw bit (1), /* directory switch */ 2 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 2 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 2 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 2 52 2 pad_ic bit (10), /* Used to be aste.ic */ 2 53 2 54 2 dtu bit (36), /* date and time segment last used */ 2 55 2 56 2 dtm bit (36), /* date and time segment last modified */ 2 57 2 58 2 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 2 60 2 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 2 62 2 63 2 csl bit (9), /* current segment length in 1024 words units */ 2 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 2 65 2 fms bit (1), /* file modified switch */ 2 66 2 npfs bit (1), /* no page fault switch */ 2 67 2 gtpd bit (1), /* global transparent paging device switch */ 2 68 2 dnzp bit (1), /* don't null out if zero page switch */ 2 69 2 per_process bit (1), /* use master quota for this entry */ 2 70 2 ddnp bit (1), /* don't deposit nulled pages */ 2 71 2 pad2 bit (2), 2 72 2 records bit (9), /* number of records used by the seg in sec storage */ 2 73 2 np bit (9), /* number of pages in core */ 2 74 2 75 2 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 2 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 2 78 2 damaged bit (1), /* PC declared segment unusable */ 2 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 2 80 2 synchronized bit (1), /* Data Management synchronized segment */ 2 81 2 pad3 bit (6), /* OOOOOOOOO */ 2 82 2 ptsi bit (2), /* page table size index */ 2 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 2 84 2 85 2 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 2 87 2 88 2 89 dcl 1 aste_part aligned based (astep), 2 90 2 91 2 one bit (36) unaligned, /* fp and bp */ 2 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 2 93 2 three bit (8) unaligned; /* ptsi and marker */ 2 94 2 95 2 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 2 97 2 pad1 bit (8*36), 2 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 2 99 2 pad2 bit (3*36); 2 100 2 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 74 75 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 3 2 3 3 /* Declarations for Segment Loading Table header and array. 3 4* 3 5* Used by Initialization and MST Checker subroutines */ 3 6 3 7 dcl sltp ptr, /* pointer to base of SLT segment */ 3 8 names_ptr ptr, /* pointer to base of SLT names segment */ 3 9 namep ptr, /* pointer to segment name list block */ 3 10 pathp ptr, /* pointer to segment's directory path name */ 3 11 aclp ptr; /* pointer to acl structure */ 3 12 3 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 3 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 3 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 3 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 3 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 3 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 3 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 3 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 3 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 3 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 3 23 3 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 3 25 3 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 3 27 2 pad bit (18) unal, 3 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 3 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 3 30 3 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 3 32 2 count fixed bin (17), /* number of segment names in this block */ 3 33 2 names (50 refer (segnam.count)), /* segment name array */ 3 34 3 hp bit (18) unal, /* hash thread pointer */ 3 35 3 ref bit (1) unal, /* "1"b if name referenced */ 3 36 3 pad bit (5) unal, 3 37 3 segno bit (12) unal, /* segment number associated with this name */ 3 38 3 name char (32) unal; /* space for name (max 32 characters) */ 3 39 3 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 3 41 2 size fixed bin (17), /* length of pathname */ 3 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 3 43 2 acls fixed bin; /* ACL list starts here */ 3 44 3 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 3 46 2 count fixed bin, /* number of entries in acl list */ 3 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 3 48 3 userid char (32), /* user specification */ 3 49 3 mode bit (36) aligned, /* mode for the specified user */ 3 50 3 pad bit (36) aligned, 3 51 3 code fixed bin; 3 52 3 53 3 54 /* END INCLUDE FILE slt.incl.pl1 */ 75 76 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 4 2 /* Declaration for Segment Loading Table Entry structure. 4 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 4 4 /* modified 5/4/76 by Noel I. Morris */ 4 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 4 6 /* format: style3 */ 4 7 4 8 dcl sltep ptr; 4 9 4 10 dcl 1 slte_uns based (sltep) aligned, 4 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 4 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 4 13 /**** End of word 1 */ 4 14 2 access bit (4), /* SDW access bit (REWP) */ 4 15 2 cache bit (1), /* Segment to be allowed in cache */ 4 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 4 17 2 firmware_seg bit (1), /* load in low 256 */ 4 18 2 layout_seg bit (1), /* mailbox & such */ 4 19 2 breakpointable bit (1), /* includes breakpoint_page */ 4 20 2 pad1 bit (3), /* unused */ 4 21 2 wired bit (1), /* segment is wired if ON */ 4 22 2 paged bit (1), /* segment is paged if ON */ 4 23 2 per_process bit (1), /* segment is per-process if ON */ 4 24 2 pad3 bit (2), 4 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 4 26 /**** End of 1st half of word 2 */ 4 27 2 pad4 bit (3), 4 28 2 branch_required bit (1), /* path name supplied if ON */ 4 29 2 init_seg bit (1), /* segment is init_seg if ON */ 4 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 4 31 2 link_provided bit (1), /* linkage segment provided if ON */ 4 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 4 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 4 34 2 combine_link bit (1), /* linkage is combined if ON */ 4 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 4 36 2 defs bit (1), /* segment is definitions segment if ON */ 4 37 /***** End of word 2 */ 4 38 2 pad5 bit (6), 4 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 4 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 4 41 2 segno fixed bin (18) uns, /* text/link segment number */ 4 42 /***** End of word 3 */ 4 43 2 pad7 bit (3), 4 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 4 45 2 bit_count fixed bin (24) uns 4 46 ) unaligned; /* bitcount of segment */ 4 47 4 48 dcl 1 slte based (sltep) aligned, 4 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 4 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 4 51 2 access bit (4), /* SDW access bit (REWP) */ 4 52 2 cache bit (1), /* Segment to be allowed in cache */ 4 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 4 54 2 firmware_seg bit (1), 4 55 2 layout_seg bit (1), 4 56 2 breakpointable bit (1), 4 57 2 pad2 bit (3), 4 58 2 wired bit (1), /* segment is wired if ON */ 4 59 2 paged bit (1), /* segment is paged if ON */ 4 60 2 per_process bit (1), /* segment is per-process if ON */ 4 61 2 pad3 bit (2), 4 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 4 63 2 pad4 bit (3), 4 64 2 branch_required bit (1), /* path name supplied if ON */ 4 65 2 init_seg bit (1), /* segment is init_seg if ON */ 4 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 4 67 2 link_provided bit (1), /* linkage segment provided if ON */ 4 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 4 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 4 70 2 combine_link bit (1), /* linkage is combined if ON */ 4 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 4 72 2 defs bit (1), /* segment is definitions segment if ON */ 4 73 2 pad5 bit (6), 4 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 4 75 2 ringbrack (3) bit (3), /* ringbrackets */ 4 76 2 segno bit (18), /* text/link segment number */ 4 77 2 pad6 bit (3), 4 78 2 max_length bit (9), /* maximum length for segment */ 4 79 2 bit_count bit (24) 4 80 ) unaligned; /* bitcount of segment */ 4 81 4 82 /* END INCLUDE FILE slte.incl.pl1 */ 76 77 /* BEGIN INCLUDE FILE ... sdw_info.incl.pl1 ... 12/16/80, for ADP conversion */ 5 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 5 3 5 4 dcl sdw_info_ptr pointer; 5 5 5 6 dcl 1 sdw_info aligned based (sdw_info_ptr), /* Structure describing SDW contents */ 5 7 2 address fixed bin (26), /* Address of seg base or of page table */ 5 8 2 size fixed bin (19), /* Max length of segment (NOT offset of last word) */ 5 9 5 10 2 access unaligned, /* REWP */ 5 11 3 read bit (1) unaligned, 5 12 3 execute bit (1) unaligned, 5 13 3 write bit (1) unaligned, 5 14 3 privileged bit (1) unaligned, 5 15 5 16 2 pad1 bit (32) unaligned, 5 17 5 18 2 rings unaligned, /* Ring brackets */ 5 19 3 r1 bit (3) unaligned, 5 20 3 r2 bit (3) unaligned, 5 21 3 r3 bit (3) unaligned, 5 22 5 23 2 pad2 bit (27) unaligned, 5 24 5 25 2 flags aligned, 5 26 3 paged bit (1) unaligned, /* "1"b => Segment is paged */ 5 27 3 faulted bit (1) unaligned, /* "1"b => SDW has fault set */ 5 28 3 cache bit (1) unaligned, /* "1"b => Segment is encacheable */ 5 29 3 pad3 bit (33) unaligned, 5 30 5 31 2 gate_entry_bound fixed bin (14); /* Number of entrypoints in gate, or zero */ 5 32 5 33 /* END INCLUDE FILE ... sdw_info.incl.pl1 */ 77 78 /* BEGIN include file unpaged_page_tables.incl.pl1 */ 6 2 6 3 /* This include file describes the segments unpaged_page_tables and 6 4*int_unpaged_page_tables. These segments contain the page tables for 6 5*segments that are paged and wired, those segments previously called 6 6*unpaged. 6 7* 6 8*Written September 15, 1983 by Keith Loepere. */ 6 9 6 10 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 6 11 6 12 dcl upt_ptr ptr; 6 13 dcl 1 upt aligned based (upt_ptr), 6 14 2 sst_absloc fixed bin (26), /* for dump analyzers */ 6 15 2 sst_last_loc fixed bin (26), 6 16 2 upt_absloc fixed bin (26), 6 17 2 upt_last_loc fixed bin (26), 6 18 2 iupt_absloc fixed bin (26), 6 19 2 iupt_last_loc fixed bin (26), 6 20 6 21 2 current_length fixed bin, /* number of words currently used */ 6 22 2 max_length fixed bin, /* max number of words in memory allocated */ 6 23 2 first_entry like upt_entry; 6 24 6 25 dcl upt_entry_ptr ptr; 6 26 dcl 1 upt_entry aligned based (upt_entry_ptr), 6 27 2 size fixed bin, /* number of page table words allocated */ 6 28 2 segno fixed bin, /* of hardcore segment */ 6 29 2 ptws (0 refer (upt_entry.size)) bit (36) aligned; 6 30 6 31 /* END include file unpaged_page_tables.incl.pl1 */ 78 79 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0826.9 init_sst_name_seg.pl1 >spec>install>1112>init_sst_name_seg.pl1 73 1 11/02/84 0912.2 sstnt.incl.pl1 >ldd>include>sstnt.incl.pl1 74 2 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 75 3 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 76 4 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.incl.pl1 77 5 03/27/82 0430.3 sdw_info.incl.pl1 >ldd>include>sdw_info.incl.pl1 78 6 07/11/84 0937.3 unpaged_page_tables.incl.pl1 >ldd>include>unpaged_page_tables.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 43 ref 47 48 53 58 60 60 60 60 62 62 address 000104 automatic fixed bin(26,0) level 2 dcl 41 set ref 61 61 ast_name_offsets 14 based fixed bin(17,0) array level 2 dcl 1-11 ref 66 ast_offsets 20 based fixed bin(17,0) array level 2 dcl 1-11 ref 66 ast_sizes 10 based fixed bin(17,0) array level 2 dcl 1-11 ref 66 aste based structure level 1 dcl 2-11 astep 000114 automatic pointer dcl 2-9 set ref 62* 63 66 bin builtin function dcl 43 ref 63 66 divide builtin function dcl 43 ref 66 dseg$ 000012 external static fixed bin(71,0) array dcl 32 set ref 60 60 62 62 faulted 4(01) 000104 automatic bit(1) level 3 packed packed unaligned dcl 41 set ref 61 first_init_seg 5 based fixed bin(18,0) level 2 dcl 3-13 ref 55 first_sup_seg 3 based fixed bin(18,0) level 2 dcl 3-13 ref 55 flags 4 000104 automatic structure level 2 dcl 41 get_ptrs_$given_sdw 000022 constant entry external dcl 36 ref 62 last_init_seg 6 based fixed bin(18,0) level 2 dcl 3-13 ref 55 last_sup_seg 4 based fixed bin(18,0) level 2 dcl 3-13 ref 55 multics_or_bce 1 based char(4) level 2 dcl 1-11 set ref 52* name 2 based char(32) array level 3 packed packed unaligned dcl 3-31 ref 65 66 name_seg_ptr based pointer level 2 dcl 3-13 ref 49 namep 000122 automatic pointer dcl 3-7 set ref 59* 65 66 names 1 based structure array level 2 in structure "segnam" dcl 3-31 in procedure "init_sst_name_seg" names 30 based varying char(32) array level 2 in structure "sstnt" dcl 1-11 in procedure "init_sst_name_seg" set ref 66* names_ptr based bit(18) level 2 in structure "slte" packed packed unaligned dcl 4-48 in procedure "init_sst_name_seg" ref 59 names_ptr 000120 automatic pointer dcl 3-7 in procedure "init_sst_name_seg" set ref 49* 59 paged 4 000104 automatic bit(1) level 3 packed packed unaligned dcl 41 set ref 61 ptr builtin function dcl 43 ref 59 pts 000100 automatic fixed bin(17,0) dcl 39 set ref 64* ptsi 13(28) based bit(2) level 2 in structure "aste" packed packed unaligned dcl 2-11 in procedure "init_sst_name_seg" ref 63 ptsi 000101 automatic fixed bin(17,0) dcl 39 in procedure "init_sst_name_seg" set ref 63* 64 66 66 66 rel builtin function dcl 43 ref 66 reverse builtin function dcl 43 ref 65 sdw_info based structure level 1 dcl 5-6 sdw_util_$dissect 000024 constant entry external dcl 37 ref 60 sdwi 000104 automatic structure level 1 dcl 41 set ref 60 60 seg 10 based structure array level 2 dcl 3-13 set ref 58 segnam based structure level 1 dcl 3-31 segnam_size 000103 automatic fixed bin(17,0) dcl 39 set ref 65* 66 segnum 000102 automatic fixed bin(17,0) dcl 39 set ref 55* 58 60 60 62 62* slt based structure level 1 dcl 3-13 slt$ 000010 external static fixed bin(17,0) dcl 30 set ref 48 slte based structure level 1 dcl 4-48 sltep 000124 automatic pointer dcl 4-8 set ref 58* 59 sltp 000116 automatic pointer dcl 3-7 set ref 48* 49 55 55 55 55 58 sst$ast_track 000014 external static bit(1) dcl 33 ref 46 sst$pts 000016 external static fixed bin(17,0) array dcl 34 ref 64 sst_absloc based fixed bin(26,0) level 2 dcl 6-13 ref 61 sst_last_loc 1 based fixed bin(26,0) level 2 dcl 6-13 ref 61 sst_names_$ 000026 external static fixed bin(17,0) dcl 1-7 set ref 47 sstnp 000112 automatic pointer dcl 1-9 set ref 47* 51 52 66 66 66 66 sstnt based structure level 1 dcl 1-11 substr builtin function dcl 43 ref 66 unpaged_page_tables$ 000020 external static fixed bin(17,0) dcl 35 set ref 53 upt based structure level 1 dcl 6-13 upt_entry based structure level 1 dcl 6-26 upt_ptr 000126 automatic pointer dcl 6-12 set ref 53* 61 61 valid based bit(1) level 2 dcl 1-11 set ref 51* verify builtin function dcl 43 ref 65 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. aclp automatic pointer dcl 3-7 acls based structure level 1 dcl 3-45 asta based bit(432) array dcl 2-86 aste_part based structure level 1 dcl 2-89 name_seg based structure level 1 dcl 3-26 nm_astep automatic pointer dcl 1-26 path based structure level 1 dcl 3-40 pathp automatic pointer dcl 3-7 ptsi_a automatic fixed bin(17,0) dcl 1-24 sdw_info_ptr automatic pointer dcl 5-4 seg_aste based structure level 1 dcl 2-96 segno builtin function dcl 43 slte_uns based structure level 1 dcl 4-10 sst_seg$ external static fixed bin(17,0) dcl 31 sstnmx automatic fixed bin(17,0) dcl 1-24 upt_entry_ptr automatic pointer dcl 6-25 NAME DECLARED BY EXPLICIT CONTEXT. init_sst_name_seg 000003 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 326 356 215 336 Length 644 215 30 251 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME init_sst_name_seg 103 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME init_sst_name_seg 000100 pts init_sst_name_seg 000101 ptsi init_sst_name_seg 000102 segnum init_sst_name_seg 000103 segnam_size init_sst_name_seg 000104 sdwi init_sst_name_seg 000112 sstnp init_sst_name_seg 000114 astep init_sst_name_seg 000116 sltp init_sst_name_seg 000120 names_ptr init_sst_name_seg 000122 namep init_sst_name_seg 000124 sltep init_sst_name_seg 000126 upt_ptr init_sst_name_seg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_ptrs_$given_sdw sdw_util_$dissect THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dseg$ slt$ sst$ast_track sst$pts sst_names_$ unpaged_page_tables$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000002 46 000010 47 000012 48 000014 49 000016 51 000020 52 000022 53 000024 55 000026 58 000037 59 000044 60 000051 61 000071 62 000106 63 000122 64 000127 65 000132 66 000151 71 000173 79 000214 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved