COMPILATION LISTING OF SEGMENT bootload_disk_io 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 1013.2 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-01-17,Fawcett), approve(86-01-17,MCR7220), 12* audit(86-06-17,Farley), install(86-07-17,MR12.0-1097): 13* Keith Loepere for async operation, support of bce_copy_disk. 14* 2) change(86-05-20,Fawcett), approve(86-05-20,MCR7383), 15* audit(86-06-17,Farley), install(86-07-17,MR12.0-1097): 16* Changed to add support for MSU3380 and MUS3390 17* END HISTORY COMMENTS */ 18 19 bootload_disk_io$read: proc (a_pvtx, a_record_num, a_n_records, a_buffer_ptr, a_code); 20 21 /* Routine to use dctl to perform a disk read/write for bce performance. 22*Written February 1985 by Keith Loepere. 23*Modified March 1985 by Keith Loepere for async operation. */ 24 25 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 26 27 /* Parameters */ 28 29 dcl a_buffer_num fixed bin parameter;/* disk_post slot, actually */ 30 dcl a_buffer_ptr ptr parameter; /* to wired memory area, must be at a page boundary */ 31 dcl a_code fixed bin (35) parameter; 32 dcl a_n_records fixed bin parameter;/* must be 1-4 */ 33 dcl a_pvtx fixed bin parameter; 34 dcl a_record_num fixed bin (18) parameter; 35 36 /* Variables */ 37 38 dcl async bit (1) aligned; 39 dcl buffer_address fixed bin (26); 40 dcl buffer_num fixed bin; 41 dcl code fixed bin (35); 42 dcl last_poll_time fixed bin (71) static; 43 dcl n_sectors fixed bin; 44 dcl old_mask bit (72) aligned; 45 dcl pvtx fixed bin; 46 dcl read_not_write bit (1) aligned; 47 dcl record_num fixed bin (18); 48 49 /* Entries */ 50 51 dcl absadr entry (ptr, fixed bin (35)) returns (fixed bin (24)); 52 dcl dctl$bootload_read entry (fixed bin, fixed bin (26), bit (18) aligned, fixed bin, fixed bin); 53 dcl dctl$bootload_write entry (fixed bin, fixed bin (26), bit (18) aligned, fixed bin, fixed bin); 54 dcl disk_control$disk_run entry; 55 dcl pmut$set_mask entry (bit (72) aligned, bit (72) aligned); 56 57 /* Constants */ 58 59 dcl THIRTY_SEC fixed bin (35) init (30000000) static options(constant); 60 61 62 /* External */ 63 64 dcl error_table_$fsdisk_phydev_err fixed bin (35) ext static; 65 dcl error_table_$not_done fixed bin (35) ext static; 66 dcl scs$sys_level bit (72) aligned ext; 67 68 /* Misc */ 69 70 dcl (addr, bit, clock) builtin; 71 72 read_not_write = "1"b; 73 buffer_num = 1; 74 async = "0"b; 75 go to join; 76 77 bootload_disk_io$write: entry (a_pvtx, a_record_num, a_n_records, a_buffer_ptr, a_code); 78 79 read_not_write = "0"b; 80 buffer_num = 1; 81 async = "0"b; 82 go to join; 83 84 bootload_disk_io$queue_read: entry (a_pvtx, a_record_num, a_n_records, a_buffer_ptr, a_buffer_num, a_code); 85 86 read_not_write = "1"b; 87 buffer_num = a_buffer_num; 88 async = "1"b; 89 go to join; 90 91 bootload_disk_io$queue_write: entry (a_pvtx, a_record_num, a_n_records, a_buffer_ptr, a_buffer_num, a_code); 92 93 read_not_write = "0"b; 94 buffer_num = a_buffer_num; 95 async = "1"b; 96 97 join: 98 99 /* get those args into wired storage! */ 100 101 a_code = 0; 102 pvtx = a_pvtx; 103 pvt_arrayp = addr (pvt$array); 104 pvtep = addr (pvt_array (pvtx)); 105 record_num = a_record_num; 106 n_sectors = sect_per_rec (pvte.device_type) * a_n_records; 107 108 buffer_address = absadr (a_buffer_ptr, code); 109 110 disk_post_area_ptr = addr (bootload_disk_post_seg$); 111 112 if ^async then disk_post_area.number = buffer_num; 113 disk_post_area.buffer_coreadd (buffer_num) = buffer_address; 114 disk_post_area.disk_complete (buffer_num) = "0"b; 115 disk_post_area.disk_error_code (buffer_num) = 0; 116 117 /* wire down for dctl call */ 118 119 call pmut$set_mask (scs$sys_level, old_mask); /* <+><+><+><+> */ 120 121 if read_not_write then call dctl$bootload_read (pvtx, buffer_address, bit (record_num, 18), 0, n_sectors); 122 else call dctl$bootload_write (pvtx, buffer_address, bit (record_num, 18), 0, n_sectors); 123 124 call pmut$set_mask (old_mask, (""b)); /* <-><-><-><-> */ 125 126 last_poll_time = clock; /* start running timeout from now */ 127 128 if async then do; 129 a_code = 0; 130 return; 131 end; 132 133 /* wait for i/o */ 134 135 do while (^disk_post_area.disk_complete (buffer_num)); 136 if clock > last_poll_time + THIRTY_SEC then do; 137 call pmut$set_mask (scs$sys_level, old_mask); /* <+><+><+><+> */ 138 139 call disk_control$disk_run; /* poll disk for lost interrupt */ 140 141 call pmut$set_mask (old_mask, (""b)); /* <-><-><-><-> */ 142 143 last_poll_time = clock; 144 end; 145 end; 146 147 code = disk_post_area.disk_error_code (buffer_num); 148 if code ^= 0 then code = error_table_$fsdisk_phydev_err; 149 disk_post_area.number = 0; 150 151 a_code = code; 152 return; 153 154 bootload_disk_io$test_done: entry (a_buffer_num, a_code); 155 156 buffer_num = a_buffer_num; 157 158 /* look for done */ 159 160 disk_post_area_ptr = addr (bootload_disk_post_seg$); 161 if ^disk_post_area.disk_complete (buffer_num) then 162 if clock > last_poll_time + THIRTY_SEC then do; 163 call pmut$set_mask (scs$sys_level, old_mask); /* <+><+><+><+> */ 164 165 call disk_control$disk_run; /* poll disk for lost interrupt */ 166 167 call pmut$set_mask (old_mask, (""b)); /* <-><-><-><-> */ 168 169 last_poll_time = clock; 170 end; 171 172 if ^disk_post_area.disk_complete (buffer_num) then code = error_table_$not_done; 173 else do; 174 code = disk_post_area.disk_error_code (buffer_num); 175 if code ^= 0 then code = error_table_$fsdisk_phydev_err; 176 end; 177 178 a_code = code; 179 return; 180 /* BEGIN include file bootload_post_area.incl.pl1 */ 1 2 1 3 /* Area used for posting completion of disk i/o for bootload Multics 1 4*operations (save, restore and pack copy). */ 1 5 1 6 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 1 7 1 8 dcl bootload_disk_post_seg$ aligned ext; 1 9 1 10 dcl 1 disk_buffer_post aligned based (disk_buffer_post_ptr), 1 11 2 buffer_coreadd fixed bin (26), 1 12 2 disk_complete bit (1), /* disk i/o complete */ 1 13 2 disk_error_code fixed bin (35); 1 14 1 15 dcl disk_buffer_post_ptr ptr; 1 16 dcl 1 disk_post_area aligned based (disk_post_area_ptr), 1 17 2 number fixed bin, 1 18 2 posted (0 refer (disk_post_area.number)) aligned like disk_buffer_post; 1 19 dcl disk_post_area_ptr ptr; 1 20 1 21 /* END include file bootload_post_area.incl.pl1 */ 180 181 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 2 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 2 8* Add the support for subvolumes 2 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 2 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 2 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 2 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 2 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 2 14* Added inconsistent_dbm bit for determining the status of volume 2 15* dumper bit maps. 2 16* END HISTORY COMMENTS */ 2 17 2 18 dcl pvt$array aligned external; 2 19 dcl pvt$max_n_entries fixed bin external; 2 20 2 21 dcl pvt_arrayp ptr; 2 22 dcl pvtep ptr; 2 23 2 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 2 25 2 26 dcl 1 pvte based (pvtep) aligned, 2 27 2 28 2 pvid bit (36), /* physical volume ID */ 2 29 2 30 2 lvid bit (36), /* logical volume ID */ 2 31 2 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 2 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 2 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 2 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 2 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 2 37 2 pad3 bit (2) unaligned, 2 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 2 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 2 40 2 41 2 42 2 43 2 devname char (4), /* device name */ 2 44 2 45 (2 device_type fixed bin (8), /* device type */ 2 46 2 logical_area_number fixed bin (8), /* disk drive number */ 2 47 2 used bit (1), /* TRUE if this entry is used */ 2 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 2 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 2 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 2 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 2 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 2 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 2 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 2 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 2 56 2 scav_check_address 2 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 2 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 2 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 2 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 2 61 2 vacating bit (1), /* don't put new segs on this vol */ 2 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 2 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 2 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 2 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 2 66 2 67 2 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 2 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 2 70 2 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 2 72 2 73 2 nleft fixed bin (17), /* number of records left */ 2 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 2 75 2 76 2 dim_info bit (36), /* Information peculiar to DIM */ 2 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 2 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 2 79 2 records_per_cyl fixed bin, 2 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 2 81 2 sv_name char (2) aligned, 2 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 2 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 2 84 2 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 2 86 2 pad2 bit (18) unaligned, 2 87 2 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 2 89 2 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 2 91 2 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 2 93 2 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 2 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 2 96 2 97 2 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 2 99 2 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 2 101 2 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 2 103 2 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 2 105 2 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 2 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 2 108 2 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 2 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 2 111 2 112 2 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 2 114 VOLMAP_ASYNC_READ init (1), 2 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 2 116 2 117 2 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 181 182 /* Begin fs_dev_types_sector.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 3 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 7* Add the sector differance for devices that do 64 word IO and devices that 3 8* do 512 word IO. 3 9* END HISTORY COMMENTS */ 3 10 3 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 3 12* need all the data in fs_dev_types. This is also included in 3 13* fs_dev_types.incl.pl1 */ 3 14 3 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 3 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 3 17 3 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 3 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 3 20 3 21 dcl sect_per_rec (9) fixed bin static options (constant) init 3 22 /* table of # of sectors per record on each device */ 3 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 3 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 3 25 3 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 3 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 3 28 3 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 3 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 3 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 3 32 3 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 3 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 3 35 3 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 3 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 3 38 3 39 /* End fs_dev_types_sector.incl.pl1 */ 3 40 182 183 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0839.1 bootload_disk_io.pl1 >special_ldd>install>MR12.3-1114>bootload_disk_io.pl1 180 1 07/11/84 0937.3 bootload_post_area.incl.pl1 >ldd>include>bootload_post_area.incl.pl1 181 2 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 182 3 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.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. THIRTY_SEC 000011 constant fixed bin(35,0) initial dcl 59 ref 136 161 a_buffer_num parameter fixed bin(17,0) dcl 29 ref 84 87 91 94 154 156 a_buffer_ptr parameter pointer dcl 30 set ref 19 77 84 91 108* a_code parameter fixed bin(35,0) dcl 31 set ref 19 77 84 91 97* 129* 151* 154 178* a_n_records parameter fixed bin(17,0) dcl 32 ref 19 77 84 91 106 a_pvtx parameter fixed bin(17,0) dcl 33 ref 19 77 84 91 102 a_record_num parameter fixed bin(18,0) dcl 34 ref 19 77 84 91 105 absadr 000012 constant entry external dcl 51 ref 108 addr builtin function dcl 70 ref 103 104 110 160 async 000100 automatic bit(1) dcl 38 set ref 74* 81* 88* 95* 112 128 bit builtin function dcl 70 ref 121 121 122 122 bootload_disk_post_seg$ 000032 external static fixed bin(17,0) dcl 1-8 set ref 110 160 buffer_address 000101 automatic fixed bin(26,0) dcl 39 set ref 108* 113 121* 122* buffer_coreadd 1 based fixed bin(26,0) array level 3 dcl 1-16 set ref 113* buffer_num 000102 automatic fixed bin(17,0) dcl 40 set ref 73* 80* 87* 94* 112 113 114 115 135 147 156* 161 172 174 clock builtin function dcl 70 ref 126 136 143 161 169 code 000103 automatic fixed bin(35,0) dcl 41 set ref 108* 147* 148 148* 151 172* 174* 175 175* 178 dctl$bootload_read 000014 constant entry external dcl 52 ref 121 dctl$bootload_write 000016 constant entry external dcl 53 ref 122 device_type 4 based fixed bin(8,0) level 2 packed packed unaligned dcl 2-26 ref 106 disk_buffer_post based structure level 1 dcl 1-10 disk_complete 2 based bit(1) array level 3 dcl 1-16 set ref 114* 135 161 172 disk_control$disk_run 000020 constant entry external dcl 54 ref 139 165 disk_error_code 3 based fixed bin(35,0) array level 3 dcl 1-16 set ref 115* 147 174 disk_post_area based structure level 1 dcl 1-16 disk_post_area_ptr 000114 automatic pointer dcl 1-19 set ref 110* 112 113 114 115 135 147 149 160* 161 172 174 error_table_$fsdisk_phydev_err 000024 external static fixed bin(35,0) dcl 64 ref 148 175 error_table_$not_done 000026 external static fixed bin(35,0) dcl 65 ref 172 last_poll_time 000010 internal static fixed bin(71,0) dcl 42 set ref 126* 136 143* 161 169* n_sectors 000104 automatic fixed bin(17,0) dcl 43 set ref 106* 121* 122* number based fixed bin(17,0) level 2 dcl 1-16 set ref 112* 149* old_mask 000106 automatic bit(72) dcl 44 set ref 119* 124* 137* 141* 163* 167* pmut$set_mask 000022 constant entry external dcl 55 ref 119 124 137 141 163 167 posted 1 based structure array level 2 dcl 1-16 pvt$array 000034 external static fixed bin(17,0) dcl 2-18 set ref 103 pvt_array based structure array level 1 dcl 2-24 set ref 104 pvt_arrayp 000116 automatic pointer dcl 2-21 set ref 103* 104 pvte based structure level 1 dcl 2-26 pvtep 000120 automatic pointer dcl 2-22 set ref 104* 106 pvtx 000110 automatic fixed bin(17,0) dcl 45 set ref 102* 104 121* 122* read_not_write 000111 automatic bit(1) dcl 46 set ref 72* 79* 86* 93* 121 record_num 000112 automatic fixed bin(18,0) dcl 47 set ref 105* 121 121 122 122 scs$sys_level 000030 external static bit(72) dcl 66 set ref 119* 137* 163* sect_per_rec 000000 constant fixed bin(17,0) initial array dcl 3-21 ref 106 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 2-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 2-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 2-113 disk_buffer_post_ptr automatic pointer dcl 1-15 pvt$max_n_entries external static fixed bin(17,0) dcl 2-19 sect_per_cyl internal static fixed bin(17,0) initial array dcl 3-15 sect_per_sv internal static fixed bin(24,0) initial array dcl 3-18 sect_per_track internal static fixed bin(17,0) initial array dcl 3-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 3-26 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 3-29 words_per_sect internal static fixed bin(17,0) initial array dcl 3-36 NAMES DECLARED BY EXPLICIT CONTEXT. bootload_disk_io$queue_read 000072 constant entry external dcl 84 bootload_disk_io$queue_write 000114 constant entry external dcl 91 bootload_disk_io$read 000027 constant entry external dcl 19 bootload_disk_io$test_done 000405 constant entry external dcl 154 bootload_disk_io$write 000047 constant entry external dcl 77 join 000133 constant label dcl 97 ref 75 82 89 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 772 1030 512 1002 Length 1312 512 36 245 257 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bootload_disk_io$read 110 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 last_poll_time bootload_disk_io$read STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bootload_disk_io$read 000100 async bootload_disk_io$read 000101 buffer_address bootload_disk_io$read 000102 buffer_num bootload_disk_io$read 000103 code bootload_disk_io$read 000104 n_sectors bootload_disk_io$read 000106 old_mask bootload_disk_io$read 000110 pvtx bootload_disk_io$read 000111 read_not_write bootload_disk_io$read 000112 record_num bootload_disk_io$read 000114 disk_post_area_ptr bootload_disk_io$read 000116 pvt_arrayp bootload_disk_io$read 000120 pvtep bootload_disk_io$read THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absadr dctl$bootload_read dctl$bootload_write disk_control$disk_run pmut$set_mask THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bootload_disk_post_seg$ error_table_$fsdisk_phydev_err error_table_$not_done pvt$array scs$sys_level LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000022 72 000037 73 000041 74 000043 75 000044 77 000045 79 000057 80 000060 81 000062 82 000063 84 000064 86 000104 87 000106 88 000110 89 000111 91 000112 93 000126 94 000127 95 000131 97 000133 102 000134 103 000137 104 000142 105 000145 106 000147 108 000155 110 000171 112 000174 113 000200 114 000205 115 000206 119 000207 121 000217 122 000247 124 000274 126 000307 128 000312 129 000314 130 000315 135 000316 136 000324 137 000333 139 000344 141 000351 143 000364 145 000367 147 000370 148 000372 149 000376 151 000377 152 000400 154 000401 156 000417 160 000421 161 000424 163 000436 165 000447 167 000454 169 000467 172 000472 174 000502 175 000504 178 000510 179 000511 ----------------------------------------------------------- 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