COMPILATION LISTING OF SEGMENT delete_segs 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 1028.5 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 delete_segs: 11 procedure; 12 13 /* RE Mullen, v2pl1 oct 1973 */ 14 15 /* Modified by Andre Bensoussan for new storage system - Feb 1975 */ 16 /* 5/13/76 by BSG for prewithdrawing */ 17 /* Modified March 1982, J. Bongiovanni, not to deposit addresses for init 18* and temp segs */ 19 /* Modified August 1982, J. Bongiovanni, to eliminate RLV parasites */ 20 /* Modified November 1982 by C. Hornig to zero LOT entries */ 21 /* Modified October 1983 to properly handle abs-segs */ 22 /* Modified December 1983 by Keith Loepere for breakpoint page processing */ 23 24 dcl list bit (18) unaligned based (aste_list_ptr); 25 26 dcl seg_size fixed bin (26); 27 dcl segno fixed bin (15); 28 dcl ptsi fixed bin (2); /* page table size index (0-3 => 4k-256k) */ 29 dcl aste_list_ptr ptr; 30 31 dcl pc$cleanup entry (ptr); 32 dcl pc$truncate entry (ptr, fixed bin); 33 dcl ptw_util_$make_null entry (ptr, bit (22) aligned); 34 dcl sdw_util_$get_size entry (ptr, fixed bin (26)); 35 dcl thread$cin entry (ptr, bit (18)); 36 dcl thread$out entry (ptr, bit (18)); 37 38 dcl dseg$ (0:4095) fixed bin (71) external; 39 dcl lot$ (0:4095) fixed bin (35) external; 40 dcl slt$ external; 41 dcl sst$ external; 42 dcl sst$ainitp bit (18) unaligned external; 43 dcl sst$atempp bit (18) unaligned external; 44 dcl 1 sst$level (0:3) aligned external, 45 2 ausedp bit (18) unaligned, 46 2 no_aste bit (18) unaligned; 47 48 dcl (addr, addrel, divide, ptr, rel, size, fixed) builtin; 49 50 /* * * * * * * * * TEMP * * * * * * * * * */ 51 52 temp: 53 entry; 54 55 sltp = addr (slt$); 56 aste_list_ptr = addr (sst$atempp); 57 call expunge_segs; 58 return; 59 60 /* * * * * * * * * * * DELETE_SEGS_INIT * * * * * * * * * */ 61 62 delete_segs_init: 63 entry; 64 65 sltp = addr (slt$); /* Get pointer to the SLT. */ 66 aste_list_ptr = addr (sst$ainitp); 67 call expunge_segs; 68 do segno = slt.first_init_seg to slt.last_init_seg; 69 /* Iterate through the SLT init segs. */ 70 dseg$ (segno) = 0; /* Clear the SDW. */ 71 lot$ (segno) = 0; 72 end; 73 return; 74 75 expunge_segs: proc; /* delete segs in sst list */ 76 77 do while (aste_list_ptr -> list ^= "0"b); /* Loop over all entries on list. */ 78 astep = ptr (addr (sst$), aste_list_ptr -> list); /* Set AST pointer to next (top) entry. */ 79 segno = fixed (astep -> aste.strp, 15); /* Get segment number from AST entry */ 80 sltep = addr (slt.seg (segno)); 81 if slte.breakpointable & slte.wired then do; /* don't truncate breakpoint_page */ 82 call sdw_util_$get_size (addr (dseg$ (segno)), seg_size); 83 call ptw_util_$make_null (addrel (astep, size (aste) + divide (seg_size, 1024, 17) - 1), make_sdw_null_addr); 84 end; 85 dseg$ (segno) = 0; /* Zero the SDW. */ 86 lot$ (segno) = 0; 87 ptsi = fixed (astep -> aste.ptsi, 2); 88 astep -> aste.ddnp = "0"b; /* Uninhibit depositable address reporting */ 89 90 if slte.abs_seg then call pc$cleanup (astep);/* Just flush pages not in hc part */ 91 else call pc$truncate (astep, 0); /* free hc part pages */ 92 93 call thread$out (astep, aste_list_ptr -> list); /* Thread entry out of its list. */ 94 95 call thread$cin (astep, sst$level.ausedp (ptsi)); 96 /* thread the entry into the used list */ 97 sst$level.ausedp (ptsi) = rel (astep); 98 astep -> aste_part.two = "0"b; /* Zero the ASTE except fp, bp, ptsi and marker */ 99 end; 100 return; 101 end; 102 1 1 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 1 2 1 3 /* Template for an AST entry. Length = 12 words. */ 1 4 1 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 1 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 1 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 1 8 1 9 dcl astep ptr; 1 10 1 11 dcl 1 aste based (astep) aligned, 1 12 1 13 (2 fp bit (18), /* forward used list rel pointer */ 1 14 2 bp bit (18), /* backward used list rel pointer */ 1 15 1 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 1 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 1 18 1 19 2 strp bit (18), /* rel pointer to process trailer */ 1 20 2 par_astep bit (18), /* rel pointer to parent aste */ 1 21 1 22 2 uid bit (36), /* segment unique id */ 1 23 1 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 1 25 2 pvtx fixed bin (8), /* physical volume table index */ 1 26 2 vtocx fixed bin (17), /* vtoc entry index */ 1 27 1 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 1 29 2 init bit (1), /* used bit - insure 1 lap */ 1 30 2 gtus bit (1), /* global transparent usage switch */ 1 31 2 gtms bit (1), /* global transparent modified switch */ 1 32 2 hc bit (1), /* hard core segment */ 1 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 1 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 1 35 2 write_access_on bit (1), /* any sdw allows write access */ 1 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 1 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 1 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 1 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 1 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 1 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 1 42 2 pad1 bit (2), /* OO */ 1 43 2 dius bit (1), /* dumper in use switch */ 1 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 1 45 2 dmpr_pad bit (1), 1 46 2 ehs bit (1), /* entry hold switch */ 1 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 1 48 2 dirsw bit (1), /* directory switch */ 1 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 1 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 1 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 1 52 2 pad_ic bit (10), /* Used to be aste.ic */ 1 53 1 54 2 dtu bit (36), /* date and time segment last used */ 1 55 1 56 2 dtm bit (36), /* date and time segment last modified */ 1 57 1 58 1 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 1 60 1 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 1 62 1 63 2 csl bit (9), /* current segment length in 1024 words units */ 1 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 1 65 2 fms bit (1), /* file modified switch */ 1 66 2 npfs bit (1), /* no page fault switch */ 1 67 2 gtpd bit (1), /* global transparent paging device switch */ 1 68 2 dnzp bit (1), /* don't null out if zero page switch */ 1 69 2 per_process bit (1), /* use master quota for this entry */ 1 70 2 ddnp bit (1), /* don't deposit nulled pages */ 1 71 2 pad2 bit (2), 1 72 2 records bit (9), /* number of records used by the seg in sec storage */ 1 73 2 np bit (9), /* number of pages in core */ 1 74 1 75 1 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 1 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 1 78 2 damaged bit (1), /* PC declared segment unusable */ 1 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 1 80 2 synchronized bit (1), /* Data Management synchronized segment */ 1 81 2 pad3 bit (6), /* OOOOOOOOO */ 1 82 2 ptsi bit (2), /* page table size index */ 1 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 1 84 1 85 1 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 1 87 1 88 1 89 dcl 1 aste_part aligned based (astep), 1 90 1 91 2 one bit (36) unaligned, /* fp and bp */ 1 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 1 93 2 three bit (8) unaligned; /* ptsi and marker */ 1 94 1 95 1 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 1 97 2 pad1 bit (8*36), 1 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 1 99 2 pad2 bit (3*36); 1 100 1 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 103 2 1 /* BEGIN INCLUDE FILE null_addresses.incl.pl1 */ 2 2 /* Added segmove values, Benson Margulies, 84-01 */ 2 3 2 4 dcl (pc_move_page_table_1_null_addr init ("3770070"b3), 2 5 pc_move_page_table_2_null_addr init ("3770100"b3), 2 6 get_aste_null_addr init ("3770110"b3), 2 7 make_sdw_null_addr init ("3770120"b3), 2 8 put_aste_null_addr init ("3770130"b3), 2 9 page_bad_pd_null_addr init ("3770150"b3), 2 10 list_deposit_null_addr init ("3770160"b3), 2 11 get_file_map_null_addr init ("3770170"b3), 2 12 fill_page_table_null_addr init ("3770200"b3), 2 13 init_sst_null_addr init ("3770210"b3), 2 14 get_file_map_vt_null_addr init ("3770220"b3), 2 15 unprotected_null_addr init ("3770230"b3), 2 16 page_bad_null_addr init ("3770240"b3), 2 17 page_problem_null_addr init ("3770250"b3), 2 18 page_parity_null_addr init ("3770260"b3), 2 19 page_devparity_null_addr init ("3770270"b3), 2 20 segmove_old_addr_null_addr init ("3770300"b3), 2 21 segmove_new_addr_null_addr init ("3770310"b3), 2 22 get_file_map_dumper_non_null_addr init ("3777720"b3), 2 23 append_null_addr init ("3777770"b3)) bit (22) aligned static options (constant); 2 24 dcl create_vtoce_four_null_addrs fixed bin (71) int static init (-1);/* 777777 777777 777777 777777 */ 2 25 2 26 dcl (create_vtoce_null_addr init ("777777"b3), 2 27 update_vtoce_null_addr init ("777776"b3), 2 28 truncate_vtoce_fill_null_addr init ("777775"b3), 2 29 truncate_vtoce_null_addr init ("777002"b3), 2 30 pv_salv_null_addr init ("777004"b3), 2 31 pv_scav_null_addr init ("777006"b3), 2 32 volume_reloader_null_addr init ("777774"b3), 2 33 volume_retriever_null_addr init ("777773"b3), 2 34 salv_truncate_null_addr init ("777005"b3)) bit (18) aligned static options (constant); 2 35 2 36 /* END INCLUDE FILE null_addresses.incl.pl1 */ 104 3 1 /* 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 */ 105 4 1 /* 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 */ 106 107 end delete_segs; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0825.5 delete_segs.pl1 >special_ldd>install>MR12.3-1114>delete_segs.pl1 103 1 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 104 2 07/11/84 0937.3 null_addresses.incl.pl1 >ldd>include>null_addresses.incl.pl1 105 3 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 106 4 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.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. abs_seg 1(05) based bit(1) level 2 packed packed unaligned dcl 4-48 ref 90 addr builtin function dcl 48 ref 55 56 65 66 78 80 82 82 addrel builtin function dcl 48 ref 83 83 aste based structure level 1 dcl 1-11 set ref 83 83 aste_list_ptr 000104 automatic pointer dcl 29 set ref 56* 66* 77 78 93 aste_part based structure level 1 dcl 1-89 astep 000106 automatic pointer dcl 1-9 set ref 78* 79 83 83 83 83 87 88 90* 91* 93* 95* 97 98 ausedp 000040 external static bit(18) array level 2 packed packed unaligned dcl 44 set ref 95* 97* breakpointable 1(08) based bit(1) level 2 packed packed unaligned dcl 4-48 ref 81 ddnp 12(15) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 88* divide builtin function dcl 48 ref 83 83 dseg$ 000024 external static fixed bin(71,0) array dcl 38 set ref 70* 82 82 85* first_init_seg 5 based fixed bin(18,0) level 2 dcl 3-13 ref 68 fixed builtin function dcl 48 ref 79 87 last_init_seg 6 based fixed bin(18,0) level 2 dcl 3-13 ref 68 list based bit(18) packed unaligned dcl 24 set ref 77 78 93* lot$ 000026 external static fixed bin(35,0) array dcl 39 set ref 71* 86* make_sdw_null_addr 000000 constant bit(22) initial dcl 2-4 set ref 83* pc$cleanup 000010 constant entry external dcl 31 ref 90 pc$truncate 000012 constant entry external dcl 32 ref 91 ptr builtin function dcl 48 ref 78 ptsi 13(28) based bit(2) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "delete_segs" ref 87 ptsi 000102 automatic fixed bin(2,0) dcl 28 in procedure "delete_segs" set ref 87* 95 97 ptw_util_$make_null 000014 constant entry external dcl 33 ref 83 rel builtin function dcl 48 ref 97 sdw_util_$get_size 000016 constant entry external dcl 34 ref 82 seg 10 based structure array level 2 dcl 3-13 set ref 80 seg_size 000100 automatic fixed bin(26,0) dcl 26 set ref 82* 83 83 segno 000101 automatic fixed bin(15,0) dcl 27 set ref 68* 70 71* 79* 80 82 82 85 86 size builtin function dcl 48 ref 83 83 slt based structure level 1 dcl 3-13 slt$ 000030 external static fixed bin(17,0) dcl 40 set ref 55 65 slte based structure level 1 dcl 4-48 sltep 000112 automatic pointer dcl 4-8 set ref 80* 81 81 90 sltp 000110 automatic pointer dcl 3-7 set ref 55* 65* 68 68 80 sst$ 000032 external static fixed bin(17,0) dcl 41 set ref 78 sst$ainitp 000034 external static bit(18) packed unaligned dcl 42 set ref 66 sst$atempp 000036 external static bit(18) packed unaligned dcl 43 set ref 56 sst$level 000040 external static structure array level 1 dcl 44 strp 2 based bit(18) level 2 packed packed unaligned dcl 1-11 ref 79 thread$cin 000020 constant entry external dcl 35 ref 95 thread$out 000022 constant entry external dcl 36 ref 93 two 1 based bit(388) level 2 packed packed unaligned dcl 1-89 set ref 98* wired 1(12) based bit(1) level 2 packed packed unaligned dcl 4-48 ref 81 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. aclp automatic pointer dcl 3-7 acls based structure level 1 dcl 3-45 append_null_addr internal static bit(22) initial dcl 2-4 asta based bit(432) array dcl 1-86 create_vtoce_four_null_addrs internal static fixed bin(71,0) initial dcl 2-24 create_vtoce_null_addr internal static bit(18) initial dcl 2-26 fill_page_table_null_addr internal static bit(22) initial dcl 2-4 get_aste_null_addr internal static bit(22) initial dcl 2-4 get_file_map_dumper_non_null_addr internal static bit(22) initial dcl 2-4 get_file_map_null_addr internal static bit(22) initial dcl 2-4 get_file_map_vt_null_addr internal static bit(22) initial dcl 2-4 init_sst_null_addr internal static bit(22) initial dcl 2-4 list_deposit_null_addr internal static bit(22) initial dcl 2-4 name_seg based structure level 1 dcl 3-26 namep automatic pointer dcl 3-7 names_ptr automatic pointer dcl 3-7 page_bad_null_addr internal static bit(22) initial dcl 2-4 page_bad_pd_null_addr internal static bit(22) initial dcl 2-4 page_devparity_null_addr internal static bit(22) initial dcl 2-4 page_parity_null_addr internal static bit(22) initial dcl 2-4 page_problem_null_addr internal static bit(22) initial dcl 2-4 path based structure level 1 dcl 3-40 pathp automatic pointer dcl 3-7 pc_move_page_table_1_null_addr internal static bit(22) initial dcl 2-4 pc_move_page_table_2_null_addr internal static bit(22) initial dcl 2-4 put_aste_null_addr internal static bit(22) initial dcl 2-4 pv_salv_null_addr internal static bit(18) initial dcl 2-26 pv_scav_null_addr internal static bit(18) initial dcl 2-26 salv_truncate_null_addr internal static bit(18) initial dcl 2-26 seg_aste based structure level 1 dcl 1-96 segmove_new_addr_null_addr internal static bit(22) initial dcl 2-4 segmove_old_addr_null_addr internal static bit(22) initial dcl 2-4 segnam based structure level 1 dcl 3-31 slte_uns based structure level 1 dcl 4-10 truncate_vtoce_fill_null_addr internal static bit(18) initial dcl 2-26 truncate_vtoce_null_addr internal static bit(18) initial dcl 2-26 unprotected_null_addr internal static bit(22) initial dcl 2-4 update_vtoce_null_addr internal static bit(18) initial dcl 2-26 volume_reloader_null_addr internal static bit(18) initial dcl 2-26 volume_retriever_null_addr internal static bit(18) initial dcl 2-26 NAMES DECLARED BY EXPLICIT CONTEXT. delete_segs 000005 constant entry external dcl 10 delete_segs_init 000030 constant entry external dcl 62 expunge_segs 000065 constant entry internal dcl 75 ref 57 67 temp 000014 constant entry external dcl 52 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 424 466 252 434 Length 736 252 42 233 151 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME delete_segs 96 external procedure is an external procedure. expunge_segs internal procedure shares stack frame of external procedure delete_segs. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME delete_segs 000100 seg_size delete_segs 000101 segno delete_segs 000102 ptsi delete_segs 000104 aste_list_ptr delete_segs 000106 astep delete_segs 000110 sltp delete_segs 000112 sltep delete_segs 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. pc$cleanup pc$truncate ptw_util_$make_null sdw_util_$get_size thread$cin thread$out THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dseg$ lot$ slt$ sst$ sst$ainitp sst$atempp sst$level LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000004 52 000012 55 000021 56 000023 57 000025 58 000026 62 000027 65 000035 66 000040 67 000042 68 000043 70 000053 71 000060 72 000062 73 000064 75 000065 77 000066 78 000074 79 000101 80 000104 81 000110 82 000114 83 000131 85 000150 86 000156 87 000160 88 000165 90 000167 91 000202 93 000213 95 000224 97 000236 98 000243 99 000247 100 000250 ----------------------------------------------------------- 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