COMPILATION LISTING OF SEGMENT iod_info_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/01/88 1239.6 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4 */ 13 14 iod_info_: proc; 15 return; /* no entry here */ 16 17 /* This subroutine is provided to extract information from the io daemon 18* tables, thereby sparing its callers the need to understand the structure 19* and location of these tables. A pointer to the iod_working_tables segment 20* is obtained the first time the procedure is called. Recovery from a 21* seg_fault_error is attempted because the IO Coordinator, as a matter of 22* standard procedure, may delete the iod_working_tables segment and replace 23* it with a new one when starting. 24**/ 25 26 /* Written by J. Stern, 2/13/75 */ 27 /* Modified by J. C. Whitmore, 4/78, to add queue_data and rqt_list entries; and for new iod_tables format */ 28 /* Modified by J. C. Whitmore, 10/78, to use version 3 iod_tables */ 29 30 /****^ HISTORY COMMENTS: 31* 1) change(88-02-26,Brunelle), approve(88-10-31,MCR7911), 32* audit(88-10-25,Wallman): 33* Add forms_info, validate_forms_info and evaluate_forms_info entrypoints. 34* Use version 5 iod tables. 35* 2) change(88-10-31,Brunelle), approve(88-10-31,MCR7911), 36* audit(88-11-01,Wallman): 37* Correct error in evaluate_forms_info entrypoint where invalid return 38* pointer for evaluate_forms_info_output was being returned. 39* END HISTORY COMMENTS */ 40 41 /* Arguments */ 42 43 dcl acc_name char (32) parameter; /* driver access name argument */ 44 dcl code fixed bin (35) parameter; /* error code */ 45 dcl default_q fixed bin parameter; /* number of the default q for a request type */ 46 dcl gen_type char (32) parameter; /* generic type name argument */ 47 dcl max_queues fixed bin parameter; /* number of queues for a given request type */ 48 dcl n_queues fixed bin parameter; /* number of q_group names returned in q_list */ 49 dcl ptr_to_user_area ptr parameter; 50 dcl q_group char (*) parameter; /* queue group name argument */ 51 dcl q_list (*) char (32) parameter; /* array for returning q_group names */ 52 dcl return_area_ptr ptr parameter; 53 dcl rqtip ptr parameter; /* ptr to rqti seg to use */ 54 dcl efiip ptr parameter; /* ptr to evaluate_forms_info_input to use */ 55 dcl efiop ptr parameter; /* return ptr to evaluate_forms_info_output */ 56 57 /* External Procedures & Variables */ 58 59 dcl cv_entry_ entry (char (*), ptr, fixed bin (35)) returns (entry); 60 dcl error_table_$id_not_found fixed bin (35) ext static; 61 dcl error_table_$improper_data_format fixed bin (35) ext static; 62 dcl error_table_$noentry fixed bin (35) ext static; 63 dcl error_table_$no_forms_table_defined fixed bin (35) ext static; 64 dcl error_table_$too_many_names fixed bin (35) ext static; 65 dcl get_system_free_area_ entry () returns (ptr); 66 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 67 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 68 dcl iod_forms_$evaluate entry (ptr, ptr, fixed bin (35)); 69 dcl iod_forms_$info entry (ptr, ptr, fixed bin (35)); 70 71 dcl (addr, hbound, null, ptr, rtrim, substr) builtin; 72 73 dcl (cleanup, seg_fault_error) condition; 74 75 /* Internal Static */ 76 77 dcl ACC fixed bin int static options (constant) init (0); 78 dcl GEN fixed bin int static options (constant) init (1); 79 dcl Q fixed bin int static options (constant) init (2); 80 dcl RQTL fixed bin int static options (constant) init (3); 81 dcl VFI fixed bin int static options (constant) init (4); 82 dcl FI fixed bin int static options (constant) init (5); 83 dcl itp ptr int static init (null); /* ptr to iod_working_tables segment */ 84 dcl my_area_ptr ptr int static init (null); 85 dcl sysdir char (168) int static init (">daemon_dir_dir>io_daemon_dir"); 86 dcl undefined char (32) int static options (constant) init ("UNDEFINED"); /* a preset value */ 87 88 /* Automatic */ 89 90 dcl bitcount fixed bin (24); 91 dcl entry fixed bin; /* entry switch */ 92 dcl i fixed bin; 93 dcl icode fixed bin (35); /* internal error code */ 94 dcl forms_info_entry entry (ptr, ptr, fixed bin (35)) variable; 95 dcl generic_type char (32) aligned; /* local copy of generic type name */ 96 dcl my_area area based (my_area_ptr); 97 dcl qg_name char (32) aligned; /* local copy of q group name */ 98 dcl return_forms_allowed bit (1); 99 dcl return_lines_per_inch fixed bin; 100 dcl return_max_line_length fixed bin; 101 dcl return_max_page_length fixed bin; 102 dcl user_area_ptr ptr; 103 dcl user_area area based (user_area_ptr); 104 dcl evaluate_forms_entry entry (ptr, ptr, fixed bin (35)) variable; 105 106 107 /* Given a specific request type, return name of driver as defined in the I/O 108* daemon tables */ 109 driver_access_name: entry (q_group, acc_name, code); 110 111 entry = ACC; 112 qg_name = q_group; /* copy the request type name */ 113 generic_type = undefined; 114 acc_name = ""; /* clear the return arg */ 115 go to common; 116 117 118 /* Given a specific request type, return generic type as defined in the I/O 119* daemon tables */ 120 generic_type: entry (q_group, gen_type, code); 121 122 entry = GEN; 123 qg_name = q_group; /* copy the args */ 124 gen_type = ""; /* clear the return value */ 125 generic_type = undefined; 126 go to common; 127 128 129 /* Given a specific request type, return default and max # queues as defined 130* in the I/O daemon tables */ 131 queue_data: entry (q_group, default_q, max_queues, code); 132 133 entry = Q; 134 qg_name = q_group; /* copy the args */ 135 default_q, max_queues = 0; /* clear the return values */ 136 generic_type = undefined; 137 go to common; 138 139 140 /* Given a specific generic type, return list of all request type of that type 141* as defined in the I/O daemon tables */ 142 rqt_list: entry (gen_type, q_list, n_queues, code); 143 144 entry = RQTL; 145 qg_name = undefined; 146 generic_type = gen_type; /* does caller only want one generic type */ 147 /* if blank, we give him all */ 148 n_queues = 0; /* init the return value */ 149 go to common; 150 151 /* Given a specific request type, return all forms information available */ 152 153 forms_info: entry (q_group, ptr_to_user_area, return_area_ptr, code); 154 155 entry = FI; 156 qg_name = q_group; /* copy the request type name */ 157 user_area_ptr = ptr_to_user_area; 158 return_area_ptr = null; 159 go to common; 160 161 162 /* Given a specific request type and forms string, validate that the forms 163* string is correct and return max line and page lengths */ 164 165 validate_forms_info: entry (validate_forms_info_input_ptr, validate_forms_info_output_ptr, code); 166 167 entry = VFI; 168 qg_name = validate_forms_info_input.request_type; 169 user_area_ptr = validate_forms_info_input.user_area_ptr; 170 go to common; 171 172 173 /* This entrypoint is only for internal use by the I/O daemons to evaluate the 174* forms information and return all the data required. It is put in this 175* module just so there is a common place for all calls. */ 176 177 evaluate_forms_info: entry (rqtip, efiip, efiop, code); 178 179 call evaluate_forms_data (rqtip, efiip, efiop, code); 180 181 /* if the evaluation routine didn't return an output structure, there was some 182* sort of major error. Allocate a return structure ourselves so we don't 183* mess up anyone who calls us */ 184 if efiop = null then do; 185 system_returned_forms_length, 186 system_error_string_length, 187 system_escape_string_length, 188 system_special_string_length = 0; 189 user_area_ptr = efiip -> evaluate_forms_info_input.area_ptr; 190 if user_area_ptr = null then 191 allocate evaluate_forms_info_output in (my_area); 192 else allocate evaluate_forms_info_output in (user_area); 193 194 evaluate_forms_info_output.version = EVALUATE_FORMS_INFO_OUTPUT_VERSION_1; 195 evaluate_forms_info_output.lines_per_inch = return_lines_per_inch; 196 evaluate_forms_info_output.lines_per_page = return_max_page_length; 197 evaluate_forms_info_output.chars_per_line = return_max_line_length; 198 efiop = evaluate_forms_info_output_ptr; 199 end; 200 201 return; 202 203 common: 204 evaluate_forms_info_input_ptr, 205 evaluate_forms_info_output_ptr = null; 206 207 on seg_fault_error go to try_again; 208 209 if itp = null then do; /* get ptr to iod_working_tables */ 210 initiate: call initiate_file_ (sysdir, "iod_working_tables", R_ACCESS, itp, bitcount, code); 211 if itp = null then return; 212 ithp = itp; 213 end; 214 else ithp = itp; 215 if iod_tables_hdr.version ^= IODT_VERSION_5 then do; /* wrong version number */ 216 code = error_table_$improper_data_format; 217 return; 218 end; 219 220 code = 0; 221 222 /* get ptrs to various needed tables in the iod tables */ 223 qgtp = ptr (ithp, iod_tables_hdr.q_group_tab_offset); 224 text_strings_ptr = ptr (ithp, iod_tables_hdr.text_strings_offset); 225 226 do i = 1 to q_group_tab.n_q_groups; 227 qgtep = addr (q_group_tab.entries (i)); 228 if entry = RQTL then do; /* when listing the request types */ 229 if generic_type = "" | generic_type = qgte.generic_type then do; /* want this one? */ 230 if hbound (q_list, 1) > n_queues then do; 231 n_queues = n_queues + 1; 232 q_list (n_queues) = qgte.name; 233 end; 234 else code = error_table_$too_many_names; 235 end; 236 end; 237 else if qgte.name = qg_name then do; /* looking for a specific request type */ 238 if entry = ACC then acc_name = qgte.driver_id; 239 else if entry = GEN then gen_type = qgte.generic_type; 240 else if entry = Q then do; /* we want queue data */ 241 default_q = qgte.default_queue; 242 max_queues = qgte.max_queues; 243 end; 244 else if entry = VFI then do; 245 call return_forms_validation_info; 246 end; 247 else if entry = FI then do; 248 call return_forms_info; 249 end; 250 return; 251 end; 252 end; 253 254 if entry = RQTL then do; /* may not be an error for this entry */ 255 if n_queues = 0 then code = error_table_$noentry; 256 end; 257 else code = error_table_$id_not_found; /* did not find what we were looking for */ 258 return; 259 260 try_again: itp = null; /* come here after seg_fault_error */ 261 revert seg_fault_error; /* if it happens again, let it go */ 262 go to initiate; /* try to reinitiate iod_working_tables */ 263 264 tables_dir: entry returns (char (*)); 265 266 /* This entry returns the pathname of the current iod_working_tables being 267* used by iod_info_ */ 268 269 return (sysdir); 270 271 tables_ptr: entry returns (ptr); 272 273 /* This entry returns a pointer to the current iod_working_tables being used 274* by iod_info_ */ 275 276 if itp = null then do; 277 call initiate_file_ (sysdir, "iod_working_tables", R_ACCESS, itp, bitcount, code); 278 end; 279 return (itp); 280 281 test: entry (test_dir); /* for setting test directory */ 282 283 dcl test_dir char (*); 284 285 sysdir = test_dir; 286 call initiate_file_ (sysdir, "iod_working_tables", R_ACCESS, itp, bitcount, icode); 287 288 return; 289 290 return_forms_validation_info: proc; 291 292 call evaluate_forms_data (null, null, evaluate_forms_info_output_ptr, code); 293 294 /* allocate the structure to return data back to the user */ 295 if evaluate_forms_info_output_ptr ^= null then do; 296 returned_forms_length = evaluate_forms_info_output.forms_length; 297 error_string_length = evaluate_forms_info_output.error_length; 298 end; 299 else do; 300 returned_forms_length, 301 error_string_length = 0; 302 end; 303 if user_area_ptr = null then 304 allocate validate_forms_info_output in (my_area); 305 else allocate validate_forms_info_output in (user_area); 306 307 validate_forms_info_output.version = VALIDATE_FORMS_INFO_OUTPUT_VERSION_1; 308 validate_forms_info_output.lines_per_inch = return_lines_per_inch; 309 validate_forms_info_output.lines_per_page = return_max_page_length; 310 validate_forms_info_output.chars_per_line = return_max_line_length; 311 validate_forms_info_output.forms_allowed = return_forms_allowed; 312 if returned_forms_length > 0 then 313 validate_forms_info_output.returned_forms = evaluate_forms_info_output.returned_forms; 314 if error_string_length > 0 then 315 validate_forms_info_output.error_string = evaluate_forms_info_output.error_string; 316 317 if evaluate_forms_info_output_ptr ^= null then 318 free evaluate_forms_info_output in (my_area); 319 320 end return_forms_validation_info; 321 322 evaluate_forms_data: proc (rqti_ptr, vfiip, vfiop, code); 323 324 dcl rqti_ptr ptr; /* input ptr to rqti seg to use or NULL */ 325 dcl vfiip ptr; /* ptr to evaluate_forms_info_input to use or NULL */ 326 dcl vfiop ptr; /* ptr to return evaluate_forms_info_output */ 327 dcl code fixed bin (35); /* error code */ 328 329 if my_area_ptr = null then 330 my_area_ptr = get_system_free_area_ (); 331 332 /* start with known state for the output pointer */ 333 evaluate_forms_info_output_ptr = null; 334 335 /* default to system maximums for page and line length and lpi. These will be 336* replaced by the forms validation routine or the contents of the rqti seg 337* if they are applicable. Also assume forms string not allowed */ 338 339 return_lines_per_inch = 6; 340 return_max_page_length = 66; 341 return_max_line_length = 132; 342 return_forms_allowed = "0"b; 343 344 /* get page & line limits from the rqti seg if available */ 345 346 if rqti_ptr = null then do; /* have to find rqti_seg ourselves */ 347 call initiate_file_ (rtrim (sysdir) || ">ris", (qgte.rqti_seg_name), R_ACCESS, prt_rqtip, bitcount, icode); 348 if icode ^= 0 then 349 go to terminate_the_rqti_seg; 350 end; 351 else prt_rqtip = rqti_ptr; /* user supplied ptr to rqti_seg */ 352 353 /* punt out of here if wrong version */ 354 if prt_rqti.version ^= prt_rqti_version_1 then 355 go to terminate_the_rqti_seg; 356 357 /* set return lengths based on data in rqti */ 358 return_lines_per_inch = prt_rqti.lines_per_inch; 359 return_max_page_length = prt_rqti.paper_length; 360 return_max_line_length = prt_rqti.paper_width; 361 362 terminate_the_rqti_seg: /* clean up after outselves */ 363 if rqti_ptr = null then /* if I initiated, then terminate rqti seg */ 364 call terminate_file_ (prt_rqtip, bitcount, TERM_FILE_TERM, icode); 365 366 /* now let us see what the forms parser routine finds out for us */ 367 368 /* if user passed us input structure already built, use it (called from the 369* iod_info_$evaluate_forms_info entrypoint by a daemon); 370* 371* otherwise we will generate one and fill it in (called from the 372* iod_info_$validate_forms_info entrypoint by a user queueing job for 373* printing) */ 374 if vfiip = null then do; 375 evaluate_forms_info_input_ptr = null; 376 377 on cleanup begin; 378 if vfiip = null then /* if user didn't pass a structure */ 379 if evaluate_forms_info_input_ptr ^= null then /* and we have one, we created it */ 380 free evaluate_forms_info_input; /* so free it */ 381 end; 382 383 /* allocate input evaluation structure and fill it in with data */ 384 system_input_forms_string_length = validate_forms_info_input.forms_string_length; 385 allocate evaluate_forms_info_input in (my_area); 386 387 evaluate_forms_info_input.version = EVALUATE_FORMS_INFO_INPUT_VERSION_1; 388 evaluate_forms_info_input.ithp = ithp; /* copy ptr to daemon tables to use */ 389 evaluate_forms_info_input.qgtep = qgtep; /* & ptr to request type to process for */ 390 evaluate_forms_info_input.idtep, /* no major device */ 391 evaluate_forms_info_input.mdtep = null; /* no minor device */ 392 evaluate_forms_info_input.max_forms_string_length = validate_forms_info_input.max_forms_string_length; 393 evaluate_forms_info_input.forms_string = validate_forms_info_input.forms_string; 394 evaluate_forms_info_input.area_ptr = my_area_ptr; 395 end; 396 else evaluate_forms_info_input_ptr = vfiip; 397 398 call call_validation_routine; 399 if code = 0 then do; 400 return_forms_allowed = "1"b; 401 return_lines_per_inch = evaluate_forms_info_output.lines_per_inch; 402 return_max_page_length = evaluate_forms_info_output.lines_per_page; 403 return_max_line_length = evaluate_forms_info_output.chars_per_line; 404 end; 405 406 vfiop = evaluate_forms_info_output_ptr; 407 408 /* if I allocated the input structure then get rid of it */ 409 if vfiip = null then 410 free evaluate_forms_info_input; 411 412 end evaluate_forms_data; 413 414 415 call_validation_routine: proc; 416 417 /* this routine will call the forms validation routine to authenticate any 418* forms strings either passed in or defined as default. It will locate the 419* routine to validate the forms string using the following precedence: 420* . device_table value 421* . request_type value 422* . default of "iod_forms_$evaluate" 423* However, it will not make any calls unless there is a forms table defined 424* for the routine to use. If the device entry pointer is given, any elements 425* in the request type entry will be ignored */ 426 427 dcl validation_routine_name char (256); 428 429 /* set up all the pointers we will need from the input structure */ 430 ithp = evaluate_forms_info_input.ithp; 431 qgtep = evaluate_forms_info_input.qgtep; 432 idtep = evaluate_forms_info_input.idtep; 433 mdtep = evaluate_forms_info_input.mdtep; 434 text_strings_ptr = ptr (ithp, iod_tables_hdr.text_strings_offset); 435 validation_routine_name = ""; 436 437 /* if a device entry is defined, use the name in the device entry iff a forms 438* table name is defined for the device to use. Otherwise return error */ 439 if idtep ^= null then do; 440 if return_string (idte.forms_table) = "" then do; 441 code = error_table_$no_forms_table_defined; 442 return; 443 end; 444 validation_routine_name = return_string (idte.forms_validation); 445 end; 446 447 /* if no name defined, there was no device entry data available so will will 448* use what is available in the request type entry */ 449 else if qgtep ^= null then do; 450 if return_string (qgte.forms_table) = "" then do; 451 code = error_table_$no_forms_table_defined; 452 return; 453 end; 454 validation_routine_name = return_string (qgte.forms_validation); 455 end; 456 457 /* if no name is defined yet, create entrypoint to default, else use the name defined */ 458 if validation_routine_name = "" then 459 evaluate_forms_entry = iod_forms_$evaluate; 460 else do; 461 evaluate_forms_entry = cv_entry_ ( 462 rtrim (validation_routine_name) || "$evaluate", 463 null (), code); 464 if code ^= 0 then return; 465 end; 466 467 /* now call the given module */ 468 call evaluate_forms_entry (evaluate_forms_info_input_ptr, evaluate_forms_info_output_ptr, code); 469 470 end call_validation_routine; 471 472 473 /* return all forms information for a given request type */ 474 return_forms_info: proc; 475 476 if my_area_ptr = null then 477 my_area_ptr = get_system_free_area_ (); 478 479 /* if there is no forms validation routine defined for the request type, call 480* the system default routine; else call the one defined for the queue */ 481 482 if qgte.forms_validation.total_chars = 0 then 483 forms_info_entry = iod_forms_$info; 484 else do; 485 forms_info_entry = cv_entry_ ( 486 return_string (qgte.forms_validation) || "$info", 487 null (), code); 488 if code ^= 0 then return; 489 end; 490 491 /* set up the structure to pass in */ 492 system_input_forms_string_length = 0; 493 evaluate_forms_info_input_ptr = null; 494 495 on cleanup begin; 496 if evaluate_forms_info_input_ptr ^= null then 497 free evaluate_forms_info_input; 498 end; 499 500 allocate evaluate_forms_info_input in (my_area); 501 502 evaluate_forms_info_input.version = EVALUATE_FORMS_INFO_INPUT_VERSION_1; 503 evaluate_forms_info_input.ithp = ithp; /* iod tables ptr */ 504 evaluate_forms_info_input.qgtep = qgtep; /* ptr to request type forms info desired for */ 505 evaluate_forms_info_input.idtep, /* no major device defined */ 506 evaluate_forms_info_input.mdtep = null; /* no minor device defined */ 507 evaluate_forms_info_input.max_forms_string_length = 0; /* no string to validate */ 508 if user_area_ptr = null then /* set ptr to area to return data in */ 509 evaluate_forms_info_input.area_ptr = my_area_ptr; 510 else evaluate_forms_info_input.area_ptr = user_area_ptr; 511 512 /* now call the given module */ 513 call forms_info_entry (evaluate_forms_info_input_ptr, return_area_ptr, code); 514 515 /* make sure we clean up after ourselves */ 516 free evaluate_forms_info_input; 517 518 end return_forms_info; 519 520 521 /* little routine to return a string from text_strings.chars in the i/o daemon tables */ 522 return_string: proc (target) returns (char (*)); 523 524 dcl 1 target unaligned like text_offset; 525 if target.total_chars = 0 then 526 return (""); 527 else return (substr (text_strings.chars, target.first_char, target.total_chars)); 528 529 end return_string; 530 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 530 531 /* BEGIN INCLUDE FILE...iod_device_tab.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 2 7* Ancient History 2 8* Created by J. Stern, January 1975 2 9* Modified by J. C. Whitmore April 1978 2 10* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 2 11* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 2 12* Added comment, head_sheet, tail_sheet, paper_type, forms_table, 2 13* forms_validation, font_dir variables to device entries in support of laser 2 14* printers. Changed driver_module, args to text_offset instead of strings. 2 15* Added comment, default_form to minor device entries. Changed args in 2 16* minor device entry to text_offset instead of string. 2 17* END HISTORY COMMENTS */ 2 18 2 19 2 20 /* format: style4 */ 2 21 2 22 dcl idtp ptr; /* ptr to device table */ 2 23 dcl 1 iod_device_tab aligned based (idtp), /* IO daemon device table */ 2 24 2 n_devices fixed bin, /* number of major devices */ 2 25 2 pad fixed bin, 2 26 2 entries (1 refer (iod_device_tab.n_devices)) like idte; /* entries for major devices */ 2 27 2 28 dcl idtep ptr; /* major device entry pointer */ 2 29 dcl 1 idte aligned based (idtep), /* major device entry */ 2 30 2 31 /* static info associated with device from the parms file */ 2 32 2 33 2 dev_id char (24), /* major device name */ 2 34 2 comment unaligned like text_offset, /* comment to apply to the major device */ 2 35 2 attach_name char (32), /* channel name or dial id for device attachment */ 2 36 2 attach_type fixed bin, /* indicates meaning of attach_name */ 2 37 /* see ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 2 38 2 ctl_attach_name char (32), /* channel, dial id, or source for control terminal attachment */ 2 39 2 ctl_attach_type fixed bin, /* indicates meaning of ctl_attach_name */ 2 40 /* see CTL_ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 2 41 2 driver_module unaligned like text_offset, /* offset to pathname of program to drive device */ 2 42 2 head_sheet unaligned like text_offset, /* offset to name of head_sheet program to use */ 2 43 2 tail_sheet unaligned like text_offset, /* offset to name of tail_sheet program to use */ 2 44 2 paper_type fixed bin, /* -1=default , 1=continuous form, 2=single sheet */ 2 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 2 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 2 47 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 2 48 2 args unaligned like text_offset, /* offset to arguments to driver program */ 2 49 2 first_minor fixed bin, /* index of first minor device for this major device */ 2 50 2 last_minor fixed bin, /* index of last minor device for this major device */ 2 51 2 52 /* dynamic info associated with driver of this device */ 2 53 2 54 2 lock bit (36), /* lock id of current driver */ 2 55 2 process_id bit (36); /* process id of current driver */ 2 56 2 57 dcl mdtp ptr; 2 58 dcl 1 minor_device_tab aligned based (mdtp), 2 59 2 n_minor fixed bin, /* number of minor devices */ 2 60 2 pad fixed bin, 2 61 2 entries (1 refer (minor_device_tab.n_minor)) like mdte; 2 62 2 63 dcl mdtep ptr; /* minor device entry pointer */ 2 64 dcl 1 mdte aligned based (mdtep), /* minor device entry */ 2 65 2 66 /* static info associated with device from the parms file */ 2 67 2 68 2 dev_id char (24), /* minor device name */ 2 69 2 comment unaligned like text_offset, /* comment to apply to the minor device */ 2 70 2 default_form unaligned like text_offset, /* offset to default -form string for minor device */ 2 71 2 default_dev_class fixed bin, /* default device class index */ 2 72 2 major_index fixed bin, /* subscript of corresponding major device entry */ 2 73 2 args unaligned like text_offset, /* offset to arguments to driver program */ 2 74 2 75 /* dynamic info associated with driver of this device */ 2 76 2 77 2 dev_class_index fixed bin, /* index of device class table entry */ 2 78 2 current_request fixed bin (18), /* offset of current request descriptor */ 2 79 2 driver_ptr ptr, /* ptr to driver status segment */ 2 80 2 active fixed bin, /* 1 if active, 0 if not active */ 2 81 2 seq_id fixed bin (35); /* sequence number of last request */ 2 82 2 83 /* named constants for attach_type, ctl_attach_type and paper_type are found 2 84* in iod_constants.incl.pl1 */ 2 85 2 86 /* END INCLUDE FILE...iod_device_tab.incl.pl1 */ 531 532 /* BEGIN INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 3 7* Ancient History 3 8* Created by J. Stern, 1/20/75 3 9* Modified by J. C. Whitmore April 1978 for enhancements 3 10* Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 3 11* Modified by E. N. Kittlitz, 6/81, for version 4 iod_tables with expanded 3 12* q_group_tab 3 13* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 3 14* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 3 15* Change version number to reflect changes in q_group_tab and 3 16* iod_device_tab for laser printer support. Added font tables. 3 17* END HISTORY COMMENTS */ 3 18 3 19 3 20 /* format: style4 */ 3 21 3 22 dcl ithp ptr; /* ptr to io daemon dables and it's header */ 3 23 dcl 1 iod_tables_hdr aligned based (ithp), /* header of data segment compiled by iod_table_compiler */ 3 24 2 version char (8), /* version of this structure */ 3 25 2 date_time_compiled fixed bin (71), 3 26 2 grace_time fixed bin (71), /* grace time before deleting finished segment */ 3 27 2 max_queues fixed bin (17), /* default number of priority queues per queue group */ 3 28 2 line_tab_offset fixed bin (18), /* offset of line id table */ 3 29 2 device_tab_offset fixed bin (18), /* offset of device table */ 3 30 2 minor_device_tab_offset fixed bin (18), /* offset of minor device table */ 3 31 2 dev_class_tab_offset fixed bin (18), /* offset of device class table */ 3 32 2 q_group_tab_offset fixed bin (18), /* offset of queue group table */ 3 33 2 forms_info_tab_offset fixed bin (18), /* offset of forms info tables */ 3 34 2 text_strings_offset fixed bin (18), 3 35 2 start_of_tables fixed bin; /* beginning of above tables, MUST start on even word boundry */ 3 36 3 37 /* Defines common text block to store virtually all text in the I/O daemon tables */ 3 38 dcl text_strings_ptr ptr; 3 39 dcl 1 text_strings aligned based (text_strings_ptr), 3 40 2 length fixed bin, 3 41 2 chars char (1 refer (text_strings.length)) unaligned; 3 42 3 43 /* this defines text offsets used to locate i/o daemon tables strings in 3 44* the text_strings structure */ 3 45 dcl 1 text_offset based, 3 46 2 first_char fixed bin (18) unsigned unaligned, 3 47 2 total_chars fixed bin (18) unsigned unaligned; 3 48 3 49 dcl IODT_VERSION_5 char (8) int static options (constant) init ("IODT0005"); /* current version number */ 3 50 3 51 3 52 /* END INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 532 533 /* BEGIN INCLUDE FILE ... prt_rqti.incl.pl1 */ 4 2 /* Modified: 30 November 1981 by G. Palter to add force_ctl_char mode */ 4 3 /* Modified: November 1983 by C. Marker to add force_nsep */ 4 4 5 1 /* BEGIN INCLUDE FILE ..... rqti_header.incl.pl1 ..... */ 5 2 5 3 5 4 dcl 1 rqti_header aligned based, /* header for a request type info seg */ 5 5 2 time_created fixed bin (71), /* clock time when table was translated */ 5 6 2 header_version fixed bin, /* version number of the header alone */ 5 7 2 type_code fixed bin, /* 0 = header only */ 5 8 /* 1 = printer generic type */ 5 9 /* 2 = punch generic type */ 5 10 /* 3 = tape generic type */ 5 11 2 rqti_switches, 5 12 (3 meter bit (1), /* meter this request type */ 5 13 3 auto_go bit (1), /* driver should not request a go command */ 5 14 3 rqti_sw_pad bit (34)) unal, /* room to grow */ 5 15 2 driver_wait_time fixed bin, /* seconds to wait, before asking coord for service */ 5 16 2 header_pad (10) fixed bin; /* leave 10 words for future generations */ 5 17 5 18 dcl rqti_header_version_1 fixed bin int static options (constant) init (1); 5 19 5 20 5 21 /* END INCLUDE FILE ..... rqti_header.incl.pl1 .... */ 4 5 4 6 4 7 dcl prt_rqtip ptr; 4 8 4 9 dcl 1 prt_rqti aligned based (prt_rqtip), 4 10 4 11 2 header like rqti_header, /* use a common header */ 4 12 4 13 2 version fixed bin, /* version of the prt_rqti portion */ 4 14 2 opr_msg char (256), /* operator message */ 4 15 2 banner_type fixed bin, /* 0 = no banners */ 4 16 /* 1 = normal head/tail sheets */ 4 17 /* 2 = RESERVED (brief banners) */ 4 18 2 banner_bars fixed bin, /* how separator bars should be printed */ 4 19 2 banner_indent fixed bin, /* how far to indent the banner */ 4 20 2 banner_line fixed bin, /* what line to start the banner on */ 4 21 2 prt_flags, 4 22 (3 no_auto_print bit (1), /* TRUE if we want commands for each request */ 4 23 3 force_nep bit (1), /* TRUE if we set noskip regardless */ 4 24 3 force_esc bit (1), /* TRUE if we assume escapes in text */ 4 25 3 force_ctl_char bit (1), /* TRUE if we pass control characters regardless */ 4 26 3 force_nsep bit (1), /* TRUE if inner head and tail sheets of multiple copies are to be supressed */ 4 27 3 prt_ctl_pad bit (31)) unal, 4 28 4 29 2 default_bit_modes, /* rqt defaults for dprint */ 4 30 (3 non_edited bit (1), /* TRUE if not removing control chars */ 4 31 3 esc bit (1), /* TRUE if slew escapes are to be processed */ 4 32 3 single bit (1), /* TRUE if VT and FF are to be ignored */ 4 33 3 truncate bit (1), /* TRUE if truncating lines at line length */ 4 34 3 center_top_label bit (1), /* TRUE if centering top label */ 4 35 3 center_bottom_label bit (1), /* TRUE if centering bottom label */ 4 36 3 no_endpage bit (1), /* TRUE if printing over perforations (one big page) */ 4 37 3 mode_bit_pad bit (29)) unal, /* room to grow */ 4 38 2 default_position_modes, /* these are the length modes */ 4 39 3 indent fixed bin, /* columns to indent from the left */ 4 40 3 line_length fixed bin, /* print positions starting from col 1 */ 4 41 3 page_length fixed bin, /* number of lines before auto skip to top */ 4 42 3 mode_pad (10) fixed bin, /* more room to grow */ 4 43 4 44 2 rqt_pad (28) fixed bin, /* pad to 128 words */ 4 45 4 46 2 lfi, 4 47 3 paper_info, /* physical paper info */ 4 48 4 paper_length fixed bin, /* max lines to perf */ 4 49 4 paper_width fixed bin, /* max print positions */ 4 50 4 lines_per_inch fixed bin, /* normally 6 or 8 */ 4 51 3 lfi_pad (5) fixed bin, /* pad to even */ 4 52 3 channel_stops (256) bit (16) unal; /* channel stops for slews */ 4 53 4 54 dcl prt_rqti_version_1 fixed bin int static options (constant) init (1); 4 55 4 56 4 57 /* END INCLUDE FILE .... prt_rqti.incl.pl1 */ 533 534 /* BEGIN INCLUDE FILE...q_group_tab.incl.pl1 */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 6 7* Ancient History 6 8* Created by J. Stern, December 1974 6 9* Modified by J. Whitmore April 1978 6 10* Modified by R. McDonald May 1980 to include page charges (UNCA) 6 11* Modified by E. N. Kittlitz June 1981 for UNCA changes 6 12* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 6 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 6 14* Add forms_validation, default_form and font_dir variables for laser 6 15* printer support. 6 16* END HISTORY COMMENTS */ 6 17 6 18 6 19 /* format: style4 */ 6 20 6 21 dcl qgtp ptr; /* ptr to queue group table */ 6 22 dcl 1 q_group_tab aligned based (qgtp), 6 23 2 n_q_groups fixed bin, /* number of queue groups */ 6 24 2 pad fixed bin, 6 25 2 entries (1 refer (q_group_tab.n_q_groups)) like qgte; /* entries of queue group table */ 6 26 6 27 dcl qgtep ptr; /* queue group table entry pointer */ 6 28 dcl 1 qgte aligned based (qgtep), /* queue group table entry */ 6 29 6 30 /* static info from the parms file */ 6 31 6 32 2 name char (24), /* queue group name */ 6 33 2 comment unaligned like text_offset, /* comment to apply to the request_type */ 6 34 2 driver_id char (32), /* person.project name of drivers for this q group */ 6 35 2 accounting unaligned like text_offset, /* offset to accounting routine pathname, "system" => charge_user_ */ 6 36 2 generic_type char (32), /* generic type of requests in this queue */ 6 37 2 default_generic_queue fixed bin (1), /* 1 if this is default queue for above generic type, else 0 */ 6 38 2 rqti_seg_name char (32), /* name of rqti seg, if required, else blank */ 6 39 2 max_queues fixed bin, /* number of queues for this request type */ 6 40 2 default_queue fixed bin, /* number of the default queue */ 6 41 2 line_charge, /* price names for line charges */ 6 42 3 queue (4) char (32), /* one name for each queue */ 6 43 2 page_charge, /* price names for page charges */ 6 44 3 queue (4) char (32), /* one name for each queue */ 6 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 6 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 6 47 2 default_form unaligned like text_offset, /* offset to default -form string if none given */ 6 48 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 6 49 2 first_dev_class fixed bin, /* index of first device class entry of queue group */ 6 50 2 last_dev_class fixed bin, /* index of last device class entry of queue group */ 6 51 6 52 /* dynamic info reflecting current status of queues */ 6 53 6 54 2 open fixed bin, /* 1 if queues have been opened, else 0 */ 6 55 2 per_queue_info (4), 6 56 3 last_read bit (72), /* ID of last message read */ 6 57 3 mseg_index fixed bin, /* message segment index */ 6 58 3 pad fixed bin; /* pad to even word boundary */ 6 59 6 60 /* END INCLUDE FILE...q_group_tab.incl.pl1 */ 534 535 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 7 2 /* format: style2,^inddcls,idind32 */ 7 3 7 4 declare 1 terminate_file_switches based, 7 5 2 truncate bit (1) unaligned, 7 6 2 set_bc bit (1) unaligned, 7 7 2 terminate bit (1) unaligned, 7 8 2 force_write bit (1) unaligned, 7 9 2 delete bit (1) unaligned; 7 10 7 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 7 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 7 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 7 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 7 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 7 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 7 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 7 18 7 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 535 536 /* BEGIN INCLUDE FILE ... system_forms_info.incl.pl1 */ 8 2 8 3 /****^ HISTORY COMMENTS: 8 4* 1) change(88-02-26,Brunelle), approve(88-06-08,MCR7911), 8 5* audit(88-10-12,Wallman), install(88-10-28,MR12.2-1199): 8 6* Created. 8 7* END HISTORY COMMENTS */ 8 8 8 9 /* format: style4 */ 8 10 8 11 /* input structure for call to iod_info_$evaluate_forms_info */ 8 12 8 13 dcl evaluate_forms_info_input_ptr ptr; 8 14 dcl 1 evaluate_forms_info_input aligned based (evaluate_forms_info_input_ptr), 8 15 2 version char (8), 8 16 2 ithp ptr, /* ptr to io daemon tables */ 8 17 2 qgtep ptr, /* request type entry ptr */ 8 18 2 idtep ptr, /* major device entry ptr */ 8 19 2 mdtep ptr, /* minor device entry ptr */ 8 20 2 max_forms_string_length fixed bin, /* max allowed size of forms string */ 8 21 2 forms_string_length fixed bin, /* # of chars in forms string */ 8 22 2 forms_string char (system_input_forms_string_length/* forms string to evaluate */ 8 23 refer (evaluate_forms_info_input.forms_string_length)), 8 24 2 area_ptr ptr; /* ptr to user area */ 8 25 dcl system_input_forms_string_length fixed bin; 8 26 dcl EVALUATE_FORMS_INFO_INPUT_VERSION_1 char (8) int static options (constant) init ("EFII0001"); 8 27 8 28 8 29 /* output structure for call to iod_info_$evaluate_forms_info */ 8 30 8 31 dcl evaluate_forms_info_output_ptr ptr; 8 32 dcl 1 evaluate_forms_info_output aligned based (evaluate_forms_info_output_ptr), 8 33 2 version char (8), 8 34 2 lines_per_page fixed bin, 8 35 2 chars_per_line fixed bin, 8 36 2 lines_per_inch fixed bin, 8 37 2 forms_length fixed bin, 8 38 2 error_length fixed bin, 8 39 2 escape_length fixed bin, 8 40 2 special_length fixed bin, 8 41 2 returned_forms char (system_returned_forms_length 8 42 refer (evaluate_forms_info_output.forms_length)), 8 43 2 error_string char (system_error_string_length 8 44 refer (evaluate_forms_info_output.error_length)), 8 45 2 escape_string char (system_escape_string_length 8 46 refer (evaluate_forms_info_output.escape_length)), 8 47 2 special_string char (system_special_string_length 8 48 refer (evaluate_forms_info_output.special_length)); 8 49 8 50 dcl (system_returned_forms_length, system_error_string_length, 8 51 system_escape_string_length, system_special_string_length) fixed bin; 8 52 8 53 dcl EVALUATE_FORMS_INFO_OUTPUT_VERSION_1 char (8) int static options (constant) init ("EFIO0001"); 8 54 8 55 /* END INCLUDE FILE ... system_forms_info.incl.pl1 */ 536 537 /* BEGIN INCLUDE FILE ... user_forms_info.incl.pl1 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(88-02-26,Brunelle), approve(88-06-08,MCR7911), 9 6* audit(88-10-12,Wallman), install(88-10-28,MR12.2-1199): 9 7* Created. 9 8* END HISTORY COMMENTS */ 9 9 9 10 /* format: style4 */ 9 11 9 12 /* structure used to return information for iod_info_$forms_info call */ 9 13 9 14 dcl forms_info_ptr ptr; 9 15 dcl 1 forms_info based (forms_info_ptr), 9 16 2 version char (8), 9 17 2 no_entries fixed bin, /* # entries in table */ 9 18 2 no_names fixed bin, /* # of names in table */ 9 19 2 no_comments fixed bin, /* # of comments in table */ 9 20 2 no_types fixed bin, /* # of type names in table */ 9 21 2 no_uses fixed bin, /* # of uses entries in table */ 9 22 2 no_specials fixed bin, /* # of special entries in table */ 9 23 2 default_forms_length fixed bin, 9 24 2 default_form char (forms_info_default_forms_length refer (forms_info.default_forms_length)), 9 25 2 entry (forms_info_entry_count refer (forms_info.no_entries)), 9 26 3 first_name_index fixed bin, /* index into names for first name for this entry */ 9 27 3 last_name_index fixed bin, /* index into names for last name for this entry */ 9 28 3 comment_index fixed bin, /* index into comments for this entry */ 9 29 3 type_index fixed bin, /* index into types for this entry */ 9 30 3 uses_index fixed bin, /* index into uses for this entry */ 9 31 3 special_index fixed bin, /* index into specials for this entry */ 9 32 2 names (forms_info_name_count refer (forms_info.no_names)) char (32), 9 33 2 comments (forms_info_comment_count refer (forms_info.no_comments)) char (128), 9 34 2 types (forms_info_types_count refer (forms_info.no_types)) fixed bin, 9 35 2 uses (forms_info_uses_count refer (forms_info.no_uses)) char (128), 9 36 2 specials (forms_info_specials_count refer (forms_info.no_specials)) char (64); 9 37 9 38 dcl (forms_info_entry_count, 9 39 forms_info_name_count, 9 40 forms_info_comment_count, 9 41 forms_info_types_count, 9 42 forms_info_uses_count, 9 43 forms_info_specials_count, 9 44 forms_info_default_forms_length) fixed bin; 9 45 dcl FORMS_INFO_VERSION_1 char (8) int static options (constant) init ("FIxx0001"); 9 46 9 47 9 48 /* input structure for call to iod_info_$validate_forms_info */ 9 49 9 50 dcl validate_forms_info_input_ptr ptr; 9 51 dcl 1 validate_forms_info_input aligned based (validate_forms_info_input_ptr), 9 52 2 version char (8), 9 53 2 request_type char (32), /* request_type to use to evaluate the forms string */ 9 54 2 user_area_ptr ptr, /* ptr to user area to allocate return structure in */ 9 55 2 max_forms_string_length fixed bin, /* max allowed size of returned forms string */ 9 56 2 forms_string_length fixed bin, /* # of chars in input forms string to validate */ 9 57 2 forms_string char (input_forms_string_length /* forms string to validate */ 9 58 refer (validate_forms_info_input.forms_string_length)); 9 59 9 60 dcl input_forms_string_length fixed bin; 9 61 dcl VALIDATE_FORMS_INFO_INPUT_VERSION_1 char (8) int static options (constant) init ("VFII0001"); 9 62 9 63 9 64 /* output structure returned for call to iod_info_$validate_forms_info */ 9 65 9 66 dcl validate_forms_info_output_ptr ptr; 9 67 dcl 1 validate_forms_info_output aligned based (validate_forms_info_output_ptr), 9 68 2 version char (8), 9 69 2 lines_per_page fixed bin, 9 70 2 chars_per_line fixed bin, 9 71 2 lines_per_inch fixed bin, 9 72 2 forms_allowed bit (1), 9 73 2 forms_length fixed bin, 9 74 2 error_length fixed bin, 9 75 2 returned_forms char (returned_forms_length 9 76 refer (validate_forms_info_output.forms_length)), 9 77 2 error_string char (error_string_length 9 78 refer (validate_forms_info_output.error_length)); 9 79 9 80 dcl (returned_forms_length, error_string_length) fixed bin; 9 81 9 82 dcl VALIDATE_FORMS_INFO_OUTPUT_VERSION_1 char (8) int static options (constant) init ("VFIO0001"); 9 83 9 84 /* END INCLUDE FILE ... user_forms_info.incl.pl1 */ 537 538 539 end iod_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/01/88 1237.8 iod_info_.pl1 >spec>install>1199>iod_info_.pl1 530 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 531 2 10/28/88 1227.3 iod_device_tab.incl.pl1 >spec>install>1199>iod_device_tab.incl.pl1 532 3 10/28/88 1227.4 iod_tables_hdr.incl.pl1 >spec>install>1199>iod_tables_hdr.incl.pl1 533 4 07/27/84 2039.1 prt_rqti.incl.pl1 >ldd>include>prt_rqti.incl.pl1 4-5 5 02/23/78 1629.0 rqti_header.incl.pl1 >ldd>include>rqti_header.incl.pl1 534 6 10/28/88 1227.2 q_group_tab.incl.pl1 >spec>install>1199>q_group_tab.incl.pl1 535 7 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 536 8 10/28/88 1225.9 system_forms_info.incl.pl1 >spec>install>1199>system_forms_info.incl.pl1 537 9 10/28/88 1226.0 user_forms_info.incl.pl1 >spec>install>1199>user_forms_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. ACC constant fixed bin(17,0) initial dcl 77 ref 111 238 EVALUATE_FORMS_INFO_INPUT_VERSION_1 000004 constant char(8) initial packed unaligned dcl 8-26 ref 387 502 EVALUATE_FORMS_INFO_OUTPUT_VERSION_1 000002 constant char(8) initial packed unaligned dcl 8-53 ref 194 FI constant fixed bin(17,0) initial dcl 82 ref 155 247 GEN constant fixed bin(17,0) initial dcl 78 ref 122 239 IODT_VERSION_5 000010 constant char(8) initial packed unaligned dcl 3-49 ref 215 Q constant fixed bin(17,0) initial dcl 79 ref 133 240 RQTL constant fixed bin(17,0) initial dcl 80 ref 144 228 254 R_ACCESS 000022 constant bit(3) initial packed unaligned dcl 1-11 set ref 210* 277* 286* 347* TERM_FILE_TERM 000006 constant bit(3) initial packed unaligned dcl 7-14 set ref 362* VALIDATE_FORMS_INFO_OUTPUT_VERSION_1 000000 constant char(8) initial packed unaligned dcl 9-82 ref 307 VFI constant fixed bin(17,0) initial dcl 81 ref 167 244 acc_name parameter char(32) packed unaligned dcl 43 set ref 109 114* 238* addr builtin function dcl 71 ref 227 area_ptr based pointer level 2 dcl 8-14 set ref 189 394* 508* 510* bitcount 000106 automatic fixed bin(24,0) dcl 90 set ref 210* 277* 286* 347* 362* chars 1 based char level 2 packed packed unaligned dcl 3-39 ref 527 chars_per_line 3 based fixed bin(17,0) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 310* chars_per_line 3 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 197* 403 cleanup 000000 stack reference condition dcl 73 ref 377 495 code parameter fixed bin(35,0) dcl 44 in procedure "iod_info_" set ref 109 120 131 142 153 165 177 179* 210* 216* 220* 234* 255* 257* 277* 292* 441* 451* 461* 464 468* 485* 488 513* code parameter fixed bin(35,0) dcl 327 in procedure "evaluate_forms_data" ref 322 399 cv_entry_ 000066 constant entry external dcl 59 ref 461 485 default_q parameter fixed bin(17,0) dcl 45 set ref 131 135* 241* default_queue 42 based fixed bin(17,0) level 2 dcl 6-28 ref 241 driver_id 7 based char(32) level 2 dcl 6-28 ref 238 efiip parameter pointer dcl 54 set ref 177 179* 189 efiop parameter pointer dcl 55 set ref 177 179* 184 198* entries 2 based structure array level 2 dcl 6-22 set ref 227 entry 000107 automatic fixed bin(17,0) dcl 91 set ref 111* 122* 133* 144* 155* 167* 228 238 239 240 244 247 254 error_length 7 based fixed bin(17,0) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 303* 305* 314 error_length 6 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 190* 192* 297 314 317 error_string based char level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 314* error_string based char level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" ref 314 error_string_length 000201 automatic fixed bin(17,0) dcl 9-80 set ref 297* 300* 303 303 305 305 314 error_table_$id_not_found 000070 external static fixed bin(35,0) dcl 60 ref 257 error_table_$improper_data_format 000072 external static fixed bin(35,0) dcl 61 ref 216 error_table_$no_forms_table_defined 000076 external static fixed bin(35,0) dcl 63 ref 441 451 error_table_$noentry 000074 external static fixed bin(35,0) dcl 62 ref 255 error_table_$too_many_names 000100 external static fixed bin(35,0) dcl 64 ref 234 escape_length 7 based fixed bin(17,0) level 2 dcl 8-32 set ref 190* 192* 317 evaluate_forms_entry 000144 automatic entry variable dcl 104 set ref 458* 461* 468 evaluate_forms_info_input based structure level 1 dcl 8-14 set ref 378 385 409 496 500 516 evaluate_forms_info_input_ptr 000166 automatic pointer dcl 8-13 set ref 203* 375* 378 378 385* 387 388 389 390 390 392 393 394 396* 409 430 431 432 433 468* 493* 496 496 500* 502 503 504 505 505 507 508 510 513* 516 evaluate_forms_info_output based structure level 1 dcl 8-32 set ref 190 192 317 evaluate_forms_info_output_ptr 000172 automatic pointer dcl 8-31 set ref 190* 192* 194 195 196 197 198 203* 292* 295 296 297 312 314 317 317 333* 401 402 403 406 468* first_char parameter fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 524 ref 527 forms_allowed 5 based bit(1) level 2 dcl 9-67 set ref 311* forms_info_entry 000112 automatic entry variable dcl 94 set ref 482* 485* 513 forms_length 6 based fixed bin(17,0) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 303* 305* 312 314 forms_length 5 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 190* 192* 296 312 314 317 forms_string 14 based char level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 393* forms_string 16 based char level 2 in structure "validate_forms_info_input" dcl 9-51 in procedure "iod_info_" ref 393 forms_string_length 13 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 189 378 385* 393 394 409 496 500* 508 510 516 forms_string_length 15 based fixed bin(17,0) level 2 in structure "validate_forms_info_input" dcl 9-51 in procedure "iod_info_" ref 384 393 forms_table 35 based structure level 2 in structure "idte" packed packed unaligned dcl 2-29 in procedure "iod_info_" set ref 440* forms_table 143 based structure level 2 in structure "qgte" packed packed unaligned dcl 6-28 in procedure "iod_info_" set ref 450* forms_validation 144 based structure level 2 in structure "qgte" packed packed unaligned dcl 6-28 in procedure "iod_info_" set ref 454* 485* forms_validation 36 based structure level 2 in structure "idte" packed packed unaligned dcl 2-29 in procedure "iod_info_" set ref 444* gen_type parameter char(32) packed unaligned dcl 46 set ref 120 124* 142 146 239* generic_type 20 based char(32) level 2 in structure "qgte" dcl 6-28 in procedure "iod_info_" ref 229 239 generic_type 000116 automatic char(32) dcl 95 in procedure "iod_info_" set ref 113* 125* 136* 146* 229 229 get_system_free_area_ 000102 constant entry external dcl 65 ref 329 476 hbound builtin function dcl 71 ref 230 i 000110 automatic fixed bin(17,0) dcl 92 set ref 226* 227* icode 000111 automatic fixed bin(35,0) dcl 93 set ref 286* 347* 348 362* idte based structure level 1 dcl 2-29 idtep 000150 automatic pointer dcl 2-28 in procedure "iod_info_" set ref 432* 439 440 444 idtep 6 based pointer level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 390* 432 505* initiate_file_ 000104 constant entry external dcl 66 ref 210 277 286 347 iod_forms_$evaluate 000110 constant entry external dcl 68 ref 458 iod_forms_$info 000112 constant entry external dcl 69 ref 482 iod_tables_hdr based structure level 1 dcl 3-23 ithp 000154 automatic pointer dcl 3-22 in procedure "iod_info_" set ref 212* 214* 215 223 223 224 224 388 430* 434 434 503 ithp 2 based pointer level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 388* 430 503* itp 000010 internal static pointer initial dcl 83 set ref 209 210* 211 212 214 260* 276 277* 279 286* length based fixed bin(17,0) level 2 dcl 3-39 ref 527 lfi 200 based structure level 2 dcl 4-9 lines_per_inch 202 based fixed bin(17,0) level 4 in structure "prt_rqti" dcl 4-9 in procedure "iod_info_" ref 358 lines_per_inch 4 based fixed bin(17,0) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 308* lines_per_inch 4 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 195* 401 lines_per_page 2 based fixed bin(17,0) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 309* lines_per_page 2 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 196* 402 max_forms_string_length 12 based fixed bin(17,0) level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 392* 507* max_forms_string_length 14 based fixed bin(17,0) level 2 in structure "validate_forms_info_input" dcl 9-51 in procedure "iod_info_" ref 392 max_queues parameter fixed bin(17,0) dcl 47 in procedure "iod_info_" set ref 131 135* 242* max_queues 41 based fixed bin(17,0) level 2 in structure "qgte" dcl 6-28 in procedure "iod_info_" ref 242 mdte based structure level 1 dcl 2-64 mdtep 10 based pointer level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 390* 433 505* mdtep 000152 automatic pointer dcl 2-63 in procedure "iod_info_" set ref 433* my_area based area(1024) dcl 96 ref 190 303 317 385 500 my_area_ptr 000012 internal static pointer initial dcl 84 set ref 190 303 317 329 329* 385 394 476 476* 500 508 n_q_groups based fixed bin(17,0) level 2 dcl 6-22 ref 226 n_queues parameter fixed bin(17,0) dcl 48 set ref 142 148* 230 231* 231 232 255 name based char(24) level 2 dcl 6-28 ref 232 237 null builtin function dcl 71 ref 158 184 190 203 209 211 260 276 292 292 292 292 295 303 317 329 333 346 362 374 375 378 378 390 409 439 449 461 461 476 485 485 493 496 505 508 paper_info 200 based structure level 3 dcl 4-9 paper_length 200 based fixed bin(17,0) level 4 dcl 4-9 ref 359 paper_width 201 based fixed bin(17,0) level 4 dcl 4-9 ref 360 prt_rqti based structure level 1 dcl 4-9 prt_rqti_version_1 constant fixed bin(17,0) initial dcl 4-54 ref 354 prt_rqtip 000160 automatic pointer dcl 4-7 set ref 347* 351* 354 358 359 360 362* ptr builtin function dcl 71 ref 223 224 434 ptr_to_user_area parameter pointer dcl 49 ref 153 157 q_group parameter char packed unaligned dcl 50 ref 109 112 120 123 131 134 153 156 q_group_tab based structure level 1 dcl 6-22 q_group_tab_offset 13 based fixed bin(18,0) level 2 dcl 3-23 ref 223 q_list parameter char(32) array packed unaligned dcl 51 set ref 142 230 232* qg_name 000126 automatic char(32) dcl 97 set ref 112* 123* 134* 145* 156* 168* 237 qgte based structure level 1 dcl 6-28 qgtep 000164 automatic pointer dcl 6-27 in procedure "iod_info_" set ref 227* 229 232 237 238 239 241 242 347 389 431* 449 450 454 482 485 504 qgtep 4 based pointer level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 389* 431 504* qgtp 000162 automatic pointer dcl 6-21 set ref 223* 226 227 request_type 2 based char(32) level 2 dcl 9-51 ref 168 return_area_ptr parameter pointer dcl 52 set ref 153 158* 513* return_forms_allowed 000136 automatic bit(1) packed unaligned dcl 98 set ref 311 342* 400* return_lines_per_inch 000137 automatic fixed bin(17,0) dcl 99 set ref 195 308 339* 358* 401* return_max_line_length 000140 automatic fixed bin(17,0) dcl 100 set ref 197 310 341* 360* 403* return_max_page_length 000141 automatic fixed bin(17,0) dcl 101 set ref 196 309 340* 359* 402* returned_forms 11 based char level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" ref 312 returned_forms 10 based char level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 312* returned_forms_length 000200 automatic fixed bin(17,0) dcl 9-80 set ref 296* 300* 303 303 305 305 312 rqti_header based structure level 1 dcl 5-4 rqti_ptr parameter pointer dcl 324 ref 322 346 351 362 rqti_seg_name 31 based char(32) level 2 dcl 6-28 ref 347 rqtip parameter pointer dcl 53 set ref 177 179* rtrim builtin function dcl 71 ref 347 461 seg_fault_error 000100 stack reference condition dcl 73 ref 207 261 special_length 10 based fixed bin(17,0) level 2 dcl 8-32 set ref 190* 192* 317 substr builtin function dcl 71 ref 527 sysdir 000014 internal static char(168) initial packed unaligned dcl 85 set ref 210* 269 277* 285* 286* 347 system_error_string_length 000175 automatic fixed bin(17,0) dcl 8-50 set ref 185* 190 190 192 192 system_escape_string_length 000176 automatic fixed bin(17,0) dcl 8-50 set ref 185* 190 190 192 192 system_input_forms_string_length 000170 automatic fixed bin(17,0) dcl 8-25 set ref 384* 385 385 492* 500 500 system_returned_forms_length 000174 automatic fixed bin(17,0) dcl 8-50 set ref 185* 190 190 192 192 system_special_string_length 000177 automatic fixed bin(17,0) dcl 8-50 set ref 185* 190 190 192 192 target parameter structure level 1 packed packed unaligned dcl 524 ref 522 terminate_file_ 000106 constant entry external dcl 67 ref 362 test_dir parameter char packed unaligned dcl 283 ref 281 285 text_offset based structure level 1 packed packed unaligned dcl 3-45 text_strings based structure level 1 dcl 3-39 text_strings_offset 15 based fixed bin(18,0) level 2 dcl 3-23 ref 224 434 text_strings_ptr 000156 automatic pointer dcl 3-38 set ref 224* 434* 527 total_chars 144(18) based fixed bin(18,0) level 3 in structure "qgte" packed packed unsigned unaligned dcl 6-28 in procedure "iod_info_" set ref 482 total_chars 0(18) parameter fixed bin(18,0) level 2 in structure "target" packed packed unsigned unaligned dcl 524 in procedure "return_string" ref 525 527 undefined 000012 constant char(32) initial packed unaligned dcl 86 ref 113 125 136 145 user_area based area(1024) dcl 103 ref 192 305 user_area_ptr 000142 automatic pointer dcl 102 in procedure "iod_info_" set ref 157* 169* 189* 190 192 303 305 508 510 user_area_ptr 12 based pointer level 2 in structure "validate_forms_info_input" dcl 9-51 in procedure "iod_info_" ref 169 validate_forms_info_input based structure level 1 dcl 9-51 validate_forms_info_input_ptr parameter pointer dcl 9-50 ref 165 168 169 384 392 393 validate_forms_info_output based structure level 1 dcl 9-67 set ref 303 305 validate_forms_info_output_ptr parameter pointer dcl 9-66 set ref 165 303* 305* 307 308 309 310 311 312 314 validation_routine_name 000114 automatic char(256) packed unaligned dcl 427 set ref 435* 444* 454* 458 461 version based char(8) level 2 in structure "iod_tables_hdr" dcl 3-23 in procedure "iod_info_" ref 215 version based char(8) level 2 in structure "evaluate_forms_info_output" dcl 8-32 in procedure "iod_info_" set ref 194* version based char(8) level 2 in structure "validate_forms_info_output" dcl 9-67 in procedure "iod_info_" set ref 307* version 20 based fixed bin(17,0) level 2 in structure "prt_rqti" dcl 4-9 in procedure "iod_info_" ref 354 version based char(8) level 2 in structure "evaluate_forms_info_input" dcl 8-14 in procedure "iod_info_" set ref 387* 502* vfiip parameter pointer dcl 325 ref 322 374 378 396 409 vfiop parameter pointer dcl 326 set ref 322 406* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 FORMS_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 9-45 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 7-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 7-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 7-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 7-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 7-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 7-15 VALIDATE_FORMS_INFO_INPUT_VERSION_1 internal static char(8) initial packed unaligned dcl 9-61 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 forms_info based structure level 1 unaligned dcl 9-15 forms_info_comment_count automatic fixed bin(17,0) dcl 9-38 forms_info_default_forms_length automatic fixed bin(17,0) dcl 9-38 forms_info_entry_count automatic fixed bin(17,0) dcl 9-38 forms_info_name_count automatic fixed bin(17,0) dcl 9-38 forms_info_ptr automatic pointer dcl 9-14 forms_info_specials_count automatic fixed bin(17,0) dcl 9-38 forms_info_types_count automatic fixed bin(17,0) dcl 9-38 forms_info_uses_count automatic fixed bin(17,0) dcl 9-38 idtp automatic pointer dcl 2-22 input_forms_string_length automatic fixed bin(17,0) dcl 9-60 iod_device_tab based structure level 1 dcl 2-23 mdtp automatic pointer dcl 2-57 minor_device_tab based structure level 1 dcl 2-58 rqti_header_version_1 internal static fixed bin(17,0) initial dcl 5-18 terminate_file_switches based structure level 1 packed packed unaligned dcl 7-4 NAMES DECLARED BY EXPLICIT CONTEXT. call_validation_routine 002255 constant entry internal dcl 415 ref 398 common 000636 constant label dcl 203 ref 115 126 137 149 159 170 driver_access_name 000126 constant entry external dcl 109 evaluate_forms_data 001645 constant entry internal dcl 322 ref 179 292 evaluate_forms_info 000433 constant entry external dcl 177 forms_info 000337 constant entry external dcl 153 generic_type 000170 constant entry external dcl 120 initiate 000665 constant label dcl 210 ref 262 iod_info_ 000102 constant entry external dcl 14 queue_data 000237 constant entry external dcl 131 return_forms_info 002576 constant entry internal dcl 474 ref 248 return_forms_validation_info 001434 constant entry internal dcl 290 ref 245 return_string 003100 constant entry internal dcl 522 ref 440 444 450 454 485 rqt_list 000302 constant entry external dcl 142 tables_dir 001203 constant entry external dcl 264 tables_ptr 001237 constant entry external dcl 271 terminate_the_rqti_seg 002014 constant label dcl 362 ref 348 354 test 001334 constant entry external dcl 281 try_again 001173 constant label dcl 260 ref 207 validate_forms_info 000401 constant entry external dcl 165 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3500 3614 3152 3510 Length 4250 3152 114 420 325 56 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME iod_info_ 207 external procedure is an external procedure. on unit on line 207 64 on unit return_forms_validation_info internal procedure shares stack frame of external procedure iod_info_. evaluate_forms_data 222 internal procedure enables or reverts conditions. on unit on line 377 64 on unit call_validation_routine internal procedure shares stack frame of internal procedure evaluate_forms_data. return_forms_info 114 internal procedure enables or reverts conditions. on unit on line 495 64 on unit return_string 66 internal procedure uses returns(char(*)) or returns(bit(*)). STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 itp iod_info_ 000012 my_area_ptr iod_info_ 000014 sysdir iod_info_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME evaluate_forms_data 000114 validation_routine_name call_validation_routine iod_info_ 000106 bitcount iod_info_ 000107 entry iod_info_ 000110 i iod_info_ 000111 icode iod_info_ 000112 forms_info_entry iod_info_ 000116 generic_type iod_info_ 000126 qg_name iod_info_ 000136 return_forms_allowed iod_info_ 000137 return_lines_per_inch iod_info_ 000140 return_max_line_length iod_info_ 000141 return_max_page_length iod_info_ 000142 user_area_ptr iod_info_ 000144 evaluate_forms_entry iod_info_ 000150 idtep iod_info_ 000152 mdtep iod_info_ 000154 ithp iod_info_ 000156 text_strings_ptr iod_info_ 000160 prt_rqtip iod_info_ 000162 qgtp iod_info_ 000164 qgtep iod_info_ 000166 evaluate_forms_info_input_ptr iod_info_ 000170 system_input_forms_string_length iod_info_ 000172 evaluate_forms_info_output_ptr iod_info_ 000174 system_returned_forms_length iod_info_ 000175 system_error_string_length iod_info_ 000176 system_escape_string_length iod_info_ 000177 system_special_string_length iod_info_ 000200 returned_forms_length iod_info_ 000201 error_string_length iod_info_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ent_var call_ext_out_desc call_ext_out call_int_this call_int_other_desc return_mac tra_ext_1 signal_op enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc return_chars_eis op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_entry_ get_system_free_area_ initiate_file_ iod_forms_$evaluate iod_forms_$info terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$id_not_found error_table_$improper_data_format error_table_$no_forms_table_defined error_table_$noentry error_table_$too_many_names LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000101 15 000111 109 000122 111 000146 112 000150 113 000156 114 000161 115 000165 120 000166 122 000212 123 000214 124 000222 125 000226 126 000231 131 000232 133 000257 134 000261 135 000267 136 000271 137 000274 142 000275 144 000316 145 000320 146 000323 148 000327 149 000331 153 000332 155 000357 156 000361 157 000367 158 000372 159 000374 165 000375 167 000413 168 000415 169 000423 170 000425 177 000426 179 000445 184 000462 185 000467 189 000473 190 000505 192 000552 194 000611 195 000614 196 000616 197 000620 198 000622 201 000624 203 000636 207 000641 209 000660 210 000665 211 000730 212 000747 213 000751 214 000752 215 000754 216 000761 217 000763 220 000775 223 000776 224 001002 226 001006 227 001015 228 001021 229 001024 230 001034 231 001042 232 001043 233 001056 234 001057 236 001062 237 001063 238 001067 239 001077 240 001106 241 001110 242 001113 243 001115 244 001116 245 001120 246 001121 247 001122 248 001124 250 001130 252 001142 254 001144 255 001147 256 001155 257 001156 258 001161 260 001173 261 001176 262 001177 264 001200 269 001212 271 001233 276 001245 277 001252 279 001314 281 001331 285 001351 286 001360 288 001422 290 001434 292 001435 295 001454 296 001460 297 001463 298 001465 300 001466 303 001470 305 001520 307 001542 308 001547 309 001551 310 001553 311 001555 312 001557 314 001567 317 001611 320 001643 322 001644 329 001652 333 001664 339 001667 340 001671 341 001673 342 001675 346 001676 347 001703 348 001772 350 001776 351 001777 354 002002 358 002006 359 002010 360 002012 362 002014 374 002046 375 002053 377 002056 378 002072 381 002117 384 002120 385 002126 387 002146 388 002151 389 002153 390 002156 392 002163 393 002171 394 002176 395 002207 396 002210 398 002214 399 002215 400 002220 401 002223 402 002226 403 002230 406 002232 409 002235 412 002254 415 002255 430 002256 431 002263 432 002265 433 002267 434 002271 435 002276 439 002301 440 002305 441 002334 442 002341 444 002342 445 002371 449 002373 450 002377 451 002426 452 002433 454 002434 455 002463 458 002464 461 002477 464 002555 468 002562 470 002574 474 002575 476 002603 482 002615 485 002630 488 002717 492 002723 493 002724 495 002726 496 002742 498 002762 500 002763 502 003003 503 003006 504 003010 505 003013 507 003020 508 003022 510 003040 513 003050 516 003063 518 003076 522 003077 525 003105 527 003126 ----------------------------------------------------------- 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