COMPILATION LISTING OF SEGMENT linus_store_from_data_file Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 03/15/88 1554.2 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(88-01-27,Dupuis), approve(88-03-03,MCR7844), audit(88-03-14,Blair), 12* install(88-03-15,MR12.2-1036): 13* Implemented the -progress/-no_progress and -warning/-no_warning 14* control arguments. 15* END HISTORY COMMENTS */ 16 17 18 /* format: off */ 19 20 /* This is the main level procedure called by ssu_ to implement the 21* linus store_from_data_file request. Description and usage follows. 22* 23* Description: 24* 25* This request reads the values from a file. It then takes these 26* values and stores them into the specified relation. 27* 28* Usage: "store_from_data_file table_name -control_args" 29* 30* where table_name is the name of the relation where the data will be 31* stored. 32* 33* -control_args can be: 34* 35* -column_delimiter X -- the delimiter used to separate column values. 36* X can be any single ascii character (default is a tilde). 37* 38* -input_file pathname -- the file where the values should be taken from. 39* This is a required control argument. 40* 41* -progress {N} -- prints a progress report every N tuples, where N defaults 42* to linus_data_$trace_every_n_tuples if not specified. 43* 44* -row_delimiter X -- the delimiter used to separate rows. X can be any 45* single ascii character (default is newline character). 46* 47* -warning, -warn, -no_warning, -no_warn -- prints or doesn't print warning 48* messages caused by the storing of duplicate tuples or conversion errors. 49* 50* Both parameters are passed to this request by ssu_. 51* 52* 53* Known Bugs: 54* 55* Other Problems: 56* 57* History: 58* 59* Written - September 1983 - Al Dupuis 60* 61**/ 62 63 linus_store_from_data_file: proc ( 64 65 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 66 lcb_ptr_parm /* input: ptr to the linus control block info structure */ 67 ); 68 69 dcl sci_ptr_parm ptr parm; 70 dcl lcb_ptr_parm ptr parm; 71 72 /* 73* Mainline Processing Overview: 74* 75* (1) Process control arguments setting flags and collecting values. 76* 77* (2) Get a row from the file. 78* 79* (3) Store the row and repeat 2 and 3 until no more rows. 80* 81* (4) Clean up things. 82* 83**/ 84 85 call initialize; 86 87 cleanup_signalled = OFF; 88 on cleanup begin; 89 cleanup_signalled = ON; 90 call terminate; 91 end; 92 93 call process_args; 94 95 if ^input_file_has_been_supplied 96 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 97 "^/An input file name must be supplied."); 98 99 still_storing = ON; 100 do while (still_storing); 101 call get_row_from_file; 102 if still_storing 103 then do; 104 call store_the_row; 105 if data_file_info.flags.tracing 106 then if mod (data_file_info.current_row_number - 1, data_file_info.trace_every_n_tuples) = 0 107 then call ioa_ ("^d lines (^d tuples) read from input file. ^d tuples stored.", 108 data_file_info.current_line_number - 1, 109 data_file_info.current_row_number - 1, number_of_tuples_stored); 110 end; 111 else if data_file_info.flags.tracing 112 then call ioa_ ("Storing completed. ^d lines (^d tuples) read, ^d tuples stored.", 113 data_file_info.current_line_number - 1, 114 data_file_info.current_row_number - 1, number_of_tuples_stored); 115 end; 116 117 call terminate; 118 119 return; 120 121 get_row_from_file: proc; 122 123 dcl grff_code fixed bin (35); 124 125 if ^file_parsing_has_been_started 126 then do; 127 call linus_parse_file$start (lcb_ptr, addr (data_file_info), 128 table_ip, grff_code); 129 if grff_code ^= 0 130 then call ssu_$abort_line (sci_ptr, grff_code); 131 file_parsing_has_been_started = ON; 132 end; 133 134 call linus_parse_file$get_row (lcb_ptr, addr (data_file_info), 135 table_ip, buffer_ptr, grff_code); 136 if grff_code ^= 0 137 then if grff_code = error_table_$end_of_info 138 then still_storing = OFF; 139 else call ssu_$abort_line (sci_ptr, grff_code); 140 else; 141 142 return; 143 144 end get_row_from_file; 145 146 initialize: proc; 147 148 sci_ptr = sci_ptr_parm; 149 lcb_ptr = lcb_ptr_parm; 150 work_area_ptr = addr (lcb.static_area); 151 152 unspec (data_file_info) = OFF; 153 data_file_info.flags.process_quotes = ON; 154 data_file_info.column_delimiter = TILDE; 155 data_file_info.row_delimiter = NEWLINE; 156 data_file_info.trace_every_n_tuples = linus_data_$trace_every_n_tuples; 157 buffer_has_been_allocated = OFF; 158 table_info_has_been_allocated = OFF; 159 file_parsing_has_been_started = OFF; 160 input_file_has_been_supplied = OFF; 161 print_warning_messages = ON; 162 number_of_tuples_stored = 0; 163 164 call ssu_$arg_count (sci_ptr, number_of_args_supplied); 165 if number_of_args_supplied = 0 166 then call ssu_$abort_line (sci_ptr, error_table_$noarg, USAGE_MESSAGE); 167 168 return; 169 170 end initialize; 171 172 process_args: proc; 173 174 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_length); 175 table_name = arg; 176 call linus_table$info_for_store (lcb_ptr, table_name, 177 work_area_ptr, table_ip, code); 178 if code ^= 0 179 then call ssu_$abort_line (sci_ptr, code); 180 number_of_columns = table_info.column_count; 181 table_info_has_been_allocated = ON; 182 buffer_length = table_info.row_value_length; 183 allocate buffer in (work_area) set (buffer_ptr); 184 buffer_has_been_allocated = ON; 185 186 if number_of_args_supplied = 1 187 then return; 188 189 current_arg_number = 2; 190 still_processing_args = ON; 191 192 do while (still_processing_args); 193 call ssu_$arg_ptr (sci_ptr, current_arg_number, arg_ptr, arg_length); 194 195 if arg = "-column_delimiter" | arg = "-cdm" 196 | arg = "-row_delimiter" | arg = "-rdm" 197 then do; 198 current_arg_number = current_arg_number + 1; 199 if current_arg_number > number_of_args_supplied 200 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 201 "^/^a must be followed by a delimiter.", arg); 202 else; 203 if arg = "-row_delimiter" | arg = "-rdm" 204 then row_delimiter_flag = ON; 205 else row_delimiter_flag = OFF; 206 call ssu_$arg_ptr (sci_ptr, current_arg_number, arg_ptr, arg_length); 207 if arg_length ^= 1 208 then call ssu_$abort_line (sci_ptr, 0, 209 "The specified delimiter ""^a"" is not a single ascii character.", arg); 210 else; 211 if row_delimiter_flag 212 then data_file_info.row_delimiter = arg; 213 else data_file_info.column_delimiter = arg; 214 end; 215 else if arg = "-input_file" | arg = "-if" 216 then do; 217 current_arg_number = current_arg_number + 1; 218 if current_arg_number > number_of_args_supplied 219 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 220 "^/^a must be followed by a pathname.", arg); 221 else; 222 call ssu_$arg_ptr (sci_ptr, current_arg_number, arg_ptr, arg_length); 223 data_file_info.output_file_pathname = arg; 224 input_file_has_been_supplied = ON; 225 end; 226 else if arg = "-progress" | arg = "-pg" 227 then do; 228 data_file_info.flags.tracing = ON; 229 if current_arg_number + 1 <= number_of_args_supplied 230 then do; 231 call ssu_$arg_ptr (sci_ptr, current_arg_number + 1, arg_ptr, arg_length); 232 if verify (arg, "01234546789") = 0 233 then do; 234 data_file_info.trace_every_n_tuples = convert (data_file_info.trace_every_n_tuples, arg); 235 current_arg_number = current_arg_number + 1; 236 end; 237 end; 238 end; 239 else if arg = "-no_progress" | arg = "-npg" 240 then do; 241 data_file_info.flags.tracing = OFF; 242 data_file_info.trace_every_n_tuples = linus_data_$trace_every_n_tuples; 243 end; 244 else if arg = "-warning" | arg = "-warn" 245 then print_warning_messages = ON; 246 else if arg = "-no_warning" | arg = "-no_warn" 247 then print_warning_messages = OFF; 248 else call ssu_$abort_line (sci_ptr, error_table_$badopt, 249 "^a is not a valid control argument.", arg); 250 251 current_arg_number = current_arg_number + 1; 252 if current_arg_number > number_of_args_supplied 253 then still_processing_args = OFF; 254 end; 255 256 return; 257 258 end process_args; 259 260 store_the_row: proc; 261 262 dcl str_code fixed bin (35); 263 dcl str_loop fixed bin; 264 265 row_value_p = buffer_ptr; 266 call linus_table$store_row (lcb_ptr, table_ip, row_value_p, str_code); 267 if str_code = 0 268 then number_of_tuples_stored = number_of_tuples_stored + 1; 269 if str_code = 0 270 | ((str_code = mrds_error_$duplicate_key | str_code ^= mrds_error_$conversion_condition) & ^print_warning_messages) 271 then return; 272 273 call ssu_$print_message (sci_ptr, str_code, 274 "^/The error occured on line number ^d while trying to store row number ^d.", 275 data_file_info.current_line_number - 1, data_file_info.current_row_number - 1); 276 call ioa_ ("^/The column values were:"); 277 278 do str_loop = 1 to number_of_columns; 279 call ioa_ ("^a^x=^x""^a""", 280 table_info.columns.column_name (str_loop), 281 substr (row_value, 282 table_info.columns.column_index (str_loop), 283 table_info.columns.column_length (str_loop))); 284 end; 285 286 if str_code ^= mrds_error_$duplicate_key 287 & str_code ^= mrds_error_$conversion_condition 288 then call ssu_$abort_line (sci_ptr, 0); 289 290 return; 291 292 end store_the_row; 293 294 terminate: proc; 295 296 if buffer_has_been_allocated 297 then do; 298 free buffer; 299 buffer_has_been_allocated = OFF; 300 end; 301 302 if table_info_has_been_allocated 303 then do; 304 store_ap = table_info.store_args_ptr; 305 free store_args; 306 free table_info; 307 table_info_has_been_allocated = OFF; 308 end; 309 310 if file_parsing_has_been_started 311 then do; 312 call linus_parse_file$stop (lcb_ptr, addr (data_file_info), 313 table_ip, cleanup_signalled, code); 314 file_parsing_has_been_started = OFF; 315 end; 316 317 return; 318 319 end terminate; 320 321 322 323 dcl NEWLINE char (1) static internal options (constant) init (" 324 "); 325 326 dcl OFF bit (1) aligned static internal options (constant) init ("0"b); 327 dcl ON bit (1) aligned static internal options (constant) init ("1"b); 328 329 dcl TILDE char (1) static internal options (constant) init ("~"); 330 dcl USAGE_MESSAGE char (73) static internal options (constant) init ( 331 "^/Usage: store_from_data_file table_name -input_file path {-control_args}"); 332 333 dcl addr builtin; 334 dcl arg char (arg_length) based (arg_ptr); 335 dcl arg_length fixed bin (21); 336 dcl arg_ptr ptr; 337 338 dcl buffer char (buffer_length) based (buffer_ptr); 339 dcl buffer_has_been_allocated bit (1) aligned; 340 dcl buffer_length fixed bin (21); 341 dcl buffer_ptr ptr; 342 343 dcl cleanup condition; 344 dcl cleanup_signalled bit (1) aligned; 345 dcl code fixed bin (35); 346 dcl convert builtin; 347 dcl current_arg_number fixed bin; 348 349 dcl error_table_$badopt fixed bin(35) ext static; 350 dcl error_table_$end_of_info fixed bin(35) ext static; 351 dcl error_table_$inconsistent fixed bin(35) ext static; 352 dcl error_table_$noarg fixed bin(35) ext static; 353 354 dcl file_parsing_has_been_started bit (1) aligned; 355 dcl fixed builtin; 356 357 dcl input_file_has_been_supplied bit (1) aligned; 358 dcl ioa_ entry() options(variable); 359 360 dcl linus_data_$trace_every_n_tuples fixed bin (35) external static; 361 dcl linus_parse_file$get_row entry (ptr, ptr, ptr, ptr, fixed bin(35)); 362 dcl linus_parse_file$start entry (ptr, ptr, ptr, fixed bin(35)); 363 dcl linus_parse_file$stop entry (ptr, ptr, ptr, bit(1) aligned, fixed bin(35)); 364 dcl linus_table$info_for_store entry (ptr, char(30), ptr, ptr, fixed bin(35)); 365 dcl linus_table$store_row entry (ptr, ptr, ptr unal, fixed bin(35)); 366 367 dcl mod builtin; 368 dcl mrds_error_$conversion_condition fixed bin(35) ext static; 369 dcl mrds_error_$duplicate_key fixed bin(35) ext static; 370 371 dcl number_of_args_supplied fixed bin; 372 dcl number_of_columns fixed bin; 373 dcl number_of_tuples_stored fixed bin (35); 374 375 dcl print_warning_messages bit (1) aligned; 376 377 dcl rel builtin; 378 dcl row_delimiter_flag bit (1) aligned; 379 380 dcl sci_ptr ptr; 381 dcl ssu_$abort_line entry() options(variable); 382 dcl ssu_$arg_count entry (ptr, fixed bin); 383 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 384 dcl ssu_$print_message entry() options(variable); 385 dcl still_processing_args bit (1) aligned; 386 dcl still_storing bit (1) aligned; 387 dcl substr builtin; 388 dcl sys_info$max_seg_size fixed bin(35) ext static; 389 390 dcl table_info_has_been_allocated bit (1) aligned; 391 dcl table_name char (30); 392 393 dcl unspec builtin; 394 395 dcl verify builtin; 396 397 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 398 dcl work_area_ptr ptr; 399 1 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 1 5 1 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 7 2 flag bit (1) unal, 1 8 2 type fixed bin (6) unsigned unal, 1 9 2 packed bit (1) unal, 1 10 2 number_dims fixed bin (4) unsigned unal, 1 11 2 size fixed bin (24) unsigned unal; 1 12 1 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 14 2 flag bit (1) unal, 1 15 2 type fixed bin (6) unsigned unal, 1 16 2 packed bit (1) unal, 1 17 2 number_dims fixed bin (4) unsigned unal, 1 18 2 scale fixed bin (11) unal, 1 19 2 precision fixed bin (12) unsigned unal; 1 20 1 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 1 22 2 flag bit (1) unal, /* = "1"b */ 1 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 1 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 1 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 1 26 2 size bit (24) unal, 1 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 1 28 3 low fixed bin (35), 1 29 3 high fixed bin (35), 1 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 1 31 2 real_type fixed bin (18) unsigned unal, 1 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 1 33 1 34 dcl arg_descriptor_ptr ptr; 1 35 1 36 dcl extended_arg_type fixed bin init (58); 1 37 1 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 400 401 2 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 2 2* 2 3* James R. Davis 10 May 79 */ 2 4 2 5 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 2 9* audit(86-07-15,Schroth): 2 10* added command_name_arglist declaration to allow the storage of the 2 11* command name given to the command processor 2 12* END HISTORY COMMENTS */ 2 13 2 14 dcl 1 arg_list aligned based, 2 15 2 header, 2 16 3 arg_count fixed bin (17) unsigned unal, 2 17 3 pad1 bit (1) unal, 2 18 3 call_type fixed bin (18) unsigned unal, 2 19 3 desc_count fixed bin (17) unsigned unal, 2 20 3 pad2 bit (19) unal, 2 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 2 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 2 23 2 24 2 25 dcl 1 command_name_arglist aligned based, 2 26 2 header, 2 27 3 arg_count fixed bin (17) unsigned unal, 2 28 3 pad1 bit (1) unal, 2 29 3 call_type fixed bin (18) unsigned unal, 2 30 3 desc_count fixed bin (17) unsigned unal, 2 31 3 mbz bit(1) unal, 2 32 3 has_command_name bit(1) unal, 2 33 3 pad2 bit (17) unal, 2 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 2 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 2 36 2 name, 2 37 3 command_name_ptr pointer, 2 38 3 command_name_length fixed bin (21); 2 39 2 40 2 41 2 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 2 43 2 header, 2 44 3 arg_count fixed bin (17) unsigned unal, 2 45 3 pad1 bit (1) unal, 2 46 3 call_type fixed bin (18) unsigned unal, 2 47 3 desc_count fixed bin (17) unsigned unal, 2 48 3 pad2 bit (19) unal, 2 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 2 50 2 envptr ptr, 2 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 2 52 2 53 2 54 dcl ( 2 55 Quick_call_type init (0), 2 56 Interseg_call_type init (4), 2 57 Envptr_supplied_call_type 2 58 init (8) 2 59 ) fixed bin (18) unsigned unal int static options (constant); 2 60 2 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 2 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 2 63* an argument list of the proper size in the user's stack 2 64* 2 65**/ 2 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 402 403 3 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 3 2 3 3 /* Written 05/04/78 by C. D. Tavares */ 3 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 3 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 3 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 3 7 3 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 3 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 3 10 iox_$close entry (pointer, fixed bin (35)), 3 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 3 12 iox_$delete_record entry (pointer, fixed bin (35)), 3 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 3 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 3 15 iox_$err_not_attached entry options (variable), 3 16 iox_$err_not_closed entry options (variable), 3 17 iox_$err_no_operation entry options (variable), 3 18 iox_$err_not_open entry options (variable), 3 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 3 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 3 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 3 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 3 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 3 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 3 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 3 28 iox_$propagate entry (pointer), 3 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 3 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 3 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 3 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 3 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 3 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 3 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 3 40 3 41 dcl (iox_$user_output, 3 42 iox_$user_input, 3 43 iox_$user_io, 3 44 iox_$error_output) external static pointer; 3 45 3 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 404 405 4 1 /* Begin include file ..... iox_modes.incl.pl1 */ 4 2 4 3 /* Written by C. D. Tavares, 03/17/75 */ 4 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 4 5 4 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 4 7 ("stream_input", "stream_output", "stream_input_output", 4 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 4 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 4 10 "direct_input", "direct_output", "direct_update"); 4 11 4 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 4 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 4 14 4 15 dcl (Stream_input initial (1), 4 16 Stream_output initial (2), 4 17 Stream_input_output initial (3), 4 18 Sequential_input initial (4), 4 19 Sequential_output initial (5), 4 20 Sequential_input_output initial (6), 4 21 Sequential_update initial (7), 4 22 Keyed_sequential_input initial (8), 4 23 Keyed_sequential_output initial (9), 4 24 Keyed_sequential_update initial (10), 4 25 Direct_input initial (11), 4 26 Direct_output initial (12), 4 27 Direct_update initial (13)) fixed bin int static options (constant); 4 28 4 29 /* End include file ..... iox_modes.incl.pl1 */ 406 407 5 1 /* BEGIN INCLUDE FILE linus_data_file_info.incl.pl1 5 2* 5 3* Written - Al Dupuis - September 1983 5 4**/ 5 5 5 6 /****^ HISTORY COMMENTS: 5 7* 1) change(88-01-27,Dupuis), approve(88-03-03,MCR7844), 5 8* audit(88-03-14,Blair), install(88-03-15,MR12.2-1036): 5 9* Added the trace_every_n_tuples field and the tracing flag. 5 10* END HISTORY COMMENTS */ 5 11 5 12 /* format: off */ 5 13 5 14 dcl 1 create_columns_map aligned based (create_cm_ptr), 5 15 2 number_of_columns fixed bin, 5 16 2 column_numbers (create_columns_map_init_number_of_columns refer (create_columns_map.number_of_columns)) fixed bin; 5 17 dcl create_columns_map_init_number_of_columns fixed bin; 5 18 dcl create_cm_ptr ptr; 5 19 5 20 dcl 1 data_file_info aligned, 5 21 2 flags, 5 22 3 truncate_file bit (1) unaligned, /* ON means truncate */ 5 23 3 check_values_for_delimiters bit (1) unaligned, /* ON means to check */ 5 24 3 process_quotes bit (1) unaligned, /* ON means process quotes */ 5 25 3 process_whitespace bit (1) unaligned, /* ON means treat all whitespace as one blank */ 5 26 3 last_column_delimiter_is_optional bit (1) unaligned, /* ON means last column delimiter is optional */ 5 27 3 create_new_columns bit (1) unaligned, /* ON means create new columns */ 5 28 3 file_is_opened bit (1) unaligned, /* ON means file is opened */ 5 29 3 file_is_attached bit (1) unaligned, /* ON means file is attached */ 5 30 3 end_of_file_has_been_hit bit (1) unaligned, /* ON means we've already hit EOF */ 5 31 3 tracing bit (1) unaligned, /* ON means we need to give progress reports */ 5 32 3 available bit (26) unaligned, 5 33 2 current_row_number fixed bin (35), /* current row number in table */ 5 34 2 current_line_number fixed bin (35), /* current line number of file */ 5 35 2 current_char_in_buffer fixed bin (35), /* index of where we're about to start */ 5 36 2 current_char_in_previous_buffer fixed bin (35), /* index of where we left off in previous buffer */ 5 37 2 file_buffer_length fixed bin (21), /* length of file buffer in chars */ 5 38 2 trace_every_n_tuples fixed bin (35), /* print a progress report every n */ 5 39 2 create_columns_map_ptr ptr, /* points to create_columns_map structure */ 5 40 2 file_iocb_ptr ptr, /* points to iocb for file */ 5 41 2 file_buffer_ptr ptr, /* points to buffer for file */ 5 42 2 column_delimiter char (1) unaligned, /* a single ascii character */ 5 43 2 row_delimiter char (1) unaligned, /* a single ascii character */ 5 44 2 output_file_pathname char (168) unaligned, /* path of output file */ 5 45 2 entry_name char (32) unaligned, /* dir name where file is located */ 5 46 2 directory_name char (168) unaligned; /* entry name of file */ 5 47 5 48 /* END INCLUDE FILE linus_data_file_info.incl.pl1 */ 408 409 6 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 6 7* install(86-07-29,MR12.0-1106): 6 8* Added general_work_area_ptr and renamed sfr_ptr to 6 9* force_retrieve_scope_ptr. 6 10* END HISTORY COMMENTS */ 6 11 6 12 6 13 /* HISTORY: 6 14* 6 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 6 16* 6 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 6 18* a part of the attribute level control work. 6 19* 6 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 6 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 6 22* scope information. 6 23* 6 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 6 25* retaining various vcpu times to be collected when in timing mode. The 6 26* times to be collected are: LINUS parsing time, LINUS processing time, and 6 27* MRDS processing time. 6 28* 6 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 6 30* part of the line numbering implementation. This allows for possible later 6 31* LINUS control of the build defaults. 6 32* 6 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 6 34* information is now retained by ssu_. Removed parse_timer as no longer 6 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 6 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 6 37* 6 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 6 39* subsystem_invocation_level, and selection_expression_identifier. 6 40* 6 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 6 42* table_control_info_ptr. 6 43* 6 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 6 45* 6 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 6 47* 6 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 6 49* 6 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 6 51**/ 6 52 6 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 6 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 6 55 2 rb_len fixed bin (21), /* length of request buffer */ 6 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 6 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 6 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 6 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 6 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 6 61 2 test_flag bit (1) unal, /* on if in test mode */ 6 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 6 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 6 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 6 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 6 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 6 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 6 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 6 69 2 reserved bit (27) unal, 6 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 6 71 2 rb_ptr ptr, /* ptr to request buffer */ 6 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 6 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 6 74 2 ttn_ptr ptr, /* pointer to table info structure */ 6 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 6 76 2 lv_ptr ptr, /* pointer linus variables */ 6 77 2 si_ptr ptr, /* pointer to select_info structure */ 6 78 2 setfi_ptr ptr, /* pointer to set function information */ 6 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 6 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 6 81 2 lit_ptr ptr, /* pointer to literal pool */ 6 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 6 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 6 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 6 85* (MR7.0) */ 6 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 6 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 6 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 6 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 6 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 6 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 6 92* for current lila expression */ 6 93 2 unused_timer float bin (63), /* future expansion */ 6 94 2 request_time float bin (63), /* How much request time was spent 6 95* in LINUS. (-1 = user has just enabled 6 96* timing, do not report) */ 6 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 6 98 2 build_increment fixed bin, /* default increment for build mode */ 6 99 2 build_start fixed bin, /* default start count for build mode */ 6 100 2 linus_version char (4), /* current version of LINUS */ 6 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 6 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 6 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 6 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 6 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 6 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 6 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 6 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 6 109 2 word_pad (6) bit (36) unal, 6 110 /* procedures that will be optionally */ 6 111 /* replaced by the user. Saved so they */ 6 112 /* can be reinstated if desired. */ 6 113 2 ssu_abort_line entry options (variable), 6 114 2 ssu_post_request_line variable entry (ptr), 6 115 2 ssu_pre_request_line variable entry (ptr), 6 116 6 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 6 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 6 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 6 120 6 121 dcl lcb_ptr ptr; 6 122 6 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 410 411 7 1 /* BEGIN INCLUDE FILE linus_table_info.incl.pl1 -- Dave Schimke 1/5/83 */ 7 2 /* 7 3*09/28/83 Al Dupuis: Added the store_args_ptr variable and the store_args structure. 7 4**/ 7 5 dcl 1 table_info aligned based (table_ip), /* info on displayable table */ 7 6 2 retrieval_identifier fixed bin , /* current retrieval id */ 7 7 2 row_count fixed bin(35), /* number of rows in table */ 7 8 2 column_count fixed bin, /* number of columns in table */ 7 9 2 maximum_column_name_length fixed bin, 7 10 /* largest column name */ 7 11 2 maximum_column_value_length fixed bin, 7 12 /* largest column length */ 7 13 2 row_value_length fixed bin (21), /* length of entire row */ 7 14 /* (sum of column lengths) */ 7 15 2 row_segs_info_ptr ptr init (null), /* ptr to the row segs info */ 7 16 2 store_args_ptr ptr, /* ptr to the arg list for storing rows */ 7 17 2 columns (ti_init_column_count refer (table_info.column_count)), 7 18 /* column info */ 7 19 3 column_name char (69) var, /* column header name */ 7 20 3 column_data_type bit (36), /* original data descriptor */ 7 21 3 column_length fixed bin (21), /* length of column in chars */ 7 22 3 column_index fixed bin (21); /* index of start of column in */ 7 23 /* row value */ 7 24 7 25 dcl 1 row_segs_info aligned based (row_segs_ip), 7 26 2 max_number_of_seg_ptrs fixed bin, 7 27 2 max_number_of_ptrs_per_seg fixed bin(21), 7 28 2 number_of_seg_ptrs fixed bin, 7 29 2 seg_ptr (rsi_init_max_number_of_seg_ptrs refer (row_segs_info. 7 30 max_number_of_seg_ptrs)) ptr unal; 7 31 7 32 dcl 1 row_ptrs aligned based (row_ptrs_p), 7 33 2 number_of_ptrs_this_seg fixed bin(21), 7 34 2 row_value_ptr (row_ptrs.number_of_ptrs_this_seg) ptr unal; 7 35 7 36 dcl row_value char (table_info.row_value_length) based (row_value_p); 7 37 dcl row_value_p ptr unal; /* ptr to the current row value */ 7 38 7 39 dcl row_segs_ip ptr; /* ptr to the seg of ptrs to */ 7 40 /* the arrays of row_value_ptrs */ 7 41 dcl row_ptrs_p ptr; /* ptr to an array of */ 7 42 /* row_value_ptrs */ 7 43 7 44 dcl 1 store_args aligned based (store_ap), 7 45 2 table_name char (30), 7 46 2 error_code fixed bin (35), 7 47 2 number_of_descriptors fixed bin, 7 48 2 header like arg_list.header, 7 49 2 arg_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 7 50 2 desc_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 7 51 2 argument_list_descriptors (init_number_of_descriptors refer 7 52 (store_args.number_of_descriptors)) like arg_descriptor; 7 53 7 54 dcl init_number_of_descriptors; 7 55 dcl rsi_init_max_number_of_seg_ptrs fixed bin; 7 56 dcl store_ap ptr; 7 57 dcl table_ip ptr; 7 58 dcl ti_init_column_count fixed bin; 7 59 7 60 /* END INCLUDE FILE linus_table_info.incl.pl1 */ 412 413 414 end linus_store_from_data_file; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/15/88 1551.4 linus_store_from_data_file.pl1 >spec>install>MR12.2-1036>linus_store_from_data_file.pl1 400 1 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 402 2 08/05/86 0856.8 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 404 3 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 406 4 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 408 5 03/15/88 1550.1 linus_data_file_info.incl.pl1 >spec>install>MR12.2-1036>linus_data_file_info.incl.pl1 410 6 07/29/86 1148.4 linus_lcb.incl.pl1 >ldd>include>linus_lcb.incl.pl1 412 7 10/06/83 1219.0 linus_table_info.incl.pl1 >ldd>include>linus_table_info.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. NEWLINE constant char(1) initial packed unaligned dcl 323 ref 155 OFF constant bit(1) initial dcl 326 ref 87 136 152 157 158 159 160 205 241 246 252 299 307 314 ON constant bit(1) initial dcl 327 ref 89 99 131 153 161 181 184 190 203 224 228 244 TILDE constant char(1) initial packed unaligned dcl 329 ref 154 USAGE_MESSAGE 000000 constant char(73) initial packed unaligned dcl 330 set ref 165* addr builtin function dcl 333 ref 127 127 134 134 150 312 312 arg based char packed unaligned dcl 334 set ref 175 195 195 195 195 199* 203 203 207* 211 213 215 215 218* 223 226 226 232 234 239 239 244 244 246 246 248* arg_count 12 based fixed bin(17,0) level 3 packed packed unsigned unaligned dcl 7-44 ref 305 305 arg_descriptor based structure level 1 dcl 1-6 arg_length 000100 automatic fixed bin(21,0) dcl 335 set ref 174* 175 193* 195 195 195 195 199 199 203 203 206* 207 207 207 211 213 215 215 218 218 222* 223 226 226 231* 232 234 239 239 244 244 246 246 248 248 arg_list based structure level 1 dcl 2-14 arg_ptr 000102 automatic pointer dcl 336 set ref 174* 175 193* 195 195 195 195 199 203 203 206* 207 211 213 215 215 218 222* 223 226 226 231* 232 234 239 239 244 244 246 246 248 buffer based char packed unaligned dcl 338 ref 183 298 buffer_has_been_allocated 000104 automatic bit(1) dcl 339 set ref 157* 184* 296 299* buffer_length 000105 automatic fixed bin(21,0) dcl 340 set ref 182* 183 183 298 298 buffer_ptr 000106 automatic pointer dcl 341 set ref 134* 183* 265 298 cleanup 000110 stack reference condition dcl 343 ref 88 cleanup_signalled 000116 automatic bit(1) dcl 344 set ref 87* 89* 312* code 000117 automatic fixed bin(35,0) dcl 345 set ref 176* 178 178* 312* column_count 2 based fixed bin(17,0) level 2 dcl 7-5 ref 180 306 column_delimiter 16 000152 automatic char(1) level 2 packed packed unaligned dcl 5-20 set ref 154* 213* column_index 37 based fixed bin(21,0) array level 3 dcl 7-5 ref 279 279 column_length 36 based fixed bin(21,0) array level 3 dcl 7-5 ref 279 279 column_name 12 based varying char(69) array level 3 dcl 7-5 set ref 279* columns 12 based structure array level 2 dcl 7-5 convert builtin function dcl 346 ref 234 current_arg_number 000120 automatic fixed bin(17,0) dcl 347 set ref 189* 193* 198* 198 199 206* 217* 217 218 222* 229 231 235* 235 251* 251 252 current_line_number 2 000152 automatic fixed bin(35,0) level 2 dcl 5-20 set ref 105 111 273 current_row_number 1 000152 automatic fixed bin(35,0) level 2 dcl 5-20 set ref 105 105 111 273 data_file_info 000152 automatic structure level 1 dcl 5-20 set ref 127 127 134 134 152* 312 312 error_table_$badopt 000010 external static fixed bin(35,0) dcl 349 set ref 248* error_table_$end_of_info 000012 external static fixed bin(35,0) dcl 350 ref 136 error_table_$inconsistent 000014 external static fixed bin(35,0) dcl 351 set ref 95* 199* 218* error_table_$noarg 000016 external static fixed bin(35,0) dcl 352 set ref 165* extended_arg_type 000150 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* file_parsing_has_been_started 000121 automatic bit(1) dcl 354 set ref 125 131* 159* 310 314* flags 000152 automatic structure level 2 dcl 5-20 grff_code 000344 automatic fixed bin(35,0) dcl 123 set ref 127* 129 129* 134* 136 136 139* header 12 based structure level 2 in structure "store_args" dcl 7-44 in procedure "linus_store_from_data_file" header based structure level 2 in structure "arg_list" dcl 2-14 in procedure "linus_store_from_data_file" input_file_has_been_supplied 000122 automatic bit(1) dcl 357 set ref 95 160* 224* ioa_ 000020 constant entry external dcl 358 ref 105 111 276 279 lcb based structure level 1 dcl 6-53 lcb_ptr 000326 automatic pointer dcl 6-121 set ref 127* 134* 149* 150 176* 266* 312* lcb_ptr_parm parameter pointer dcl 70 ref 63 149 linus_data_$trace_every_n_tuples 000022 external static fixed bin(35,0) dcl 360 ref 156 242 linus_parse_file$get_row 000024 constant entry external dcl 361 ref 134 linus_parse_file$start 000026 constant entry external dcl 362 ref 127 linus_parse_file$stop 000030 constant entry external dcl 363 ref 312 linus_table$info_for_store 000032 constant entry external dcl 364 ref 176 linus_table$store_row 000034 constant entry external dcl 365 ref 266 mod builtin function dcl 367 ref 105 mrds_error_$conversion_condition 000036 external static fixed bin(35,0) dcl 368 ref 269 286 mrds_error_$duplicate_key 000040 external static fixed bin(35,0) dcl 369 ref 269 286 number_of_args_supplied 000123 automatic fixed bin(17,0) dcl 371 set ref 164* 165 186 199 218 229 252 number_of_columns 000124 automatic fixed bin(17,0) dcl 372 set ref 180* 278 number_of_descriptors 11 based fixed bin(17,0) level 2 dcl 7-44 ref 305 number_of_tuples_stored 000125 automatic fixed bin(35,0) dcl 373 set ref 105* 111* 162* 267* 267 output_file_pathname 16(18) 000152 automatic char(168) level 2 packed packed unaligned dcl 5-20 set ref 223* print_warning_messages 000126 automatic bit(1) dcl 375 set ref 161* 244* 246* 269 process_quotes 0(02) 000152 automatic bit(1) level 3 packed packed unaligned dcl 5-20 set ref 153* row_delimiter 16(09) 000152 automatic char(1) level 2 packed packed unaligned dcl 5-20 set ref 155* 211* row_delimiter_flag 000127 automatic bit(1) dcl 378 set ref 203* 205* 211 row_value based char packed unaligned dcl 7-36 ref 279 279 row_value_length 5 based fixed bin(21,0) level 2 dcl 7-5 ref 182 279 279 row_value_p 000330 automatic pointer packed unaligned dcl 7-37 set ref 265* 266* 279 279 sci_ptr 000130 automatic pointer dcl 380 set ref 95* 129* 139* 148* 164* 165* 174* 178* 193* 199* 206* 207* 218* 222* 231* 248* 273* 286* sci_ptr_parm parameter pointer dcl 69 ref 63 148 ssu_$abort_line 000042 constant entry external dcl 381 ref 95 129 139 165 178 199 207 218 248 286 ssu_$arg_count 000044 constant entry external dcl 382 ref 164 ssu_$arg_ptr 000046 constant entry external dcl 383 ref 174 193 206 222 231 ssu_$print_message 000050 constant entry external dcl 384 ref 273 static_area 144 based area level 2 dcl 6-53 set ref 150 still_processing_args 000132 automatic bit(1) dcl 385 set ref 190* 192 252* still_storing 000133 automatic bit(1) dcl 386 set ref 99* 100 102 136* store_ap 000332 automatic pointer dcl 7-56 set ref 304* 305 store_args based structure level 1 dcl 7-44 ref 305 store_args_ptr 10 based pointer level 2 dcl 7-5 ref 304 str_code 000370 automatic fixed bin(35,0) dcl 262 set ref 266* 267 269 269 269 273* 286 286 str_loop 000371 automatic fixed bin(17,0) dcl 263 set ref 278* 279 279 279 279 279* substr builtin function dcl 387 ref 279 279 table_info based structure level 1 dcl 7-5 set ref 306 table_info_has_been_allocated 000134 automatic bit(1) dcl 390 set ref 158* 181* 302 307* table_ip 000334 automatic pointer dcl 7-57 set ref 127* 134* 176* 180 182 266* 279 279 279 279 279 279 279 304 306 312* table_name 000135 automatic char(30) packed unaligned dcl 391 set ref 175* 176* trace_every_n_tuples 6 000152 automatic fixed bin(35,0) level 2 dcl 5-20 set ref 105 156* 234* 234 242* tracing 0(09) 000152 automatic bit(1) level 3 packed packed unaligned dcl 5-20 set ref 105 111 228* 241* unspec builtin function dcl 393 set ref 152* verify builtin function dcl 395 ref 232 work_area based area dcl 397 ref 183 work_area_ptr 000146 automatic pointer dcl 398 set ref 150* 176* 183 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 4-15 Direct_output internal static fixed bin(17,0) initial dcl 4-15 Direct_update internal static fixed bin(17,0) initial dcl 4-15 Envptr_supplied_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 Interseg_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 4-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 4-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 4-15 Quick_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 Sequential_input internal static fixed bin(17,0) initial dcl 4-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 4-15 Sequential_output internal static fixed bin(17,0) initial dcl 4-15 Sequential_update internal static fixed bin(17,0) initial dcl 4-15 Stream_input internal static fixed bin(17,0) initial dcl 4-15 Stream_input_output internal static fixed bin(17,0) initial dcl 4-15 Stream_output internal static fixed bin(17,0) initial dcl 4-15 arg_descriptor_ptr automatic pointer dcl 1-34 arg_list_with_envptr based structure level 1 dcl 2-42 command_name_arglist based structure level 1 dcl 2-25 create_cm_ptr automatic pointer dcl 5-18 create_columns_map based structure level 1 dcl 5-14 create_columns_map_init_number_of_columns automatic fixed bin(17,0) dcl 5-17 extended_arg_descriptor based structure level 1 dcl 1-21 fixed builtin function dcl 355 fixed_arg_descriptor based structure level 1 dcl 1-13 init_number_of_descriptors automatic fixed bin(17,0) dcl 7-54 iox_$attach_loud 000000 constant entry external dcl 3-8 iox_$attach_name 000000 constant entry external dcl 3-8 iox_$attach_ptr 000000 constant entry external dcl 3-8 iox_$close 000000 constant entry external dcl 3-8 iox_$close_file 000000 constant entry external dcl 3-8 iox_$control 000000 constant entry external dcl 3-8 iox_$delete_record 000000 constant entry external dcl 3-8 iox_$destroy_iocb 000000 constant entry external dcl 3-8 iox_$detach 000000 constant entry external dcl 3-8 iox_$detach_iocb 000000 constant entry external dcl 3-8 iox_$err_no_operation 000000 constant entry external dcl 3-8 iox_$err_not_attached 000000 constant entry external dcl 3-8 iox_$err_not_closed 000000 constant entry external dcl 3-8 iox_$err_not_open 000000 constant entry external dcl 3-8 iox_$error_output external static pointer dcl 3-41 iox_$find_iocb 000000 constant entry external dcl 3-8 iox_$find_iocb_n 000000 constant entry external dcl 3-8 iox_$get_chars 000000 constant entry external dcl 3-8 iox_$get_line 000000 constant entry external dcl 3-8 iox_$look_iocb 000000 constant entry external dcl 3-8 iox_$modes 000000 constant entry external dcl 3-8 iox_$move_attach 000000 constant entry external dcl 3-8 iox_$open 000000 constant entry external dcl 3-8 iox_$open_file 000000 constant entry external dcl 3-8 iox_$position 000000 constant entry external dcl 3-8 iox_$propagate 000000 constant entry external dcl 3-8 iox_$put_chars 000000 constant entry external dcl 3-8 iox_$read_key 000000 constant entry external dcl 3-8 iox_$read_length 000000 constant entry external dcl 3-8 iox_$read_record 000000 constant entry external dcl 3-8 iox_$rewrite_record 000000 constant entry external dcl 3-8 iox_$seek_key 000000 constant entry external dcl 3-8 iox_$user_input external static pointer dcl 3-41 iox_$user_io external static pointer dcl 3-41 iox_$user_output external static pointer dcl 3-41 iox_$write_record 000000 constant entry external dcl 3-8 iox_modes internal static char(24) initial array dcl 4-6 rel builtin function dcl 377 row_ptrs based structure level 1 dcl 7-32 row_ptrs_p automatic pointer dcl 7-41 row_segs_info based structure level 1 dcl 7-25 row_segs_ip automatic pointer dcl 7-39 rsi_init_max_number_of_seg_ptrs automatic fixed bin(17,0) dcl 7-55 short_iox_modes internal static char(4) initial array dcl 4-12 sys_info$max_seg_size external static fixed bin(35,0) dcl 388 ti_init_column_count automatic fixed bin(17,0) dcl 7-58 NAMES DECLARED BY EXPLICIT CONTEXT. get_row_from_file 000527 constant entry internal dcl 121 ref 101 initialize 000637 constant entry internal dcl 146 ref 85 linus_store_from_data_file 000276 constant entry external dcl 63 process_args 000730 constant entry internal dcl 172 ref 93 store_the_row 001536 constant entry internal dcl 260 ref 104 terminate 001764 constant entry internal dcl 294 ref 90 117 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2522 2574 2261 2532 Length 3152 2261 52 342 241 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_store_from_data_file 652 external procedure is an external procedure. on unit on line 88 64 on unit get_row_from_file internal procedure shares stack frame of external procedure linus_store_from_data_file. initialize internal procedure shares stack frame of external procedure linus_store_from_data_file. process_args internal procedure shares stack frame of external procedure linus_store_from_data_file. store_the_row internal procedure shares stack frame of external procedure linus_store_from_data_file. terminate 80 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_store_from_data_file 000100 arg_length linus_store_from_data_file 000102 arg_ptr linus_store_from_data_file 000104 buffer_has_been_allocated linus_store_from_data_file 000105 buffer_length linus_store_from_data_file 000106 buffer_ptr linus_store_from_data_file 000116 cleanup_signalled linus_store_from_data_file 000117 code linus_store_from_data_file 000120 current_arg_number linus_store_from_data_file 000121 file_parsing_has_been_started linus_store_from_data_file 000122 input_file_has_been_supplied linus_store_from_data_file 000123 number_of_args_supplied linus_store_from_data_file 000124 number_of_columns linus_store_from_data_file 000125 number_of_tuples_stored linus_store_from_data_file 000126 print_warning_messages linus_store_from_data_file 000127 row_delimiter_flag linus_store_from_data_file 000130 sci_ptr linus_store_from_data_file 000132 still_processing_args linus_store_from_data_file 000133 still_storing linus_store_from_data_file 000134 table_info_has_been_allocated linus_store_from_data_file 000135 table_name linus_store_from_data_file 000146 work_area_ptr linus_store_from_data_file 000150 extended_arg_type linus_store_from_data_file 000152 data_file_info linus_store_from_data_file 000326 lcb_ptr linus_store_from_data_file 000330 row_value_p linus_store_from_data_file 000332 store_ap linus_store_from_data_file 000334 table_ip linus_store_from_data_file 000344 grff_code get_row_from_file 000370 str_code store_the_row 000371 str_loop store_the_row THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mdfx3 enable_op shorten_stack ext_entry int_entry any_to_any_truncate_ op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ linus_parse_file$get_row linus_parse_file$start linus_parse_file$stop linus_table$info_for_store linus_table$store_row ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$print_message THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$end_of_info error_table_$inconsistent error_table_$noarg linus_data_$trace_every_n_tuples mrds_error_$conversion_condition mrds_error_$duplicate_key LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 63 000272 1 36 000303 85 000305 87 000306 88 000307 89 000323 90 000326 91 000333 93 000334 95 000335 99 000363 100 000365 101 000370 102 000371 104 000373 105 000374 110 000452 111 000453 115 000521 117 000522 119 000526 121 000527 125 000530 127 000532 129 000551 131 000570 134 000572 136 000613 139 000622 142 000636 146 000637 148 000640 149 000644 150 000647 152 000651 153 000654 154 000656 155 000660 156 000662 157 000665 158 000666 159 000667 160 000670 161 000671 162 000673 164 000674 165 000704 168 000727 172 000730 174 000731 175 000750 176 000755 178 000774 180 001013 181 001016 182 001020 183 001022 184 001031 186 001033 189 001037 190 001041 192 001042 193 001044 195 001061 198 001103 199 001104 203 001142 205 001157 206 001160 207 001175 211 001233 213 001243 214 001250 215 001251 217 001261 218 001262 222 001320 223 001335 224 001342 225 001344 226 001345 228 001355 229 001357 231 001363 232 001403 234 001417 235 001427 238 001430 239 001431 241 001441 242 001443 243 001446 244 001447 246 001462 248 001474 251 001527 252 001530 254 001534 256 001535 260 001536 265 001537 266 001541 267 001556 269 001564 273 001576 276 001644 278 001660 279 001667 284 001734 286 001737 290 001762 294 001763 296 001771 298 001774 299 002001 302 002003 304 002005 305 002010 306 002021 307 002030 310 002032 312 002034 314 002055 317 002057 ----------------------------------------------------------- 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