COMPILATION LISTING OF SEGMENT init_vol_header_ 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 1005.1 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 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-01-16,Fawcett), approve(86-04-11,MCR7383), 17* audit(86-05-13,LJAdams), install(86-07-17,MR12.0-1097): 18* Add support for subvolumes, and 512_WORD_IO, 3380 and 3390. 19* END HISTORY COMMENTS */ 20 21 22 init_vol_header_: procedure (a_pvtx, a_dev_type, a_pagep, a_write_routine, a_errpart, a_nvtoces, a_baseadd, a_numpag, a_code); 23 24 /* Routine to initialize VTOC, Vol Map, and rest of header, given a label. 25* Commoned from init_empty_root and init_disk_pack_, 06/25/76, Bernard Greenberg. 26* General map generator `a la fsout_vol added at this time too. 27* Modified March 1982 by J. Bongiovanni for VTOC Map 28* 29**/ 30 31 dcl (pvtx, a_pvtx) fixed bin; 32 dcl (pagep, a_pagep) ptr; 33 dcl (dev_type, a_dev_type) fixed bin; 34 dcl (n_vtoces, a_nvtoces) fixed bin; 35 dcl (baseadd, a_baseadd) fixed bin; 36 dcl (num_pages, a_numpag) fixed bin; 37 dcl a_errpart char (*), thing char (20); 38 dcl null builtin; 39 40 dcl (code, a_code) fixed bin (35); 41 42 dcl (a_write_routine, write_disk) entry (fixed bin, fixed bin, ptr, fixed bin (35)) variable; 43 44 dcl tablen fixed bin; 45 dcl Srel fixed bin; 46 dcl (i, j) fixed bin; 47 48 dcl page bit (36*1024) based (pagep); 49 50 dcl (vtoc_end, current, vtoc_size, last, recno, map_addr) fixed bin; 51 52 53 dcl ALL_FREE bit (36) static options (constant) init ("011111111111111111111111111111111000"b); 54 55 56 dcl (addr, addrel, divide, fixed, mod, rel, substr) builtin; 57 58 59 60 61 write_disk = a_write_routine; 62 pvtx = a_pvtx; 63 dev_type = a_dev_type; 64 pagep = a_pagep; 65 labelp = pagep; 66 n_vtoces = a_nvtoces; 67 baseadd = a_baseadd; 68 num_pages = a_numpag; 69 70 if n_vtoces > MAX_VTOCE_PER_PACK then do; 71 a_code = 99; 72 a_errpart = "vtoc too big"; 73 return; 74 end; 75 76 77 /* Write the label to the disk */ 78 79 label.volmap_version = 1; 80 thing = "label"; 81 call write_disk (pvtx, LABEL_ADDR, labelp, code); 82 if code ^= 0 then go to ERR; 83 84 /* Initialize the volume map */ 85 86 page = "0"b; 87 labelp = null; 88 vol_mapp = pagep; /* New Pointer */ 89 vol_map.base_add = baseadd; 90 vol_map.n_rec = num_pages; 91 vol_map.n_free_rec = num_pages; 92 tablen = divide (num_pages + 31, 32, 17, 0); 93 vol_map.bit_map_n_words = tablen; 94 Srel = fixed (rel (addr (vol_map.bit_map)), 18) - fixed (rel (vol_mapp), 18); 95 96 map_addr = VOLMAP_ADDR; 97 98 do i = 1 to tablen; 99 if mod (i, 1024) = 1025 - Srel then do; 100 call write_disk (pvtx, map_addr, pagep, code); 101 if code ^= 0 then go to ERR; 102 map_addr = map_addr + 1; 103 vol_mapp = addrel (vol_mapp, -1024); 104 page = "0"b; 105 end; 106 vol_map.bit_map (i) = ALL_FREE; 107 end; 108 109 j = mod (num_pages, 32); 110 if j ^= 0 then substr (vol_map.bit_map (tablen), j + 2) = "0"b; /* Truncate the tail */ 111 112 do map_addr = map_addr to DUMPER_BIT_MAP_ADDR - 1 by 1; /* Clear out last buf, zeros to rest. */ 113 call write_disk (pvtx, map_addr, pagep, code); 114 if code ^= 0 then go to ERR; 115 page = "0"b; 116 end; 117 118 vol_mapp = null; 119 120 /* Initialize the VTOC header (for compatibility with pre-MR10) */ 121 122 page = "0"b; 123 vtoc_headerp = pagep; 124 125 vtoc_size = VTOC_ORIGIN + divide (n_vtoces + VTOCES_PER_RECORD (dev_type) - 1, VTOCES_PER_RECORD (dev_type), 17, 0); 126 vtoc_end = vtoc_size - 1; 127 128 vtoc_header.version = 1; 129 vtoc_header.n_vtoce = n_vtoces; 130 vtoc_header.vtoc_last_recno = vtoc_end; 131 vtoc_header.n_free_vtoce = n_vtoces; 132 vtoc_header.first_free_vtocx = 0; 133 134 thing = "vtoc hdr"; 135 call write_disk (pvtx, DUMPER_BIT_MAP_ADDR, pagep, code); 136 if code ^= 0 then goto ERR; 137 138 page = "0"b; 139 do recno = DUMPER_BIT_MAP_ADDR + 1 to VTOC_ORIGIN -1; 140 call write_disk (pvtx, recno, pagep, code); 141 if code ^= 0 then go to ERR; 142 end; 143 144 /* Initialize the VTOC Map */ 145 146 page = ""b; 147 vtoc_mapp = pagep; 148 vtoc_map.n_vtoce = n_vtoces; 149 vtoc_map.n_free_vtoce = n_vtoces; 150 vtoc_map.vtoc_last_recno = vtoc_end; 151 vtoc_map.bit_map_n_words = divide (n_vtoces + 31, 32, 17); 152 153 do i = 0 to vtoc_map.bit_map_n_words - 1; 154 vtoc_map.bit_map (i) = ALL_FREE; 155 end; 156 j = mod (n_vtoces, 32); 157 if j ^= 0 then substr (vtoc_map.bit_map (vtoc_map.bit_map_n_words - 1), j + 2) = ""b; 158 159 thing = "vtoc map"; 160 call write_disk (pvtx, VTOC_MAP_ADDR, vtoc_mapp, code); 161 if code ^= 0 then goto ERR; 162 163 164 /* Initialize the VTOC array from record 8 to the last record assigned to the VTOC. */ 165 /* The VTOCE's are all zero. */ 166 167 thing = "vtoc"; 168 current = 0; 169 last = n_vtoces - 1; 170 page = ""b; 171 172 do recno = VTOC_ORIGIN to vtoc_end; 173 call write_disk (pvtx, recno, pagep, code); 174 if code ^= 0 then goto ERR; 175 end; 176 177 178 a_code = 0; 179 return; 180 181 ERR: a_errpart = thing; 182 a_code = code; 183 return; 184 185 186 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */ 1 2 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383), 1 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098): 1 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and 1 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin 1 11* constants indexed by device type as defined in fs_dev_types.incl.pl1. 1 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO. 1 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533), 1 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193): 1 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants. 1 16* END HISTORY COMMENTS */ 1 17 1 18 1 19 /* 1 20* All disk packs have the standard layout described below: 1 21* 1 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1. 1 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1 1 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1 1 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1 1 26* Record 7 : formerly contained bad track list; no longer used. 1 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label) 1 28* each record contains 5 192-word vtoc entries. The last 64 words are unused. 1 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label) 1 30* 1 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning 1 32* of the particular partition. 1 33* 1 34* 1 35* 1 36* A conceptual declaration for a disk pack could be: 1 37* 1 38* dcl 1 disk_pack, 1 39* 2 label_record (0 : 0) bit(36 * 1024), 1 40* 2 volume_map_record (1 : 3) bit(36 * 1024), 1 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024), 1 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024), 1 43* 2 spare_record (7 : 7) bit(36 * 1024), 1 44* 2 vtoc_array_records (8 : n-1), 1 45* 3 vtoc_entry ( 5 ) bit(36 * 192), 1 46* 3 unused bit(36 * 64), 1 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024); 1 48* 1 49* 1 50* 1 51* 1 52**/ 1 53 1 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */ 1 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */ 1 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */ 1 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */ 1 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */ 1 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */ 1 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */ 1 61 fixed bin (17) int static options (constant); 1 62 1 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */ 1 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */ 1 65 /* or the physical volume table entry (pvte) device type. */ 1 66 1 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant); 1 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant); 1 69 1 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init 1 71 (0, 3, 3, 3, 3, 3, 3, 1, 1); 1 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init 1 73 (0, 5, 5, 5, 5, 5, 5, 2, 2); 1 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init 1 75 (0, 16, 16, 16, 16, 16, 16, 2, 2); 1 76 1 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */ 186 187 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 2 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 2 6* Add the subvolume info. 2 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 2 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 2 9* Added inconsistent_dbm bit used to determine consistency of volume 2 10* dumper bit maps. 2 11* END HISTORY COMMENTS */ 2 12 2 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 2 14 /* Note: fsout_vol clears pad fields before writing the label */ 2 15 2 16 dcl labelp ptr; 2 17 2 18 dcl 1 label based (labelp) aligned, 2 19 2 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 2 21 2 22 2 gcos (5*64) fixed bin, 2 23 2 24 /* Now we have the Multics label */ 2 25 2 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 2 27 2 version fixed bin, /* Version 1 */ 2 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 2 29 2 pv_name char (32), /* Physical volume name. */ 2 30 2 lv_name char (32), /* Name of logical volume for pack */ 2 31 2 pvid bit (36), /* Unique ID of this pack */ 2 32 2 lvid bit (36), /* unique ID of its logical vol */ 2 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 2 34 2 time_registered fixed bin (71), /* time imported to system */ 2 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 2 36 2 vol_size fixed bin, /* total size of volume, in records */ 2 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 2 38 2 not_used bit (1) unal, /* used to be multiple_class */ 2 39 2 private bit (1) unal, /* TRUE if was registered as private */ 2 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 2 41 2 flagpad bit (33) unal, 2 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 2 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 2 44 2 password bit (72), /* not yet used */ 2 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 2 46 2 this_sv fixed bin, /* what subvolume number it is */ 2 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 2 48 2 pad1 (13) fixed bin, 2 49 2 time_mounted fixed bin (71), /* time mounted */ 2 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 2 51 2 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 2 53* forces a salvage if an MR10 pack is mounted on an earlier system. 2 54* */ 2 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 2 56 2 pad6 fixed bin, 2 57 2 58 2 time_salvaged fixed bin (71), /* time salvaged */ 2 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 2 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 2 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 2 62 2 pad1a (2) fixed bin, 2 63 2 err_hist_size fixed bin, /* size of pack error history */ 2 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 2 65 2 time_last_reloaded fixed bin (71), /* what it says */ 2 66 2 pad2 (40) fixed bin, 2 67 2 root, 2 68 3 here bit (1), /* TRUE if the root is on this pack */ 2 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 2 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 2 71 3 pad7 bit (1) aligned, 2 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 2 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 2 74 3 esd_state fixed bin, /* State of esd */ 2 75 2 volmap_record fixed bin, /* Begin record of volume map */ 2 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 2 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 2 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 2 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 2 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 2 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 2 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 2 83 2 pad3 (52) fixed bin, 2 84 2 nparts fixed bin, /* Number of special partitions on pack */ 2 85 2 parts (47), 2 86 3 part char (4), /* Name of partition */ 2 87 3 frec fixed bin, /* First record */ 2 88 3 nrec fixed bin, /* Number of records */ 2 89 3 pad5 fixed bin, 2 90 2 pad4 (5*64) fixed bin; 2 91 2 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 2 93 2 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 187 188 /* BEGIN INCLUDE FILE ... vtoc_header.incl.pl1 */ 3 2 3 3 dcl vtoc_headerp ptr; 3 4 3 5 dcl 1 vtoc_header based (vtoc_headerp) aligned, 3 6 3 7 2 version fixed bin (17), /* version number. The current version number is 1. * */ 3 8 2 n_vtoce fixed bin (17), /* number of vtoc entries */ 3 9 2 vtoc_last_recno fixed bin (17), /* record number of the last record of the vtoc */ 3 10 2 n_free_vtoce fixed bin (17), /* number of free vtoc entries */ 3 11 2 first_free_vtocx fixed bin (17), /* index of the first vtoce in the free list */ 3 12 2 pad (3) bit (36), 3 13 2 dmpr_bit_map (2048 - 8) bit (36); /* space for dmpr bit map */ 3 14 3 15 /* END INCLUDE ... vtoc_header */ 3 16 188 189 /* BEGIN INCLUDE FILE ... vol_map.incl.pl1 */ 4 2 4 3 dcl vol_mapp ptr; 4 4 4 5 dcl 1 vol_map based (vol_mapp) aligned, 4 6 4 7 2 n_rec fixed bin(17), /* number of records represented in the map */ 4 8 2 base_add fixed bin(17), /* record number for first bit in bit map */ 4 9 2 n_free_rec fixed bin(17), /* number of free records */ 4 10 2 bit_map_n_words fixed bin(17), /* number of words of the bit map */ 4 11 2 pad (60) bit(36), /* pad to 64 words */ 4 12 2 bit_map (3*1024 - 64) bit(36) ; /* bit map - the entire vol map occupies 3 records */ 4 13 4 14 /* END INCLUDE ... vol_map */ 189 190 /* START OF: vtoc_map.incl.pl1 ... March 1982 ... * * * * * * * * * * * * * * * * */ 5 2 5 3 dcl vtoc_mapp ptr; 5 4 dcl bit_map_wordp ptr; 5 5 5 6 dcl 1 vtoc_map aligned based (vtoc_mapp), 5 7 2 n_vtoce fixed bin, /* Number of VTOCEs on the device */ 5 8 2 n_free_vtoce fixed bin, /* Number of free VTOCEs */ 5 9 2 bit_map_n_words fixed bin, /* Number of words in the bit map below */ 5 10 2 vtoc_last_recno fixed bin, /* Last record number in VTOC */ 5 11 2 pad (4) fixed bin, 5 12 2 bit_map (0:1024 - 9) bit (36); /* This structure consumes exactly 1 page */ 5 13 5 14 dcl 1 bit_map_word aligned based (bit_map_wordp), 5 15 2 pad1 bit (1) unal, 5 16 2 bits bit (32) unal, /* 32 VTOCES ON => free */ 5 17 2 pad2 bit (3) unal; 5 18 5 19 5 20 5 21 /* END OF: vtoc_map.incl.pl1 * * * * * * * * * * * * * * * * */ 190 191 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.1 init_vol_header_.pl1 >spec>install>1110>init_vol_header_.pl1 186 1 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1 187 2 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 188 3 05/23/77 0919.3 vtoc_header.incl.pl1 >ldd>include>vtoc_header.incl.pl1 189 4 04/29/76 1050.5 vol_map.incl.pl1 >ldd>include>vol_map.incl.pl1 190 5 05/27/82 1525.9 vtoc_map.incl.pl1 >ldd>include>vtoc_map.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. ALL_FREE 000011 constant bit(36) initial packed unaligned dcl 53 ref 106 154 DUMPER_BIT_MAP_ADDR 000013 constant fixed bin(17,0) initial dcl 1-54 set ref 112 135* 139 LABEL_ADDR 000012 constant fixed bin(17,0) initial dcl 1-54 set ref 81* MAX_VTOCE_PER_PACK constant fixed bin(17,0) initial dcl 1-54 ref 70 Srel 000123 automatic fixed bin(17,0) dcl 45 set ref 94* 99 VOLMAP_ADDR constant fixed bin(17,0) initial dcl 1-54 ref 96 VTOCES_PER_RECORD 000000 constant fixed bin(17,0) initial array dcl 1-72 ref 125 125 VTOC_MAP_ADDR 000017 constant fixed bin(17,0) initial dcl 1-54 set ref 160* VTOC_ORIGIN constant fixed bin(17,0) initial dcl 1-54 ref 125 139 172 a_baseadd parameter fixed bin(17,0) dcl 35 ref 22 67 a_code parameter fixed bin(35,0) dcl 40 set ref 22 71* 178* 182* a_dev_type parameter fixed bin(17,0) dcl 33 ref 22 63 a_errpart parameter char packed unaligned dcl 37 set ref 22 72* 181* a_numpag parameter fixed bin(17,0) dcl 36 ref 22 68 a_nvtoces parameter fixed bin(17,0) dcl 34 ref 22 66 a_pagep parameter pointer dcl 32 ref 22 64 a_pvtx parameter fixed bin(17,0) dcl 31 ref 22 62 a_write_routine parameter entry variable dcl 42 ref 22 61 addr builtin function dcl 56 ref 94 addrel builtin function dcl 56 ref 103 base_add 1 based fixed bin(17,0) level 2 dcl 4-5 set ref 89* baseadd 000106 automatic fixed bin(17,0) dcl 35 set ref 67* 89 bit_map 10 based bit(36) array level 2 in structure "vtoc_map" dcl 5-6 in procedure "init_vol_header_" set ref 154* 157* bit_map 100 based bit(36) array level 2 in structure "vol_map" dcl 4-5 in procedure "init_vol_header_" set ref 94 106* 110* bit_map_n_words 3 based fixed bin(17,0) level 2 in structure "vol_map" dcl 4-5 in procedure "init_vol_header_" set ref 93* bit_map_n_words 2 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure "init_vol_header_" set ref 151* 153 157 code 000115 automatic fixed bin(35,0) dcl 40 set ref 81* 82 100* 101 113* 114 135* 136 140* 141 160* 161 173* 174 182 current 000127 automatic fixed bin(17,0) dcl 50 set ref 168* dev_type 000104 automatic fixed bin(17,0) dcl 33 set ref 63* 125 125 divide builtin function dcl 56 ref 92 125 151 first_free_vtocx 4 based fixed bin(17,0) level 2 dcl 3-5 set ref 132* fixed builtin function dcl 56 ref 94 94 i 000124 automatic fixed bin(17,0) dcl 46 set ref 98* 99 106* 153* 154* j 000125 automatic fixed bin(17,0) dcl 46 set ref 109* 110 110 156* 157 157 label based structure level 1 dcl 2-18 labelp 000134 automatic pointer dcl 2-16 set ref 65* 79 81* 87* last 000131 automatic fixed bin(17,0) dcl 50 set ref 169* map_addr 000133 automatic fixed bin(17,0) dcl 50 set ref 96* 100* 102* 102 112* 112* 113* mod builtin function dcl 56 ref 99 109 156 n_free_rec 2 based fixed bin(17,0) level 2 dcl 4-5 set ref 91* n_free_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure "init_vol_header_" set ref 149* n_free_vtoce 3 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5 in procedure "init_vol_header_" set ref 131* n_rec based fixed bin(17,0) level 2 dcl 4-5 set ref 90* n_vtoce based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure "init_vol_header_" set ref 148* n_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5 in procedure "init_vol_header_" set ref 129* n_vtoces 000105 automatic fixed bin(17,0) dcl 34 set ref 66* 70 125 129 131 148 149 151 156 169 null builtin function dcl 38 ref 87 118 num_pages 000107 automatic fixed bin(17,0) dcl 36 set ref 68* 90 91 92 109 page based bit(36864) packed unaligned dcl 48 set ref 86* 104* 115* 122* 138* 146* 170* pagep 000102 automatic pointer dcl 32 set ref 64* 65 86 88 100* 104 113* 115 122 123 135* 138 140* 146 147 170 173* pvtx 000100 automatic fixed bin(17,0) dcl 31 set ref 62* 81* 100* 113* 135* 140* 160* 173* recno 000132 automatic fixed bin(17,0) dcl 50 set ref 139* 140* 172* 173* rel builtin function dcl 56 ref 94 94 substr builtin function dcl 56 set ref 110* 157* tablen 000122 automatic fixed bin(17,0) dcl 44 set ref 92* 93 98 110 thing 000110 automatic char(20) packed unaligned dcl 37 set ref 80* 134* 159* 167* 181 version based fixed bin(17,0) level 2 dcl 3-5 set ref 128* vol_map based structure level 1 dcl 4-5 vol_mapp 000140 automatic pointer dcl 4-3 set ref 88* 89 90 91 93 94 94 103* 103 106 110 118* volmap_version 604 based fixed bin(17,0) level 2 dcl 2-18 set ref 79* vtoc_end 000126 automatic fixed bin(17,0) dcl 50 set ref 126* 130 150 172 vtoc_header based structure level 1 dcl 3-5 vtoc_headerp 000136 automatic pointer dcl 3-3 set ref 123* 128 129 130 131 132 vtoc_last_recno 3 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure "init_vol_header_" set ref 150* vtoc_last_recno 2 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5 in procedure "init_vol_header_" set ref 130* vtoc_map based structure level 1 dcl 5-6 vtoc_mapp 000142 automatic pointer dcl 5-3 set ref 147* 148 149 150 151 153 154 157 157 160* vtoc_size 000130 automatic fixed bin(17,0) dcl 50 set ref 125* 126 write_disk 000116 automatic entry variable dcl 42 set ref 61* 81 100 113 135 140 160 173 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 1-54 Multics_ID_String internal static char(32) initial packed unaligned dcl 2-92 PAGE_SIZE internal static fixed bin(17,0) initial dcl 1-67 SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-74 SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 1-70 VTOCE_SIZE internal static fixed bin(17,0) initial dcl 1-68 bit_map_word based structure level 1 dcl 5-14 bit_map_wordp automatic pointer dcl 5-4 NAMES DECLARED BY EXPLICIT CONTEXT. ERR 000604 constant label dcl 181 ref 82 101 114 136 141 161 174 init_vol_header_ 000044 constant entry external dcl 22 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 644 654 616 654 Length 1116 616 10 225 26 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME init_vol_header_ 122 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME init_vol_header_ 000100 pvtx init_vol_header_ 000102 pagep init_vol_header_ 000104 dev_type init_vol_header_ 000105 n_vtoces init_vol_header_ 000106 baseadd init_vol_header_ 000107 num_pages init_vol_header_ 000110 thing init_vol_header_ 000115 code init_vol_header_ 000116 write_disk init_vol_header_ 000122 tablen init_vol_header_ 000123 Srel init_vol_header_ 000124 i init_vol_header_ 000125 j init_vol_header_ 000126 vtoc_end init_vol_header_ 000127 current init_vol_header_ 000130 vtoc_size init_vol_header_ 000131 last init_vol_header_ 000132 recno init_vol_header_ 000133 map_addr init_vol_header_ 000134 labelp init_vol_header_ 000136 vtoc_headerp init_vol_header_ 000140 vol_mapp init_vol_header_ 000142 vtoc_mapp init_vol_header_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var return_mac mdfx1 ext_entry_desc NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000035 61 000057 62 000065 63 000067 64 000071 65 000074 66 000075 67 000077 68 000101 70 000103 71 000106 72 000110 73 000115 79 000116 80 000121 81 000124 82 000140 86 000142 87 000147 88 000151 89 000152 90 000155 91 000157 92 000160 93 000163 94 000164 96 000174 98 000176 99 000206 100 000216 101 000232 102 000234 103 000235 104 000240 106 000245 107 000251 109 000253 110 000257 112 000274 113 000303 114 000317 115 000321 116 000326 118 000330 122 000332 123 000337 125 000340 126 000347 128 000351 129 000353 130 000356 131 000360 132 000362 134 000363 135 000366 136 000402 138 000404 139 000411 140 000421 141 000435 142 000437 146 000441 147 000446 148 000447 149 000451 150 000453 151 000455 153 000461 154 000467 155 000472 156 000474 157 000500 159 000515 160 000520 161 000534 167 000536 168 000541 169 000542 170 000545 172 000552 173 000561 174 000575 175 000577 178 000601 179 000603 181 000604 182 000612 183 000613 ----------------------------------------------------------- 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