COMPILATION LISTING OF SEGMENT gfms_gtss_attributes_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1207.1 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gfms_gtss_attributes_: proc (dir, ent, fep, date); 7 8 /* Provide gtss attributes on file dir>ent 9* 10* Author: Dave Ward 10/17/80 11* Change: Dave Ward 10/30/80 fep parameter, new file name list. 12* Change: Dave Ward 11/12/80 change date to a parameter. 13* Change: Dave Ward 11/21/80 corrected setting mode random. 14**/ 15 dcl date bit(36)aligned parm; 16 dcl dir char(168)parm; 17 dcl ent char(32)parm; 18 dcl fep ptr parm; 19 fnep = fep; 20 gtss_file_values.version = 1; 21 gtss_file_values.dname = dir; 22 gtss_file_values.ename = " "; 23 gtss_file_values.new_ename = ent; 24 gtss_file_values.change_name = "0"b; /* Do not change name of file. */ 25 gtss_file_values.set_switch.mode_random 26 , gtss_file_values.set_switch.maxll 27 , gtss_file_values.set_switch.curll 28 , gtss_file_values.set_switch.busy 29 , gtss_file_values.set_switch.attr 30 , gtss_file_values.set_switch.null_file 31 , gtss_file_values.set_switch.number_allocations 32 , gtss_file_values.set_switch.creation_date 33 = "1"b; 34 35 gtss_file_values.data_flags.mode_random = ((file_name_entry.attr.mode & "0100"b) ^= "0"b); 36 gtss_file_values.data_fields.maxll = file_name_entry.attr.max_size_llinks; 37 gtss_file_values.data_fields.curll = file_name_entry.llinks; 38 gtss_file_values.data_flags.busy = "0"b; 39 gtss_file_values.attributes.attr = file_name_entry.user_info.value; 40 gtss_file_values.data_flags.null_file = "0"b; 41 gtss_file_values.data_fields.number_allocations = 0; 42 gtss_file_values.creation_date = gfms_ascii_ ((date)); 43 44 call gtss_attributes_mgr_$set (addr (gtss_file_values), code); 45 if code ^= 0 then 46 call com_err_ ( 47 code 48 , "gfms_gtss_attributes_" 49 , "For ^a>^a." 50 , dir 51 , ent 52 ); 53 return; 54 55 /* Variables for gfms_gtss_attributes_ */ 56 /* IDENTIFIER ATTRIBUTES */ 57 dcl code fixed bin(35); 58 dcl com_err_ entry() options(variable); 59 dcl gtss_attributes_mgr_$set entry (ptr, fixed bin(35)); 60 dcl gfms_ascii_ entry (bit(*)) returns(char(*)); 61 1 1 /* BEGIN INCLUDE FILE gfms_file_name_list.incl.pl1 (Wardd Multics) 10/30/80 1053.4 mst Thu */ 1 2 1 3 /* List of files (with associated information) 1 4* found on the save tape. 1 5**/ 1 6 dcl 1 file_name_list aligned based(nlp) 1 7 , 3 nn fixed bin /* Number of names (entries). */ 1 8 , 3 total_llinks fixed bin(24) /* Accumulitive llinks. */ 1 9 , 3 next_entry fixed bin(24) /* index to start_entry to next entry. */ 1 10 , 3 start_entry (255*1024-3)bit(36) 1 11 ; 1 12 1 13 dcl fnep ptr; 1 14 dcl 1 file_name_entry aligned based(fnep) 1 15 , 3 llinks fixed bin(24) /* llinks in file. */ 1 16 , 3 attr like description_tree.attributes 1 17 , 3 char_length /* Lengths of variable. */ 1 18 , 4 defl fixed bin 1 19 , 4 naml fixed bin 1 20 , 4 catl fixed bin 1 21 , 3 defective char(file_name_entry.char_length.defl)unal 1 22 , 3 name char(file_name_entry.char_length.naml)unal 1 23 , 3 catalog char(file_name_entry.char_length.catl)unal 1 24 ; 1 25 1 26 /* END INCLUDE FILE gfms_file_name_list.incl.pl1 */ 62 63 2 1 /* BEGIN INCLUDE FILE gtss_file_values.incl.pl1 */ 2 2 /* 2 3* Created: (Wardd Multics) 09/01/78 1447.1 mst Fri 2 4**/ 2 5 2 6 /** The gtss_file_values structure provides parameters to the 2 7* gtss_attributes_mgr_ subroutine. 2 8* 2 9* The caller must provide space for this structure, fill in 2 10* the version with 1, the dname and ename with the file directory 2 11* and entry name, and for calls to gtss_attributes_mgr_$set, 2 12* fill in values to be reset and set the corresponding set_switch 2 13* to "1"b. 2 14* 2 15* If the (Multics) file located is a directory 2 16* a GCOS catalog is implied. 2 17* 2 18* If both ename and new_ename are set but no set_switch 2 19* is "1"b (and the set entry is called) this implies 2 20* that the existing attribute values are being renamed 2 21* to the new entry. 2 22* 2 23* Then: call gtss_attributes_mgr_$set(addr(gtss_file_values),code); 2 24* 2 25* Use of ename/new_ename combinations 2 26* for set entry. 2 27* 2 28* -|-----------|-----------|-|-----------------| 2 29* | ename |new_ename || meaning | 2 30* =|===========|===========|=|=================| 2 31* | blanks | blanks || illegal | 2 32* -|-----------|-----------|-|-----------------| 2 33* | blanks |not blanks|| initial | 2 34* | | || setting | 2 35* -|-----------|-----------|-|-----------------| 2 36* |not blanks| blanks || check enames's | 2 37* | | ||attribute values| 2 38* | | || and reset. | 2 39* -|-----------|-----------|-|-----------------| 2 40* |not blanks|not blanks|| delete ename's | 2 41* | | || values and put | 2 42* | | || on values for | 2 43* | | || new_ename's | 2 44* -|-----------|-----------|-|-----------------| 2 45***/ 2 46 dcl attr_name (0:7)char(4)static int options(constant)init( 2 47 /* 0 */ "mode" 2 48 , /* 1 */ "maxl" 2 49 , /* 2 */ "curl" 2 50 , /* 3 */ "busy" 2 51 , /* 4 */ "attr" 2 52 , /* 5 */ "null" 2 53 , /* 6 */ "noal" 2 54 , /* 7 */ "crdt" 2 55 ); 2 56 dcl 1 gtss_file_values aligned automatic 2 57 , 3 version fixed bin(17) /* Current version is 1. (OUT) */ 2 58 , 3 dname char(168)unal /* Directory name. (IN) */ 2 59 , 3 ename char(032)unal /* Entry name. (IN) */ 2 60 , 3 new_ename char(032)unal /* New entry name. (IN) */ 2 61 , 3 change_name bit(1) /* "1"b => Change segment name. (IN) */ 2 62 , 3 catalog bit(1) /* "1"b => File is a catalog (Multics directory). (OUT) */ 2 63 , 3 info_ptr ptr /* hcs_$status_long (4. entry_ptr) info structure address. (OUT) */ 2 64 , 3 set_switch /* "1"b => Set corresponding value. (IN) */ 2 65 , 4 mode_random bit(01)unal /* 0. Set the random/sequential(linked) field. */ 2 66 , 4 maxll bit(01)unal /* 1. Set max size value. */ 2 67 , 4 curll bit(01)unal /* 2. Set current size value. */ 2 68 , 4 busy bit(01)unal /* 3. Set file as busy. */ 2 69 , 4 attr bit(01)unal /* 4. Set user attributes value. */ 2 70 , 4 null_file bit(01)unal /* 5. Set null file value. */ 2 71 , 4 number_allocations bit(01)unal /* 6. Set or increment number of uses. */ 2 72 , 4 creation_date bit(01)unal /* 7. Set file creation date. */ 2 73 , 4 not_in_use bit(28)unal 2 74 /* The above set_ variables should be declared in an order 2 75* corresponding to the value in the attr_name array. */ 2 76 , 3 data_flags /* (OUT|IN) */ 2 77 , 4 mode_random bit(01)unal /* "1"b => random. */ 2 78 , 4 busy bit(01)unal /* "1"b => file is busy. */ 2 79 , 4 null_file bit(01)unal /* "1"b => file is null. */ 2 80 , 4 not_in_use2 bit(33)unal 2 81 , 3 data_fields /* (OUT|IN) */ 2 82 , 4 curll fixed bin(35) /* Current length in llinks (>=0). */ 2 83 , 4 maxll fixed bin(35) /* Maximum length in llinks (>=0). */ 2 84 , 4 number_allocations fixed bin(35) /* 0 => set | >0 => increment modulo 262144. */ 2 85 , 3 attributes /* (OUT|IN) */ 2 86 , 4 not_in_use3 bit(01)unal 2 87 , 4 attr bit(35)unal /* User specified file attribute value. */ 2 88 , 3 creation_date char(06) /* MMDDYY of creation. */ 2 89 ; 2 90 2 91 2 92 /* END INCLUDE FILE gtss_file_values.incl.pl1 */ 64 65 3 1 /* BEGIN INCLUDE FILE gfms_description_tree.incl.pl1 (Wardd Multics) 10/28/80 1222.2 mst Tue */ 3 2 dcl 1 description_tree aligned based(dtp) 3 3 3 4 , 3 start_list 3 5 , 4 cat_child (0:1020)fixed bin(18)unsigned 3 6 , 4 file_child (0:1020)fixed bin(18)unsigned 3 7 , 4 desc (0:1020)fixed bin(18)unsigned 3 8 3 9 , 3 n_cat fixed bin 3 10 , 3 cat (20000) 3 11 , 4 name bit(72) 3 12 , 4 ascii_name char(12)var 3 13 , 4 is_cat bit(1)unal 3 14 , 4 fill bit(17)unal 3 15 , 4 parent_sector fixed bin(18)unsigned unal 3 16 , 4 child_sector fixed bin(18)unsigned unal 3 17 , 4 child_link fixed bin(18)unsigned unal 3 18 3 19 , 3 n_desc fixed bin 3 20 , 3 description (19000) 3 21 , 4 link fixed bin(18)unsigned unal 3 22 , 4 sector fixed bin(18)unsigned unal 3 23 , 4 name bit(72) 3 24 , 4 attributes 3 25 , 5 max_size_llinks fixed bin(18)unsigned unal 3 26 , 5 mode bit(4)unal /* 1000 seq 0100 random 0010 ascii 0001 ids */ 3 27 , 5 not_in_use bit(14)unal 3 28 , 5 user_info 3 29 , 6 present bit(1)unal 3 30 , 6 value bit(35)unal 3 31 ; 3 32 3 33 /* END INCLUDE FILE gfms_description_tree.incl.pl1 */ 66 67 4 1 /* BEGIN INCLUDE FILE gfms_ext.incl.pl1 (Wardd Multics) 10/07/80 2142.2 mst Tue */ 4 2 /* Modified by: S. C. Akers 02/08/82 Add gfms_ext$working_dir, 4 3* mapping_rule, 4 4* umc_name 4 5* Modified Ron Barstad 83-06-03 attach_desc from 40 to 80 char 4 6**/ 4 7 4 8 dcl 1 gfms_ext$print_routines aligned ext 4 9 , 3 ioa entry variable options(variable) 4 10 , 3 ioa_nnl entry variable options(variable) 4 11 ; 4 12 4 13 dcl 1 gfms_ext$temp_segs aligned ext 4 14 , 3 dtp ptr 4 15 , 3 nlp ptr 4 16 , 3 inp ptr 4 17 ; 4 18 4 19 dcl 1 gfms_ext$tape_file aligned ext 4 20 , 3 cbp ptr 4 21 , 3 attach_description char(80)unal 4 22 , 3 density 4 23 , 4 ftd fixed bin /* First tape density to attempt. */ 4 24 , 4 ltd fixed bin /* Last tape density to attempt. */ 4 25 , 3 tape_reel_information 4 26 , 4 reel_serial_num char(6) 4 27 , 4 file_serial_num char(6) 4 28 , 4 reel_sequence_num char(6) 4 29 ; 4 30 4 31 dcl 1 gfms_ext$options aligned ext 4 32 , 3 close bit(1)unal /* perform iox close. */ 4 33 , 3 detach bit(1)unal /* perform iox detach. */ 4 34 , 3 dump bit(1)unal /* dump tape records/information. */ 4 35 , 3 gf bit(1)unal /* provide gtss file attributes. */ 4 36 , 3 prfn bit(1)unal /* print file names. */ 4 37 , 3 scan_ss bit(1)unal /* scan substructure, display, quit. */ 4 38 , 3 tll bit(1)unal /* print totals of llinks. */ 4 39 , 3 unload bit(1)unal /* unload files. */ 4 40 , 3 NOT_IN_USE bit(28)unal 4 41 ; 4 42 4 43 dcl gfms_ext$working_dir char (168) var ext static; /* Where to restore the files. 4 44* It may be the user's working 4 45* directory, or the UMC or SMC directory. */ 4 46 4 47 dcl gfms_ext$mapping_rule char(3) external static; 4 48 4 49 dcl gfms_ext$umc_name char(12) external static; 4 50 4 51 /* END INCLUDE FILE gfms_ext.incl.pl1 */ 68 69 end gfms_gtss_attributes_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1041.9 gfms_gtss_attributes_.pl1 >spec>on>7105>gfms_gtss_attributes_.pl1 62 1 03/27/82 0424.8 gfms_file_name_list.incl.pl1 >ldd>include>gfms_file_name_list.incl.pl1 64 2 09/09/83 1714.0 gtss_file_values.incl.pl1 >ldd>include>gtss_file_values.incl.pl1 66 3 03/27/82 0424.8 gfms_description_tree.incl.pl1 >ldd>include>gfms_description_tree.incl.pl1 68 4 10/24/83 1642.4 gfms_ext.incl.pl1 >ldd>include>gfms_ext.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. attr 100(04) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* attr 1 based structure level 2 in structure "file_name_entry" dcl 1-14 in procedure "gfms_gtss_attributes_" attr 105(01) 000104 automatic bit(35) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 39* attributes 476374 based structure array level 3 in structure "description_tree" dcl 3-2 in procedure "gfms_gtss_attributes_" attributes 105 000104 automatic structure level 2 in structure "gtss_file_values" dcl 2-56 in procedure "gfms_gtss_attributes_" busy 101(01) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 38* busy 100(03) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* change_name 73 000104 automatic bit(1) level 2 dcl 2-56 set ref 24* code 000100 automatic fixed bin(35,0) dcl 57 set ref 44* 45 45* com_err_ 000010 constant entry external dcl 58 ref 45 creation_date 100(07) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* creation_date 106 000104 automatic char(6) level 2 in structure "gtss_file_values" dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 42* curll 100(02) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* curll 102 000104 automatic fixed bin(35,0) level 3 in structure "gtss_file_values" dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 37* data_fields 102 000104 automatic structure level 2 dcl 2-56 data_flags 101 000104 automatic structure level 2 dcl 2-56 date parameter bit(36) dcl 15 ref 6 42 description 476371 based structure array level 2 dcl 3-2 description_tree based structure level 1 dcl 3-2 dir parameter char(168) unaligned dcl 16 set ref 6 21 45* dname 1 000104 automatic char(168) level 2 packed unaligned dcl 2-56 set ref 21* ename 53 000104 automatic char(32) level 2 packed unaligned dcl 2-56 set ref 22* ent parameter char(32) unaligned dcl 17 set ref 6 23 45* fep parameter pointer dcl 18 ref 6 19 file_name_entry based structure level 1 dcl 1-14 fnep 000102 automatic pointer dcl 1-13 set ref 19* 35 36 37 39 gfms_ascii_ 000014 constant entry external dcl 60 ref 42 gtss_attributes_mgr_$set 000012 constant entry external dcl 59 ref 44 gtss_file_values 000104 automatic structure level 1 dcl 2-56 set ref 44 44 llinks based fixed bin(24,0) level 2 dcl 1-14 ref 37 max_size_llinks 1 based fixed bin(18,0) level 3 packed unsigned unaligned dcl 1-14 ref 36 maxll 103 000104 automatic fixed bin(35,0) level 3 in structure "gtss_file_values" dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 36* maxll 100(01) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* mode 1(18) based bit(4) level 3 packed unaligned dcl 1-14 ref 35 mode_random 100 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* mode_random 101 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 35* new_ename 63 000104 automatic char(32) level 2 packed unaligned dcl 2-56 set ref 23* null_file 100(05) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* null_file 101(02) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 40* number_allocations 100(06) 000104 automatic bit(1) level 3 in structure "gtss_file_values" packed unaligned dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 25* number_allocations 104 000104 automatic fixed bin(35,0) level 3 in structure "gtss_file_values" dcl 2-56 in procedure "gfms_gtss_attributes_" set ref 41* set_switch 100 000104 automatic structure level 2 dcl 2-56 user_info 2 based structure level 3 dcl 1-14 value 2(01) based bit(35) level 4 packed unaligned dcl 1-14 ref 39 version 000104 automatic fixed bin(17,0) level 2 dcl 2-56 set ref 20* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. attr_name internal static char(4) initial array unaligned dcl 2-46 file_name_list based structure level 1 dcl 1-6 gfms_ext$mapping_rule external static char(3) unaligned dcl 4-47 gfms_ext$options external static structure level 1 dcl 4-31 gfms_ext$print_routines external static structure level 1 dcl 4-8 gfms_ext$tape_file external static structure level 1 dcl 4-19 gfms_ext$temp_segs external static structure level 1 dcl 4-13 gfms_ext$umc_name external static char(12) unaligned dcl 4-49 gfms_ext$working_dir external static varying char(168) dcl 4-43 NAME DECLARED BY EXPLICIT CONTEXT. gfms_gtss_attributes_ 000025 constant entry external dcl 6 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 44 44 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 316 334 240 326 Length 576 240 16 225 55 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gfms_gtss_attributes_ 180 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gfms_gtss_attributes_ 000100 code gfms_gtss_attributes_ 000102 fnep gfms_gtss_attributes_ 000104 gtss_file_values gfms_gtss_attributes_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ gfms_ascii_ gtss_attributes_mgr_$set NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000020 19 000032 20 000036 21 000040 22 000044 23 000047 24 000053 25 000054 35 000074 36 000104 37 000107 38 000111 39 000113 40 000117 41 000121 42 000122 44 000151 45 000165 53 000234 ----------------------------------------------------------- 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