COMPILATION LISTING OF SEGMENT linus_save_query Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/29/86 0958.8 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the main level procedure called by ssu_ to implement the 9* linus save_query request. Description and usage follows. 10* 11* Description: 12* 13* This request saves the current query in the file named by the caller. 14* 15* Usage: save_query path.lquery 16* 17* Both parameters are passed to this request by ssu_. 18* 19* Known Bugs: 20* 21* Other Problems: 22* 23* History: 24* 25* Written - Al Dupuis - August 1983 26* 27**/ 28 29 linus_save_query: proc ( 30 31 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 32 lcb_ptr_parm /* input: ptr to the linus control block info structure */ 33 ); 34 35 dcl sci_ptr_parm ptr parm; 36 dcl lcb_ptr_parm ptr parm; 37 38 /* 39* Mainline Processing Overview: 40* 41* (1) Check to make sure a data base is open and get the current 42* query. 43* 44* (2) Open the file, write the query, and close the file. 45**/ 46 47 call initialize; 48 49 on cleanup begin; 50 cleanup_signalled = ON; 51 call close_file; 52 end; 53 54 call open_file; 55 call write_the_file; 56 call close_file; 57 58 return; 59 60 close_file: proc; 61 62 if opened 63 then do; 64 call iox_$close (output_file_iocb_ptr, code); 65 if code ^= 0 66 then if cleanup_signalled 67 then call ssu_$print_message (sci_ptr, code, 68 "^/While trying to close ^a.", output_file_pathname); 69 else call ssu_$abort_line (sci_ptr, code, 70 "^/While trying to close ^a.", output_file_pathname); 71 else opened = OFF; 72 end; 73 else; 74 75 if attached 76 then do; 77 call iox_$detach_iocb (output_file_iocb_ptr, code); 78 if code ^= 0 79 then if cleanup_signalled 80 then call ssu_$print_message (sci_ptr, code, 81 "^/While trying to detach ^p.", output_file_iocb_ptr); 82 else call ssu_$abort_line (sci_ptr, code, 83 "^/While trying to detach ^p.", output_file_iocb_ptr); 84 else do; 85 attached = OFF; 86 call iox_$destroy_iocb (output_file_iocb_ptr, code); 87 if code ^= 0 88 then if cleanup_signalled 89 then call ssu_$print_message (sci_ptr, code, 90 "^/While trying to destroy ^p.", output_file_iocb_ptr); 91 else call ssu_$abort_line (sci_ptr, code, 92 "^/While trying to destroy ^p.", output_file_iocb_ptr); 93 else; 94 end; 95 end; 96 97 return; 98 99 end close_file; 100 101 initialize: proc; 102 103 sci_ptr = sci_ptr_parm; 104 lcb_ptr = lcb_ptr_parm; 105 106 attached = OFF; 107 opened = OFF; 108 cleanup_signalled = OFF; 109 110 if lcb.db_index = 0 111 then call ssu_$abort_line (sci_ptr, linus_error_$no_db); 112 113 call linus_query_mgr$get (lcb_ptr, query_segment_ptr, 114 query_segment_length, code); 115 if code ^= 0 116 then call ssu_$abort_line (sci_ptr, code); 117 118 call ssu_$arg_count (sci_ptr, number_of_args_supplied); 119 if number_of_args_supplied = 0 120 then call ssu_$abort_line (sci_ptr, error_table_$noarg, USAGE_MESSAGE); 121 else if number_of_args_supplied ^= 1 122 then call ssu_$abort_line (sci_ptr, error_table_$too_many_args, USAGE_MESSAGE); 123 124 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_length); 125 output_file_pathname = arg; 126 127 return; 128 129 end initialize; 130 131 open_file: proc; 132 133 call expand_pathname_$add_suffix (output_file_pathname, "lquery", 134 output_file_directory_name, output_file_entry_name, code); 135 if code ^= 0 136 then call ssu_$abort_line (sci_ptr, code, 137 "^/While trying to expand ^a.", rtrim (output_file_pathname)); 138 switch_name = unique_chars_ ("0"b) || "linus.save_query"; 139 140 call iox_$attach_name (switch_name, output_file_iocb_ptr, 141 "vfile_ " || rtrim (output_file_directory_name) || ">" 142 || rtrim (output_file_entry_name), null (), code); 143 if code ^= 0 144 then call ssu_$abort_line (sci_ptr, code, 145 "^/While trying to attach ^a in ^a.", 146 output_file_entry_name, output_file_directory_name); 147 else attached = ON; 148 149 call iox_$open (output_file_iocb_ptr, Stream_output, "0"b, code); 150 if code ^= 0 151 then call ssu_$abort_line (sci_ptr, code, 152 "^/While trying to open ^a in ^a.", 153 output_file_entry_name, output_file_directory_name); 154 else opened = ON; 155 156 return; 157 158 end open_file; 159 160 write_the_file: proc; 161 162 call iox_$put_chars (output_file_iocb_ptr, query_segment_ptr, 163 query_segment_length, code); 164 if code ^= 0 165 then call ssu_$abort_line (sci_ptr, code); 166 167 return; 168 169 end write_the_file; 170 171 dcl OFF bit (1) aligned static internal options (constant) init ("0"b); 172 dcl ON bit (1) aligned static internal options (constant) init ("1"b); 173 dcl USAGE_MESSAGE char (28) static internal options (constant) init ( 174 "^/Usage: save_query pathname"); 175 176 dcl addr builtin; 177 dcl arg char (arg_length) based (arg_ptr); 178 dcl arg_length fixed bin (21); 179 dcl arg_ptr ptr; 180 dcl attached bit (1) aligned; 181 182 dcl code fixed bin (35); 183 dcl cleanup condition; 184 dcl cleanup_signalled bit (1) aligned; 185 186 dcl error_table_$too_many_args fixed bin(35) ext static; 187 dcl error_table_$noarg fixed bin(35) ext static; 188 dcl expand_pathname_$add_suffix entry (char(*), char(*), char(*), char(*), fixed bin(35)); 189 190 dcl fixed builtin; 191 192 dcl linus_error_$no_db fixed bin(35) ext static; 193 dcl linus_query_mgr$get entry (ptr, ptr, fixed bin(21), fixed bin(35)); 194 195 dcl number_of_args_supplied fixed bin; 196 dcl null builtin; 197 198 dcl opened bit (1) aligned; 199 dcl output_file_directory_name char (168); 200 dcl output_file_entry_name char (32); 201 dcl output_file_iocb_ptr ptr; 202 dcl output_file_pathname char (168); 203 204 dcl query_segment_length fixed bin (21); 205 dcl query_segment_ptr ptr; 206 207 dcl rel builtin; 208 dcl rtrim builtin; 209 210 dcl sci_ptr ptr; 211 dcl ssu_$abort_line entry() options(variable); 212 dcl ssu_$arg_count entry (ptr, fixed bin); 213 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 214 dcl ssu_$print_message entry() options(variable); 215 dcl switch_name char (32); 216 dcl sys_info$max_seg_size fixed bin(35) ext static; 217 218 dcl unique_chars_ entry (bit(*)) returns(char(15)); 219 1 1 /* Begin include file ..... iox_modes.incl.pl1 */ 1 2 1 3 /* Written by C. D. Tavares, 03/17/75 */ 1 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 1 5 1 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 1 7 ("stream_input", "stream_output", "stream_input_output", 1 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 1 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 1 10 "direct_input", "direct_output", "direct_update"); 1 11 1 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 1 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 1 14 1 15 dcl (Stream_input initial (1), 1 16 Stream_output initial (2), 1 17 Stream_input_output initial (3), 1 18 Sequential_input initial (4), 1 19 Sequential_output initial (5), 1 20 Sequential_input_output initial (6), 1 21 Sequential_update initial (7), 1 22 Keyed_sequential_input initial (8), 1 23 Keyed_sequential_output initial (9), 1 24 Keyed_sequential_update initial (10), 1 25 Direct_input initial (11), 1 26 Direct_output initial (12), 1 27 Direct_update initial (13)) fixed bin int static options (constant); 1 28 1 29 /* End include file ..... iox_modes.incl.pl1 */ 220 221 2 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 2 2 2 3 /* Written 05/04/78 by C. D. Tavares */ 2 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 2 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 2 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 2 7 2 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 2 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 2 10 iox_$close entry (pointer, fixed bin (35)), 2 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 2 12 iox_$delete_record entry (pointer, fixed bin (35)), 2 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 2 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 2 15 iox_$err_not_attached entry options (variable), 2 16 iox_$err_not_closed entry options (variable), 2 17 iox_$err_no_operation entry options (variable), 2 18 iox_$err_not_open entry options (variable), 2 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 2 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 2 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 2 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 2 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 2 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 2 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 2 28 iox_$propagate entry (pointer), 2 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 2 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 2 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 2 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 2 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 2 40 2 41 dcl (iox_$user_output, 2 42 iox_$user_input, 2 43 iox_$user_io, 2 44 iox_$error_output) external static pointer; 2 45 2 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 222 223 3 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 3 7* install(86-07-29,MR12.0-1106): 3 8* Added general_work_area_ptr and renamed sfr_ptr to 3 9* force_retrieve_scope_ptr. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* HISTORY: 3 14* 3 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 3 16* 3 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 3 18* a part of the attribute level control work. 3 19* 3 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 3 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 3 22* scope information. 3 23* 3 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 3 25* retaining various vcpu times to be collected when in timing mode. The 3 26* times to be collected are: LINUS parsing time, LINUS processing time, and 3 27* MRDS processing time. 3 28* 3 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 3 30* part of the line numbering implementation. This allows for possible later 3 31* LINUS control of the build defaults. 3 32* 3 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 3 34* information is now retained by ssu_. Removed parse_timer as no longer 3 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 3 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 3 37* 3 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 3 39* subsystem_invocation_level, and selection_expression_identifier. 3 40* 3 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 3 42* table_control_info_ptr. 3 43* 3 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 3 45* 3 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 3 47* 3 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 3 49* 3 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 3 51**/ 3 52 3 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 3 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 3 55 2 rb_len fixed bin (21), /* length of request buffer */ 3 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 3 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 3 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 3 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 3 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 3 61 2 test_flag bit (1) unal, /* on if in test mode */ 3 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 3 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 3 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 3 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 3 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 3 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 3 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 3 69 2 reserved bit (27) unal, 3 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 3 71 2 rb_ptr ptr, /* ptr to request buffer */ 3 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 3 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 3 74 2 ttn_ptr ptr, /* pointer to table info structure */ 3 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 3 76 2 lv_ptr ptr, /* pointer linus variables */ 3 77 2 si_ptr ptr, /* pointer to select_info structure */ 3 78 2 setfi_ptr ptr, /* pointer to set function information */ 3 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 3 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 3 81 2 lit_ptr ptr, /* pointer to literal pool */ 3 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 3 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 3 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 3 85* (MR7.0) */ 3 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 3 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 3 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 3 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 3 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 3 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 3 92* for current lila expression */ 3 93 2 unused_timer float bin (63), /* future expansion */ 3 94 2 request_time float bin (63), /* How much request time was spent 3 95* in LINUS. (-1 = user has just enabled 3 96* timing, do not report) */ 3 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 3 98 2 build_increment fixed bin, /* default increment for build mode */ 3 99 2 build_start fixed bin, /* default start count for build mode */ 3 100 2 linus_version char (4), /* current version of LINUS */ 3 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 3 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 3 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 3 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 3 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 3 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 3 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 3 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 3 109 2 word_pad (6) bit (36) unal, 3 110 /* procedures that will be optionally */ 3 111 /* replaced by the user. Saved so they */ 3 112 /* can be reinstated if desired. */ 3 113 2 ssu_abort_line entry options (variable), 3 114 2 ssu_post_request_line variable entry (ptr), 3 115 2 ssu_pre_request_line variable entry (ptr), 3 116 3 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 3 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 3 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 3 120 3 121 dcl lcb_ptr ptr; 3 122 3 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 224 225 226 end linus_save_query; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/29/86 0939.7 linus_save_query.pl1 >special_ldd>install>MR12.0-1106>linus_save_query.pl1 220 1 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 222 2 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 224 3 07/29/86 0937.8 linus_lcb.incl.pl1 >special_ldd>install>MR12.0-1106>linus_lcb.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. OFF constant bit(1) initial dcl 171 ref 71 85 106 107 108 ON constant bit(1) initial dcl 172 ref 50 147 154 Stream_output 000024 constant fixed bin(17,0) initial dcl 1-15 set ref 149* USAGE_MESSAGE 000000 constant char(28) initial unaligned dcl 173 set ref 119* 121* arg based char unaligned dcl 177 ref 125 arg_length 000100 automatic fixed bin(21,0) dcl 178 set ref 124* 125 arg_ptr 000102 automatic pointer dcl 179 set ref 124* 125 attached 000104 automatic bit(1) dcl 180 set ref 75 85* 106* 147* cleanup 000106 stack reference condition dcl 183 ref 49 cleanup_signalled 000114 automatic bit(1) dcl 184 set ref 50* 65 78 87 108* code 000105 automatic fixed bin(35,0) dcl 182 set ref 64* 65 65* 69* 77* 78 78* 82* 86* 87 87* 91* 113* 115 115* 133* 135 135* 140* 143 143* 149* 150 150* 162* 164 164* db_index based fixed bin(35,0) level 2 dcl 3-53 ref 110 error_table_$noarg 000012 external static fixed bin(35,0) dcl 187 set ref 119* error_table_$too_many_args 000010 external static fixed bin(35,0) dcl 186 set ref 121* expand_pathname_$add_suffix 000014 constant entry external dcl 188 ref 133 iox_$attach_name 000034 constant entry external dcl 2-8 ref 140 iox_$close 000036 constant entry external dcl 2-8 ref 64 iox_$destroy_iocb 000040 constant entry external dcl 2-8 ref 86 iox_$detach_iocb 000042 constant entry external dcl 2-8 ref 77 iox_$open 000044 constant entry external dcl 2-8 ref 149 iox_$put_chars 000046 constant entry external dcl 2-8 ref 162 lcb based structure level 1 dcl 3-53 lcb_ptr 000274 automatic pointer dcl 3-121 set ref 104* 110 113* lcb_ptr_parm parameter pointer dcl 36 ref 29 104 linus_error_$no_db 000016 external static fixed bin(35,0) dcl 192 set ref 110* linus_query_mgr$get 000020 constant entry external dcl 193 ref 113 null builtin function dcl 196 ref 140 140 number_of_args_supplied 000115 automatic fixed bin(17,0) dcl 195 set ref 118* 119 121 opened 000116 automatic bit(1) dcl 198 set ref 62 71* 107* 154* output_file_directory_name 000117 automatic char(168) unaligned dcl 199 set ref 133* 140 143* 150* output_file_entry_name 000171 automatic char(32) unaligned dcl 200 set ref 133* 140 143* 150* output_file_iocb_ptr 000202 automatic pointer dcl 201 set ref 64* 77* 78* 82* 86* 87* 91* 140* 149* 162* output_file_pathname 000204 automatic char(168) unaligned dcl 202 set ref 65* 69* 125* 133* 135 135 query_segment_length 000256 automatic fixed bin(21,0) dcl 204 set ref 113* 162* query_segment_ptr 000260 automatic pointer dcl 205 set ref 113* 162* rtrim builtin function dcl 208 ref 135 135 140 140 sci_ptr 000262 automatic pointer dcl 210 set ref 65* 69* 78* 82* 87* 91* 103* 110* 115* 118* 119* 121* 124* 135* 143* 150* 164* sci_ptr_parm parameter pointer dcl 35 ref 29 103 ssu_$abort_line 000022 constant entry external dcl 211 ref 69 82 91 110 115 119 121 135 143 150 164 ssu_$arg_count 000024 constant entry external dcl 212 ref 118 ssu_$arg_ptr 000026 constant entry external dcl 213 ref 124 ssu_$print_message 000030 constant entry external dcl 214 ref 65 78 87 switch_name 000264 automatic char(32) unaligned dcl 215 set ref 138* 140* unique_chars_ 000032 constant entry external dcl 218 ref 138 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 1-15 Direct_output internal static fixed bin(17,0) initial dcl 1-15 Direct_update internal static fixed bin(17,0) initial dcl 1-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 1-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 1-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 1-15 Sequential_input internal static fixed bin(17,0) initial dcl 1-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 1-15 Sequential_output internal static fixed bin(17,0) initial dcl 1-15 Sequential_update internal static fixed bin(17,0) initial dcl 1-15 Stream_input internal static fixed bin(17,0) initial dcl 1-15 Stream_input_output internal static fixed bin(17,0) initial dcl 1-15 addr builtin function dcl 176 fixed builtin function dcl 190 iox_$attach_loud 000000 constant entry external dcl 2-8 iox_$attach_ptr 000000 constant entry external dcl 2-8 iox_$close_file 000000 constant entry external dcl 2-8 iox_$control 000000 constant entry external dcl 2-8 iox_$delete_record 000000 constant entry external dcl 2-8 iox_$detach 000000 constant entry external dcl 2-8 iox_$err_no_operation 000000 constant entry external dcl 2-8 iox_$err_not_attached 000000 constant entry external dcl 2-8 iox_$err_not_closed 000000 constant entry external dcl 2-8 iox_$err_not_open 000000 constant entry external dcl 2-8 iox_$error_output external static pointer dcl 2-41 iox_$find_iocb 000000 constant entry external dcl 2-8 iox_$find_iocb_n 000000 constant entry external dcl 2-8 iox_$get_chars 000000 constant entry external dcl 2-8 iox_$get_line 000000 constant entry external dcl 2-8 iox_$look_iocb 000000 constant entry external dcl 2-8 iox_$modes 000000 constant entry external dcl 2-8 iox_$move_attach 000000 constant entry external dcl 2-8 iox_$open_file 000000 constant entry external dcl 2-8 iox_$position 000000 constant entry external dcl 2-8 iox_$propagate 000000 constant entry external dcl 2-8 iox_$read_key 000000 constant entry external dcl 2-8 iox_$read_length 000000 constant entry external dcl 2-8 iox_$read_record 000000 constant entry external dcl 2-8 iox_$rewrite_record 000000 constant entry external dcl 2-8 iox_$seek_key 000000 constant entry external dcl 2-8 iox_$user_input external static pointer dcl 2-41 iox_$user_io external static pointer dcl 2-41 iox_$user_output external static pointer dcl 2-41 iox_$write_record 000000 constant entry external dcl 2-8 iox_modes internal static char(24) initial array dcl 1-6 rel builtin function dcl 207 short_iox_modes internal static char(4) initial array dcl 1-12 sys_info$max_seg_size external static fixed bin(35,0) dcl 216 NAMES DECLARED BY EXPLICIT CONTEXT. close_file 000167 constant entry internal dcl 60 ref 51 56 initialize 000477 constant entry internal dcl 101 ref 47 linus_save_query 000124 constant entry external dcl 29 open_file 000672 constant entry internal dcl 131 ref 54 write_the_file 001271 constant entry internal dcl 160 ref 55 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1554 1624 1330 1564 Length 2106 1330 50 245 224 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_save_query 294 external procedure is an external procedure. on unit on line 49 64 on unit close_file 114 internal procedure is called by several nonquick procedures. initialize internal procedure shares stack frame of external procedure linus_save_query. open_file internal procedure shares stack frame of external procedure linus_save_query. write_the_file internal procedure shares stack frame of external procedure linus_save_query. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_save_query 000100 arg_length linus_save_query 000102 arg_ptr linus_save_query 000104 attached linus_save_query 000105 code linus_save_query 000114 cleanup_signalled linus_save_query 000115 number_of_args_supplied linus_save_query 000116 opened linus_save_query 000117 output_file_directory_name linus_save_query 000171 output_file_entry_name linus_save_query 000202 output_file_iocb_ptr linus_save_query 000204 output_file_pathname linus_save_query 000256 query_segment_length linus_save_query 000260 query_segment_ptr linus_save_query 000262 sci_ptr linus_save_query 000264 switch_name linus_save_query 000274 lcb_ptr linus_save_query THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. expand_pathname_$add_suffix iox_$attach_name iox_$close iox_$destroy_iocb iox_$detach_iocb iox_$open iox_$put_chars linus_query_mgr$get ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$print_message unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noarg error_table_$too_many_args linus_error_$no_db LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000120 47 000131 49 000132 50 000146 51 000151 52 000156 54 000157 55 000160 56 000161 58 000165 60 000166 62 000174 64 000177 65 000207 69 000245 71 000276 75 000277 77 000302 78 000313 82 000350 85 000400 86 000401 87 000412 91 000447 97 000476 101 000477 103 000500 104 000504 106 000507 107 000510 108 000511 110 000512 113 000531 115 000546 118 000565 119 000576 121 000622 124 000645 125 000664 127 000671 131 000672 133 000673 135 000725 138 000777 140 001032 143 001146 147 001206 149 001210 150 001227 154 001266 156 001270 160 001271 162 001272 164 001307 167 001326 ----------------------------------------------------------- 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