COMPILATION LISTING OF SEGMENT gcos_daemon_temp_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/19/82 1000.6 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 gcos_daemon_temp_: proc; 12 13 /* DECLARATIONS */ 14 /* ------------ */ 15 16 17 /* fixed bin */ 18 19 dcl ( 20 fixed_bin2 /* variable from callers' star_ call passed on */ 21 ) fixed bin (2) aligned; 22 23 dcl ( 24 a_ecount, /* number of entries corresponding to segment_name (argument) */ 25 ecount /* number of entries corresponding to segment_name (internal) */ 26 ) fixed bin aligned; 27 28 dcl ( 29 a_code, /* error code (argument) */ 30 code, /* error code (internal) */ 31 error_table_$nomatch ext 32 ) fixed bin (35) aligned; 33 34 35 /* pointers */ 36 37 dcl ( 38 freep int static, /* pointer to system free area */ 39 ptr1, /* dummy arguments */ 40 ptr2, 41 ptr3, 42 ptr4, 43 ptr5, 44 sp /* mask pointer for status from ios_ */ 45 ) ptr aligned; 46 47 48 /* bit strings */ 49 50 dcl ( 51 init int static init ("0"b) /* ON once system free area is called */ 52 ) bit (1) aligned; 53 54 dcl ( 55 a_status_stuff, /* returned status from ios_ (argument) */ 56 status_stuff /* returned status from ios_ (internal) */ 57 ) bit (72) aligned; 58 59 60 /* character strings */ 61 62 dcl ( 63 a_stream_name, /* stream name (argument) */ 64 stream_name /* stream name (internal) */ 65 ) char (12) aligned; 66 67 dcl ( 68 a_segment_name, /* star name (argument) */ 69 segment_name /* star name (internal) */ 70 ) char (32) aligned; 71 72 dcl ( 73 a_dir_name, /* directory being searched for names (argument) */ 74 dir_name /* directory being searched for names (internal) */ 75 ) char (168) aligned; 76 77 78 /* built in */ 79 80 dcl ( 81 addr, 82 null 83 ) builtin; 84 85 86 /* masks */ 87 88 dcl 1 status aligned based (sp), /* for interpreting status from ios_ */ 89 2 code fixed bin aligned; 90 91 92 /* external entries */ 93 94 dcl freen_ ext entry 95 (ptr aligned); 96 97 dcl get_system_free_area_ ext entry 98 returns (ptr aligned); 99 100 dcl hcs_$star_ ext entry 101 (char (*) aligned, char (*) aligned, fixed bin (2) aligned, ptr aligned, fixed bin aligned, ptr aligned, 102 ptr aligned, fixed bin (35) aligned); 103 104 dcl ios_$attach ext entry 105 (char (*) aligned, char (*) aligned, char (*) aligned, char (*) aligned, bit (72) aligned); 106 107 dcl ios_$detach ext entry 108 (char (*) aligned, char (*) aligned, char (*) aligned, bit (72) aligned); 109 110 /* */ 111 112 star_: entry (a_dir_name, a_segment_name, fixed_bin2, ptr1, a_ecount, ptr2, ptr3, a_code); 113 114 /* This entry simulates a star handler which returns a count of the entries corresponding to 115* only the star name if ptr1 is null. The current star handler returns a count of all the 116* entries in the directory */ 117 118 119 sp = addr (status_stuff); /* mask pointer for status from ios_ */ 120 121 if ^init /* first time proc called */ 122 then do; 123 freep = get_system_free_area_ (); /* get pointer to system free area */ 124 init = "1"b; /* remember you've been called */ 125 end; 126 127 dir_name = a_dir_name; /* copy in arguments */ 128 segment_name = a_segment_name; 129 130 call hcs_$star_ (dir_name, segment_name, fixed_bin2, freep, ecount, ptr4, ptr5, code); 131 /* make a call to current star_ */ 132 133 if ptr4 ^= null /* free any allocation */ 134 then call freen_ (ptr4); 135 if ptr5 ^= null 136 then call freen_ (ptr5); 137 138 if code = error_table_$nomatch /* no entries with star name */ 139 then do; 140 code = 0; /* return sensible variables */ 141 ecount = 0; 142 end; 143 144 a_code = code; /* return arguments */ 145 a_ecount = ecount; 146 147 return; 148 149 /* */ 150 151 resetread: entry (a_stream_name, a_status_stuff); 152 153 /* This function simulates a currently missing function in the card reader dim: resetread. 154* It does this by first detaching, then reattaching the card reader */ 155 156 sp = addr (status_stuff); /* mask pointer for status from ios_ */ 157 158 stream_name = a_stream_name; /* copy in argument */ 159 160 call ios_$detach (stream_name, "rdra", "", status_stuff); /* detach the card reader */ 161 if status.code = 0 /* detach o.k. */ 162 then call ios_$attach (stream_name, "rdr21", "rdra", "", status_stuff); /* reattach it */ 163 164 a_status_stuff = status_stuff; /* return status */ 165 166 return; 167 168 end gcos_daemon_temp_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/19/82 0929.6 gcos_daemon_temp_.pl1 >spec>on>11/19/82>gcos_daemon_temp_.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. a_code parameter fixed bin(35,0) dcl 28 set ref 112 144* a_dir_name parameter char(168) dcl 72 ref 112 127 a_ecount parameter fixed bin(17,0) dcl 23 set ref 112 145* a_segment_name parameter char(32) dcl 67 ref 112 128 a_status_stuff parameter bit(72) dcl 54 set ref 151 164* a_stream_name parameter char(12) dcl 62 ref 151 158 addr builtin function dcl 80 ref 119 156 code 000101 automatic fixed bin(35,0) dcl 28 in procedure "gcos_daemon_temp_" set ref 130* 138 140* 144 code based fixed bin(17,0) level 2 in structure "status" dcl 88 in procedure "gcos_daemon_temp_" ref 161 dir_name 000125 automatic char(168) dcl 72 set ref 127* 130* ecount 000100 automatic fixed bin(17,0) dcl 23 set ref 130* 141* 145 error_table_$nomatch 000014 external static fixed bin(35,0) dcl 28 ref 138 fixed_bin2 parameter fixed bin(2,0) dcl 19 set ref 112 130* freen_ 000016 constant entry external dcl 94 ref 133 135 freep 000010 internal static pointer dcl 37 set ref 123* 130* get_system_free_area_ 000020 constant entry external dcl 97 ref 123 hcs_$star_ 000022 constant entry external dcl 100 ref 130 init 000012 internal static bit(1) initial dcl 50 set ref 121 124* ios_$attach 000024 constant entry external dcl 104 ref 161 ios_$detach 000026 constant entry external dcl 107 ref 160 null builtin function dcl 80 ref 133 135 ptr1 parameter pointer dcl 37 ref 112 ptr2 parameter pointer dcl 37 ref 112 ptr3 parameter pointer dcl 37 ref 112 ptr4 000102 automatic pointer dcl 37 set ref 130* 133 133* ptr5 000104 automatic pointer dcl 37 set ref 130* 135 135* segment_name 000115 automatic char(32) dcl 67 set ref 128* 130* sp 000106 automatic pointer dcl 37 set ref 119* 156* 161 status based structure level 1 dcl 88 status_stuff 000110 automatic bit(72) dcl 54 set ref 119 156 160* 161* 164 stream_name 000112 automatic char(12) dcl 62 set ref 158* 160* 161* NAMES DECLARED BY EXPLICIT CONTEXT. gcos_daemon_temp_ 000021 constant entry external dcl 11 resetread 000201 constant entry external dcl 151 star_ 000036 constant entry external dcl 112 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 424 454 313 434 Length 636 313 30 145 111 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_daemon_temp_ 170 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 freep gcos_daemon_temp_ 000012 init gcos_daemon_temp_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_daemon_temp_ 000100 ecount gcos_daemon_temp_ 000101 code gcos_daemon_temp_ 000102 ptr4 gcos_daemon_temp_ 000104 ptr5 gcos_daemon_temp_ 000106 sp gcos_daemon_temp_ 000110 status_stuff gcos_daemon_temp_ 000112 stream_name gcos_daemon_temp_ 000115 segment_name gcos_daemon_temp_ 000125 dir_name gcos_daemon_temp_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. freen_ get_system_free_area_ hcs_$star_ ios_$attach ios_$detach THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$nomatch LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000020 112 000026 119 000043 121 000045 123 000047 124 000055 127 000060 128 000065 130 000071 133 000133 135 000146 138 000161 140 000165 141 000166 144 000167 145 000172 147 000174 151 000175 156 000206 158 000210 160 000217 161 000246 164 000305 166 000312 ----------------------------------------------------------- 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