THIS FILE IS DAMAGED Develnet ,>޶2 Develnet Develnet >K_COVO )noneVIP7400 3IO @$ XR IO SysDaemon JuRh6noneWY50_80C L< Maucieri Multics IR,*TeTTynoneSTY_TELNET R!RYqSchroth BVrڐ Schroth ds Multics !_L9RH|M3 MJp\WnoneVIP7400 Schroth  8 Schroth ds SysMaint GR~fZTۚT>noneSTY P0jtTALee <V TALee microbe ch being retrieved */ 3 63 3 aclp ptr, /* ptr to acl array for branch being retrieved */ 3 64 3 recordp ptr, /* ptr to last read volume record */ 3 65 3 objectp ptr, /* ptr to last read segmet or directory */ 3 66 3 vlp ptr, /* ptr to last reload group generated */ 3 67 3 rvcp (1000) ptr; /* ptrs to volume control segments */ 3 68 3 69 /* END INCLUDE FILE ... retv_data_.incl.pl1 */ 81 4 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 4 2 4 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 4 4 4 5 /* This include file contains branch and link structures returned by 4 6* hcs_$status_ and hcs_$status_long. */ 4 7 4 8 dcl 1 status_branch aligned based (status_ptr), 4 9 2 short aligned, 4 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 4 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 4 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 4 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 4 14 3 dtu bit (36) unaligned, /* date/time last used */ 4 15 3 mode bit (5) unaligned, /* caller's effective access */ 4 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 4 17 3 pad1 bit (8) unaligned, 4 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 4 19 4 20 /* Limit of information returned by hcs_$status_ */ 4 21 4 22 2 long aligned, 4 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 4 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 4 25 3 lvid bit (36) unaligned, /* logical volume ID */ 4 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 4 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 4 28 3 pad2 bit (8) unaligned, 4 29 3 copy_switch bit (1) unaligned, /* copy switch */ 4 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 4 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 4 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 4 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 4 34 3 pad3 bit (5) unaligned, 4 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 4 36 3 uid bit (36) unaligned; /* unique ID */ 4 37 4 38 dcl 1 status_link aligned based (status_ptr), 4 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 4 40 2 nnames fixed bin (16) unaligned unsigned, 4 41 2 names_relp bit (18) unaligned, 4 42 2 dtem bit (36) unaligned, 4 43 2 dtd bit (36) unaligned, 4 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 4 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 4 46 4 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 4 48 based (pointer (status_area_ptr, status_branch.names_relp)), 4 49 /* array of names returned */ 4 50 status_pathname character (status_link.pathname_length) aligned 4 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 4 52 /* link target path */ 4 53 status_area_ptr pointer, 4 54 status_ptr pointer; 4 55 4 56 dcl (Link initial (0), 4 57 Segment initial (1), 4 58 Directory initial (2)) fixed bin internal static options (constant); 4 59 /* values for type fields declared above */ 4 60 4 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 82 83 84 requestp = addr (local_retv_vKozlowski .ƚ^ Kozlowski dk UOFC LJNY`pN Lah ln CDC !bALAP COCgOCnoneVIP7400 Larun  L> Gatha arun Office J~J hNX.25ASCII_CRT_E type, 0, code); 171 if code ^= 0 then do; 172 call com_err_ (code, myname, "Unable to cross retrieve object."); 173 goto finish; 174 end; 175 if type = Directory then do; 176 call com_err_ (0, myname, "Directory cross retrieval not allowed."); 177 goto finish; 178 end; 179 call hcs_$get_user_effmode ((retv_request.dirname), (retv_request.ename), "", get_ring_ (), bmode, code); 180 if (bit (bmode) & "01010"b) ^= "01010"b then do; 181 call com_err_ (0, myname, "Incorrect access to segment ^a>^a to cross retrieve.", 182 retv_request.dirname, retv_request.ename); 183 goto finish; 184 end; 185 call hcs_$get_user_effmode ((retv_request.new_dirname), "", "", get_ring_ (), pmode, code); 186 if (bit (pmode) & "01010"b) ^= "01010"b then do; 187 call com_err_ (0, myname, "Incorrect access to append to new path ^a.", retv_request.new_dirname); 188 goto finish; 189 end; 190 end; 191 else do; 192 call com_err_ (error_table_$badopt, myname, "^a", arg); 193 goto finish; 194 end; 195 end; 196 if retv_request.previous & (to_specified | retv_request.from_time ^= 0) then do; 197 call com_err_ (0, myname, "-previous control arg not allowed with -from and or -to"); 198 goto finish; 199 end; 200 201 if to_specified then 202 if retv_request.to_time < retv_request.from_time then do; 203 call com_err_ (0, myname, "-to DATE preceeds -from DATE"); 204 goto finish; 205 end; 206 207 dates_array (*) = "0"b; 208 call hcs_$get_dates (retv_request.dirname, retv_request.ename, dates_array, code); 209 if code ^= 0 then do; 210 if retv_request.previous then do; 211 call com_err_ (code, myname, "Unable to obtain data about ^a>^a for -previous control arg", 212 retv_request.dirname, retv_request.ename); 213 goto finish; 214 end; 215 end; 216 else do; 217 if (dates_array (dtm) >= dates_array (vdtd)) then do; 218 if (retv_request.previous | retv_request.from_time ^= 0 | to_specified) then ; 219 else do; 220 call com_err_ (0, myname, 221 "More recent copy online. Use -previous or -from or -to if you desire dump copy."); 222 goto finish; 223 end; 224 if ^to_specified then retv_request.to_time = fixed (dates_array (dtm) || (16) "0"b, 71); 225 end; 226 else if dates_array (vdtd) >= dates_array (dtm) then do; 227 if ^to_specified then 228 if retv_request.previous then retv_request.to_time = fixed (dates_array (dtm) || (16) "0"b, 71); 229 end; 230 end; 231 if ^retv_request.previous & ^to_specified then retv_request.to_time = clock; 232 233 call ioa_$rsnnl ("volume_retriever_^d.ms", queue_seg, i, retv_request.orig_queue); /* select queue and put message in queue */ 234 call message_segment_$add_file (queue_dir, queue_seg, requestp, size (retv_request) * 36, "0"b, code); 235 if code ^= 0 then do; 236 call com_err_ (code, myname, "Unable to queue retrieval request."); 237 goto finish; 238 end; 239 if ^brief then do; 240 rqid = request_id_ (retv_request.msg_time); 241 if ^long_id then rqid = substr (rqid, 7, 8); 242 call message_segment_$get_message_count_file (queue_dir, queue_seg, ms_count, code); 243 ms_count = max (0, ms_count-1); 244 call ioa_ ("ID: ^a^[;^x^d already requested.^]", rqid, (code = 0), ms_count); 245 end; 246 247 finish: 248 return; 249 250 251 test: entry (test_dir); 252 queue_dir = test_dir; 253 return; 254 255 check_access: proc (dirname, ename); 256 dcl (dirname, ename) char (*); 257 dcl tdirname char (168) aligned; 258 dcl tename char (32) aligned; 259 call hcs_$status_minf (dirname, ename, 1, type, 0, code); 260 if code ^= 0 then do; 261 call expand_pathname_ (dirname, tdirname, tename, code); 262 if code ^= 0 then do; 263 call com_err_ (0, myname, "Unable to determine access to object."); 264 goto finish; 265 end; 266 if tename = "" & tdirname = ">" then do; 267 goto no_acc; 268 end; 269 call check_access ((tdirname), (tename)); 270 end; 271 call hcs_$get_user_effmode (dirname, ename, "", get_ring_ (), bmode, code); 272 call hcs_$get_user_effmode (dirname, "", "", get_ring_ (), pmode, code); 273 if (bit (bmode) & "01010"b) = "01010"b 274 | (bit (pmode) & "01010"b) = "01010"b then return; 275 else do; 276 no_acc: call com_err_ (0, myname, "Incorrect access to retrieve object ^a^[>^]^a.", 277 retv_request.dirname, retv_request.dirname ^= ">", retv_request.ename); 278 goto finish; 279 end; 280 end check_access; 281 end enter_retrieval_request; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 1427.1 enter_retrieval_request.pl1 >spec>install>MR12.2-1173>enter_retrieval_request.pl1 79 1 08/31/82 1636.3 queue_msg_hdr.incl.pl1 >ldd>include>queue_msg_hdr.incl.pl1 80 2 09/04/80 2006.4 retv_request.incl.pl1 >ldd>include>retv_request.incl.pl1 81 3 10/17/88 1425.1 retv_data_.incl.pl1 >spec>install>MR12.2-1173>retv_data_.incl.pl1 82 4 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.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. Directory constant fixed bin(17,0) initial dcl 4-56 ref 175 STATE_UNPROCESSED constant fixed bin(17,0) initial dcl 1-41 ref 98 ac 000117 automatic fixed bin(17,0) dcl 34 set ref 117* 119 120* 120 121* 134* 134 135* 153* 153 154* 165* 165 166* addr builtin function dcl 72 ref 84 arg based char packed unaligned dcl 38 set ref 105 106* 108* 123* 126 126 127 128 128 129 129 129 129 131 131 132 132 132 133 137* 139* 143* 152 152 156* 158* 164 168* 192* argl 000122 automatic fixed bin(17,0) dcl 36 set ref 100* 105 106 106 108 108 121* 123 123 126 126 127 128 128 129 129 129 129 131 131 132 132 132 133 135* 137 137 139 139 143 143 152 152 154* 156 156 158 158 164 166* 168 168 192 192 argp 000120 automatic pointer dcl 35 set ref 100* 105 106 108 121* 123 126 126 127 128 128 129 129 129 129 131 131 132 132 132 133 135* 137 139 143 152 152 154* 156 158 164 166* 168 192 bit builtin function dcl 77 ref 180 186 273 273 bit_flags 66 based structure level 3 dcl 2-7 set ref 96* bits 76 based structure level 2 dcl 2-7 set ref 88* bmode 000114 automatic fixed bin(5,0) dcl 32 set ref 179* 180 271* 273 brief 000103 automatic bit(1) packed unaligned dcl 27 set ref 86* 128* 239 chars 110 based structure level 2 dcl 2-7 set ref 90* check_star_name_$entry 000120 constant entry external dcl 68 ref 111 clock builtin function dcl 74 ref 92 142 231 clock_value 000124 automatic fixed bin(71,0) dcl 39 set ref 137* 142 148 150 code 000100 automatic fixed bin(35,0) dcl 24 set ref 100* 101 106* 107 108* 111* 112 121* 122 123* 135* 136 137* 138 139* 154* 155 156* 157 166* 167 168* 169 170* 171 172* 179* 185* 208* 209 211* 234* 235 236* 242* 244 259* 260 261* 262 271* 272* com_err_ 000100 constant entry external dcl 60 ref 102 108 113 123 139 143 158 172 176 181 187 192 197 203 211 220 236 263 276 convert_date_to_binary_ 000124 constant entry external dcl 70 ref 137 cu_$arg_count 000114 constant entry external dcl 66 ref 118 cu_$arg_ptr 000116 constant entry external dcl 67 ref 100 121 135 154 166 cv_oct_check_ 000110 constant entry external dcl 64 ref 156 dates_array 000147 automatic bit(36) array packed unaligned dcl 43 set ref 207* 208* 217 217 224 226 226 227 dirname 3 based char(168) level 3 in structure "retv_request" dcl 2-7 in procedure "err" set ref 106* 116 170 179 181* 208* 211* 276* 276 dirname parameter char packed unaligned dcl 256 in procedure "check_access" set ref 255 259* 261* 271* 272* dtm constant fixed bin(17,0) initial dcl 48 ref 217 224 226 227 ename parameter char packed unaligned dcl 256 in procedure "check_access" set ref 255 259* 271* ename 55 based char(32) level 3 in structure "retv_request" dcl 2-7 in procedure "err" set ref 106* 111* 116 170 179 181* 208* 211* 276* error_table_$badopt 000062 external static fixed bin(35,0) dcl 52 set ref 192* error_table_$nostars 000064 external static fixed bin(35,0) dcl 53 set ref 113* expand_pathname_ 000122 constant entry external dcl 69 ref 106 168 261 fixed builtin function dcl 73 ref 224 227 fixed_bin 102 based structure level 2 dcl 2-7 set ref 89* from_time 106 based fixed bin(71,0) level 3 dcl 2-7 set ref 150* 196 201 218 get_ring_ 000072 constant entry external dcl 57 ref 179 179 185 185 271 271 272 272 hcs_$get_dates 000076 constant entry external dcl 59 ref 208 hcs_$get_user_effmode 000074 constant entry external dcl 58 ref 179 185 271 272 hcs_$status_minf 000112 constant entry external dcl 65 ref 170 259 hdr_version 2 based fixed bin(17,0) level 3 dcl 2-7 set ref 93* header based structure level 2 dcl 2-7 i 000116 automatic fixed bin(17,0) dcl 33 set ref 233* ioa_ 000104 constant entry external dcl 62 ref 244 ioa_$rsnnl 000102 constant entry external dcl 61 ref 233 local_retv_request 000154 automatic structure level 1 dcl 50 set ref 84 long_id 000102 automatic bit(1) packed unaligned dcl 26 set ref 85* 127* 241 message_segment_$add_file 000106 constant entry external dcl 63 ref 234 message_segment_$get_message_count_file 000066 constant entry external dcl 55 ref 242 message_type 65 based fixed bin(17,0) level 3 dcl 2-7 set ref 94* ms_count 000101 automatic fixed bin(17,0) dcl 25 set ref 242* 243* 243 244* msg_time based fixed bin(71,0) level 3 dcl 2-7 set ref 92* 240* myname 000000 constant char(32) initial packed unaligned dcl 45 set ref 102* 102* 108* 113* 123* 139* 143* 158* 172* 176* 181* 187* 192* 197* 203* 211* 220* 236* 263* 276* narg 000112 automatic fixed bin(17,0) dcl 30 set ref 118* 119 new_dirname 110 based char(168) level 3 dcl 2-7 set ref 168* 185 187* new_ename 162 based char(32) level 3 dcl 2-7 set ref 168* notify 66(01) based bit(1) level 4 packed packed unaligned dcl 2-7 set ref 131* orig_queue 70 based fixed bin(17,0) level 3 dcl 2-7 set ref 97* 162* 233* pmode 000115 automatic fixed bin(5,0) dcl 32 set ref 185* 186 272* 273 prev_arg 000126 automatic char(32) packed unaligned dcl 40 set ref 133* 146 previous 101 based bit(1) level 3 dcl 2-7 set ref 126* 196 210 218 227 231 q 000146 automatic fixed bin(17,0) dcl 42 set ref 156* 157 157 162 queue_dir 000010 internal static char(168) initial packed unaligned dcl 3-23 set ref 234* 242* 252* queue_msg_hdr based structure level 1 dcl 1-12 queue_msg_hdr_version_1 constant fixed bin(17,0) initial dcl 1-37 ref 93 queue_seg Lastuka F6> Lastuka tina OperDevel OGEaOOOByW;noneVIP7400 vZwick $X4 Zwick dz Multics  SzLTSTE>noneVIP7400_DTR _/gw N"Ǝ.> GWong gw Multics J9m7 cBerlin &>l. T8 Berlin NMLPROD h QZRfR>AnoneWY50_80C QjF tra_ext_1 ext_entry ext_entry_desc int_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry com_err_ convert_date_to_binary_ cu_$arg_count cu_$arg_ptr cv_oct_check_ expand_pathname_ get_ring_ hcs_$get_dates hcs_$get_user_effmode hcs_$status_minf ioa_ ioa_$rsnnl message_segment_$add_file message_segment_$get_message_count_file request_id_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$nostars LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000430 84 000445 85 000447 86 000450 87 000451 88 000452 89 000456 90 000462 91 000470 92 000472 93 000474 94 000477 95 000501 96 000503 97 000513 98 000515 100 000517 101 000536 102 000540 103 000570 105 000571 106 000576 107 000627 108 000631 109 000663 111 000664 112 000702 113 000704 114 000731 116 000732 117 000755 118 000757 119 000766 120 000771 121 000772 122 001007 123 001011 124 001044 126 001045 127 001063 128 001072 129 001105 131 001131 132 001145 133 001161 134 001164 135 001165 136 001202 137 001204 138 001230 139 001232 140 001264 142 001265 143 001270 144 001324 146 001325 147 001331 148 001333 149 001336 150 001337 151 001342 152 001343 153 001353 154 001354 155 001371 156 001373 157 001417 158 001426 160 001462 162 001463 163 001465 164 001466 165 001472 166 001473 167 001510 168 001512 169 001543 170 001545 171 001614 172 001616 173 001642 175 001643 176 001646 177 001673 179 001674 180 001747 181 001756 183 002014 185 002015 186 002064 187 002073 188 002125 190 002126 192 002127 193 002161 195 002162 196 002163 197 002172 198 002217 201 002220 203 002225 204 002252 207 002253 208 002264 209 002312 210 002314 211 002317 213 002353 215 002354 217 002355 218 002362 220 002372 222 002417 224 002420 225 002426 226 002427 227 002431 231 002442 233 002452 234 002501 235 002542 236 002544 237 002570 239 002571 240 002573 241 002604 242 002611 243 002636 244 002644 247 002677 251 002700 252 002716 253 002725 255 002726 259 002747 260 003010 261 003013 262 003042 263 003045 264 003072 266 003075 267 003105 269 003106 271 003131 272 003200 273 003246 276 003265 278 003334 ----------------------------------------------------------- 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