COMPILATION LISTING OF SEGMENT convert_MR10_2_projfile Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/09/85 1128.2 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* convert_MR10_2_projfile.pl1 -- converts to MR11 projfile-entry format */ 7 /* To be run over >udd>sa>a>projfile */ 8 /* format: style2 */ 9 10 /* BIM 1984-07-05 */ 11 /* Modified 1984-09-14 to detect double-conversions */ 12 13 convert_MR10_2_projfile: 14 procedure options (variable); 15 16 declare com_err_ entry () options (variable); 17 declare cu_$arg_count entry (fixed bin, fixed bin (35)); 18 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 19 declare expand_pathname_ entry (character (*), character (*), character (*), fixed binary (35)); 20 declare get_temp_segment_ entry (character (*), pointer, fixed binary (35)); 21 declare initiate_file_ entry (character (*), character (*), bit (*), pointer, fixed binary (24), 22 fixed binary (35)); 23 declare pathname_ entry (character (*), character (*)) returns (character (168)); 24 declare release_temp_segment_ entry (character (*), pointer, fixed binary (35)); 25 declare terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 26 27 28 declare arg_count fixed bin; 29 declare ap pointer; 30 declare al fixed bin (21); 31 declare argument char (al) based (ap); 32 declare code fixed bin (35); 33 declare dir_name char (168); 34 declare entryname char (32); 35 declare (pp, old_pp) pointer; 36 declare projfileex fixed bin; 37 38 declare ME char (32) init ("convert_MR10_2_projfile") int static options (constant); 39 1 1 /* BEGIN INCLUDE FILE .. projfile.incl.pl1 */ 1 2 /* Modified by T. Casey April 1976 to change disk_infs (obsolete) to dir_disk_use */ 1 3 /* Modified 1984-07-09 BIM for dir_disk_quota, version */ 1 4 /* Modified 1984-09-14 BIM for reasonable array size */ 1 5 1 6 dcl 1 projfile based (pp) aligned, /* Project history file */ 1 7 2 nproj fixed bin (35), /* number of entries */ 1 8 2 version fixed bin, 1 9 2 projfilexx0 (6) bit (36) aligned, 1 10 2 projfiletab (3000), /* in seg limit */ 1 11 3 id char (12) unal, /* project ID */ 1 12 3 title char (52) unal, /* project title */ 1 13 3 inv char (32) unal, /* name of principal investigator */ 1 14 3 inv_addr char (32) unal, /* address */ 1 15 3 sup char (32) unal, /* name of supervisor */ 1 16 3 sup_addr char (32) unal, /* address */ 1 17 3 sup_phone char (16) unal, /* telephone */ 1 18 3 on fixed bin (71), /* date on */ 1 19 3 off fixed bin (71), /* date off */ 1 20 3 disk_psec fixed bin (71), /* project disk page-seconds */ 1 21 3 disk_quota fixed bin (35), /* project disk quota */ 1 22 3 dir_disk_quota fixed bin (35), /* project dir disk quota */ 1 23 3 disk_use fixed bin (35), /* total segment pages used */ 1 24 3 dir_disk_use fixed bin (35), /* total directory pages used */ 1 25 3 misc_charges float bin, /* manuals, etc */ 1 26 3 n_misc fixed bin, /* number of entries */ 1 27 3 processed fixed bin, /* temp for usage-report */ 1 28 3 pad bit (36) aligned; /* out to even number of words */ 1 29 1 30 dcl loph int static fixed bin (17) options (constant) init (8), /* lth of projfile header */ 1 31 lope int static fixed bin (17) options (constant) init (66); /* lth of projflile entry */ 1 32 1 33 dcl PROJFILE_VERSION fixed bin init (3) int static options (constant); 1 34 1 35 /* END INCLUDE FILE ... projfile.incl.pl1 */ 40 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 41 3 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 3 2 /* format: style2,^inddcls,idind32 */ 3 3 3 4 declare 1 terminate_file_switches based, 3 5 2 truncate bit (1) unaligned, 3 6 2 set_bc bit (1) unaligned, 3 7 2 terminate bit (1) unaligned, 3 8 2 force_write bit (1) unaligned, 3 9 2 delete bit (1) unaligned; 3 10 3 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 3 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 3 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 3 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 3 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 3 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 3 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 3 18 3 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 42 43 44 /**** MR10.2 projfile structure */ 45 46 dcl 1 old_projfile based (old_pp) aligned, 47 /* Project history file */ 48 2 nproj fixed bin (35), /* number of entries */ 49 2 projfilexx0_1 (7) bit (36) aligned, 50 2 projfiletab (3000), 51 3 id char (12), /* project ID */ 52 3 title char (52), /* project title */ 53 3 inv char (32), /* name of principal investigator */ 54 3 inv_addr char (32), /* address */ 55 3 sup char (32), /* name of supervisor */ 56 3 sup_addr char (32), /* address */ 57 3 sup_phone char (16), /* telephone */ 58 3 on fixed bin (71), /* date on */ 59 3 off fixed bin (71), /* date off */ 60 3 disk_psec fixed bin (71), /* project disk page-seconds */ 61 3 disk_quota fixed bin (35), /* project disk quota */ 62 3 disk_use fixed bin (35), /* total segment pages used */ 63 3 dir_disk_use fixed bin (35), /* total directory pages used */ 64 3 misc_charges float bin, /* manuals, etc */ 65 3 n_misc fixed bin, /* number of entries */ 66 3 processed fixed bin; /* temp for usage-report */ 67 68 69 call cu_$arg_count (arg_count, code); 70 if code ^= 0 71 then do; 72 call com_err_ (code, ME); 73 return; 74 end; 75 76 if arg_count ^= 1 77 then do; 78 call com_err_ (0, ME, "Usage: ^a PROJFILE_PATH", ME); 79 return; 80 end; 81 82 pp, old_pp = null (); 83 84 call cu_$arg_ptr (1, ap, al, (0)); 85 call expand_pathname_ (argument, dir_name, entryname, code); 86 if code ^= 0 87 then do; 88 call com_err_ (code, ME, "^a", argument); 89 return; 90 end; 91 92 call initiate_file_ (dir_name, entryname, RW_ACCESS, old_pp, (0), code); 93 if code ^= 0 94 then do; 95 call com_err_ (code, ME, "^a", pathname_ (dir_name, entryname)); 96 return; 97 end; 98 99 if old_pp -> projfile.version = PROJFILE_VERSION 100 then do; 101 call com_err_ (0, ME, "^a has already been converted to version ^d.", pathname_ (dir_name, entryname), 102 PROJFILE_VERSION); 103 call terminate_file_ (old_pp, (0), TERM_FILE_TERM, (0)); 104 return; 105 end; 106 call get_temp_segment_ (ME, pp, (0)); 107 108 projfile = old_projfile, by name; 109 projfile.version = PROJFILE_VERSION; 110 old_pp -> projfile = projfile; 111 call terminate_file_ (old_pp, (loph + (old_pp -> projfile.nproj * lope)) * 36, TERM_FILE_TRUNC_BC_TERM, (0)); 112 call release_temp_segment_ (ME, pp, (0)); 113 return; 114 end convert_MR10_2_projfile; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/08/85 1134.5 convert_MR10_2_projfile.pl1 >spec>on>41-15>convert_MR10_2_projfile.pl1 40 1 09/20/84 0925.7 projfile.incl.pl1 >ldd>include>projfile.incl.pl1 41 2 04/09/85 1109.7 access_mode_values.incl.pl1 >spec>on>41-15>access_mode_values.incl.pl1 42 3 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.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. ME 000003 constant char(32) initial unaligned dcl 38 set ref 72* 78* 78* 88* 95* 101* 106* 112* PROJFILE_VERSION 000013 constant fixed bin(17,0) initial dcl 1-33 set ref 99 101* 109 RW_ACCESS 000002 constant bit(3) initial unaligned dcl 2-11 set ref 92* TERM_FILE_TERM 000001 constant bit(3) initial unaligned dcl 3-14 set ref 103* TERM_FILE_TRUNC_BC_TERM 000000 constant bit(3) initial unaligned dcl 3-15 set ref 111* al 000104 automatic fixed bin(21,0) dcl 30 set ref 84* 85 85 88 88 ap 000102 automatic pointer dcl 29 set ref 84* 85 88 arg_count 000100 automatic fixed bin(17,0) dcl 28 set ref 69* 76 argument based char unaligned dcl 31 set ref 85* 88* code 000105 automatic fixed bin(35,0) dcl 32 set ref 69* 70 72* 85* 86 88* 92* 93 95* com_err_ 000010 constant entry external dcl 16 ref 72 78 88 95 101 cu_$arg_count 000012 constant entry external dcl 17 ref 69 cu_$arg_ptr 000014 constant entry external dcl 18 ref 84 dir_name 000106 automatic char(168) unaligned dcl 33 set ref 85* 92* 95* 95* 101* 101* entryname 000160 automatic char(32) unaligned dcl 34 set ref 85* 92* 95* 95* 101* 101* expand_pathname_ 000016 constant entry external dcl 19 ref 85 get_temp_segment_ 000020 constant entry external dcl 20 ref 106 initiate_file_ 000022 constant entry external dcl 21 ref 92 lope constant fixed bin(17,0) initial dcl 1-30 ref 111 loph constant fixed bin(17,0) initial dcl 1-30 ref 111 nproj based fixed bin(35,0) level 2 dcl 1-6 set ref 111 old_pp 000172 automatic pointer dcl 35 set ref 82* 92* 99 103* 108 110 111* 111 old_projfile based structure level 1 dcl 46 ref 108 pathname_ 000024 constant entry external dcl 23 ref 95 95 101 101 pp 000170 automatic pointer dcl 35 set ref 82* 106* 108 109 110 112* projfile based structure level 1 dcl 1-6 set ref 108* 110* 110 release_temp_segment_ 000026 constant entry external dcl 24 ref 112 terminate_file_ 000030 constant entry external dcl 25 ref 103 111 version 1 based fixed bin(17,0) level 2 dcl 1-6 set ref 99 109* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-33 E_ACCESS internal static bit(3) initial unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 M_ACCESS internal static bit(3) initial unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS internal static bit(3) initial unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 REW_ACCESS internal static bit(3) initial unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 S_ACCESS internal static bit(3) initial unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 3-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 3-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 3-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 3-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 3-13 W_ACCESS internal static bit(3) initial unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 projfileex automatic fixed bin(17,0) dcl 36 terminate_file_switches based structure level 1 packed unaligned dcl 3-4 NAME DECLARED BY EXPLICIT CONTEXT. convert_MR10_2_projfile 000056 constant entry external dcl 13 NAME DECLARED BY CONTEXT OR IMPLICATION. null builtin function ref 82 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1052 1104 724 1062 Length 1342 724 32 222 126 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME convert_MR10_2_projfile 232 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME convert_MR10_2_projfile 000100 arg_count convert_MR10_2_projfile 000102 ap convert_MR10_2_projfile 000104 al convert_MR10_2_projfile 000105 code convert_MR10_2_projfile 000106 dir_name convert_MR10_2_projfile 000160 entryname convert_MR10_2_projfile 000170 pp convert_MR10_2_projfile 000172 old_pp convert_MR10_2_projfile THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return mpfx2 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_ get_temp_segment_ initiate_file_ pathname_ release_temp_segment_ terminate_file_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000055 69 000063 70 000073 72 000075 73 000112 76 000113 78 000116 79 000151 82 000152 84 000155 85 000175 86 000225 88 000227 89 000261 92 000262 93 000320 95 000322 96 000371 99 000372 101 000376 103 000453 104 000502 106 000503 108 000525 109 000634 110 000636 111 000642 112 000700 113 000722 ----------------------------------------------------------- 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