COMPILATION LISTING OF SEGMENT dm_vu_free_tva Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 0850.5 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: style2,ind3 */ 7 dm_vu_free_tva: 8 proc (p_work_area_ptr, p_typed_vector_array_ptr, p_code); 9 10 /* DESCRIPTION: 11* 12* This module frees the storage associated with a typed_vector_array. 13* It invokes dm_vu_$free_typed_vector to free the storage associated with the 14* individual typed_vectors. 15**/ 16 17 /* HISTORY: 18* 19*Written by Lindsey L. Spratt, 09/24/82. 20*Modified: 21*06/08/83 by Matthew Pierret: Changed typed_vector loop to terminate at 22* min (tva.number_of_vector_slots, tva.number_of_vectors). 23* Previously it terminated at tva.number_of_vectors, and there 24* was a case in which the array was a 0-extent array but 25* tva.number_of_vectors was not equal to 0. 26*12/05/84 by Lindsey L. Spratt: Declared dm_vector_util_$free_typed_vector. 27*01/10/85 by Lindsey L. Spratt: Changed check_version to CHECK_VERSION, and 28* add cv_ prefixes to its variables. Fixed sub_err_ call to use 29* ACTION_CANT_RESTART instead of "s". 30*01/23/85 by Lindsey L. Spratt: dcled the min builtin. 31**/ 32 33 /* START OF DECLARATIONS */ 34 /* Parameter */ 35 36 dcl p_work_area_ptr ptr parameter; 37 dcl p_typed_vector_array_ptr 38 ptr parameter; 39 dcl p_code fixed bin (35) parameter; 40 41 /* Automatic */ 42 43 dcl work_area_ptr ptr; 44 45 dcl (vector_idx, dim_idx) fixed bin; 46 47 /* Based */ 48 49 dcl based_bit_36_aligned bit (36) aligned based; 50 dcl work_area area based (work_area_ptr); 51 52 /* Builtin */ 53 54 dcl (min, null) builtin; 55 56 /* Constant */ 57 58 dcl myname init ("dm_vu_free_tva") char (32) varying internal static options (constant); 59 60 /* Entry */ 61 62 dcl dm_vector_util_$free_typed_vector 63 entry (ptr, ptr, ptr, fixed bin (35)); 64 dcl sub_err_ entry options (variable); 65 66 /* External */ 67 68 dcl error_table_$unimplemented_version 69 fixed bin (35) ext; 70 71 /* END OF DECLARATIONS */ 72 73 work_area_ptr = p_work_area_ptr; 74 typed_vector_array_ptr = p_typed_vector_array_ptr; 75 p_code = 0; 76 77 call CHECK_VERSION (typed_vector_array.version, TYPED_VECTOR_ARRAY_VERSION_2, "typed_vector_array"); 78 79 do vector_idx = 1 to min (typed_vector_array.number_of_vector_slots, typed_vector_array.number_of_vectors); 80 call dm_vector_util_$free_typed_vector (p_work_area_ptr, typed_vector_array_ptr, 81 typed_vector_array.vector_slot (vector_idx), p_code); 82 if p_code ^= 0 83 then return; 84 end; 85 86 do dim_idx = 1 to typed_vector_array.number_of_dimensions; 87 free typed_vector_array.dimension_table (dim_idx).descriptor_ptr -> based_bit_36_aligned in (work_area); 88 end; 89 90 free typed_vector_array in (work_area); 91 p_typed_vector_array_ptr = null; 92 93 return; 94 95 CHECK_VERSION: 96 proc (cv_p_received_version, cv_p_expected_version, cv_p_structure_name); 97 dcl cv_p_received_version fixed bin (35); 98 dcl cv_p_expected_version fixed bin (35); 99 dcl cv_p_structure_name char (*); 100 101 if cv_p_received_version ^= cv_p_expected_version 102 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 103 "^/Expected version ^d of the ^a structure. 104 Received version ^d instead.", cv_p_expected_version, cv_p_structure_name, cv_p_received_version); 105 106 end CHECK_VERSION; 107 1 1 /* *********************************************************** 1 2* * * 1 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 1 4* * * 1 5* *********************************************************** */ 1 6 /* BEGIN INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 1 7 1 8 /* Written by Lindsey Spratt, 03/04/82. 1 9*Modified: 1 10*06/23/82 by Lindsey Spratt: Changed to version 2. The cv entry declarations 1 11* were altered. cv_to_typed now takes ptr to the descriptor, ptr to 1 12* the print_vector value (char varying), ptr to the typed_vector 1 13* value location, and a code. cv_to_print now takes ptr to the 1 14* descriptor, ptr to the typed_vector value, the print_vector value 1 15* (char(*) varying), the maximum allowed length for the print_vector 1 16* value, a temp_seg to put the value in if its to big to fit into 1 17* the print_vector, and a code. 1 18**/ 1 19 1 20 /* format: style2,ind3 */ 1 21 dcl 1 typed_vector_array based (typed_vector_array_ptr) aligned, 1 22 2 version fixed bin (35), 1 23 2 number_of_dimensions 1 24 fixed bin (17), 1 25 2 number_of_vectors fixed bin (17), 1 26 2 number_of_vector_slots 1 27 fixed bin (17), 1 28 2 maximum_dimension_name_length 1 29 fixed bin (17), 1 30 2 dimension_table (tva_number_of_dimensions refer (typed_vector_array.number_of_dimensions)), 1 31 3 name char (tva_maximum_dimension_name_length 1 32 refer (typed_vector_array.maximum_dimension_name_length)) varying, 1 33 3 descriptor_ptr ptr, /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 1 34 /* temp_seg_ptr, max_length_for_print_value, */ 1 35 /* print_value, code) */ 1 36 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 1 37 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 1 38 /* print_value_ptr, typed_value_ptr, code) */ 1 39 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)), 1 40 2 vector_slot (tva_number_of_vector_slots refer (typed_vector_array.number_of_vector_slots)) 1 41 pointer; 1 42 1 43 dcl typed_vector_array_ptr ptr; 1 44 dcl tva_number_of_vector_slots 1 45 fixed bin; 1 46 dcl tva_number_of_dimensions 1 47 fixed bin; 1 48 dcl tva_maximum_dimension_name_length 1 49 fixed bin; 1 50 dcl TYPED_VECTOR_ARRAY_VERSION_2 1 51 fixed bin (35) int static options (constant) init (2); 1 52 1 53 /* END INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 108 109 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 2 4* * * 2 5* *********************************************************** */ 2 6 /* BEGIN INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 2 7 2 8 /* Written 03/01/82 by Lindsey Spratt. 2 9*Modified: 2 10*09/23/82 by Lindsey Spratt: Added the append_simple_typed_vector, 2 11* free_typed_vector_array, and free_typed_vector entries. 2 12*07/24/83 by Lindsey Spratt: Added $cv_pva_to_string and $cv_string_to_pva. 2 13**/ 2 14 2 15 /* format: style2,ind3 */ 2 16 dcl vector_util_$display entry (ptr, ptr, fixed bin (35)); 2 17 dcl vector_util_$sort_print 2 18 entry (ptr, ptr, fixed bin (35)); 2 19 2 20 dcl vector_util_$init_print_vector_array 2 21 entry options (variable); 2 22 dcl vector_util_$init_typed_vector_array 2 23 entry options (variable); 2 24 2 25 dcl vector_util_$append_dimension_print 2 26 entry (ptr, bit (1) aligned, char (*), ptr, ptr, fixed bin, fixed bin (35)); 2 27 2 28 dcl vector_util_$append_simple_print_vector 2 29 entry options (variable); 2 30 dcl vector_util_$append_general_print_vector 2 31 entry options (variable); 2 32 2 33 dcl vector_util_$append_simple_typed_vector 2 34 entry options (variable); 2 35 2 36 /* call vector_util_$free_typed_vector_array (work_area_ptr, typed_vector_array_ptr, code) */ 2 37 dcl vector_util_$free_typed_vector_array 2 38 entry (ptr, ptr, fixed bin (35)); 2 39 2 40 /* call vector_util_$free_typed_vector (work_area_ptr,typed_vector_array_ptr,typed_vector_ptr,code) */ 2 41 dcl vector_util_$free_typed_vector 2 42 entry (ptr, ptr, ptr, fixed bin (35)); 2 43 2 44 dcl vector_util_$cv_typed_to_print 2 45 entry (ptr, ptr, ptr, fixed bin (35)); 2 46 dcl vector_util_$cv_any_to_print_dimension 2 47 entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)); 2 48 2 49 dcl vector_util_$cv_pva_to_string 2 50 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 2 51 dcl vector_util_$cv_string_to_pva 2 52 entry (ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 2 53 2 54 dcl vector_util_$err_no_operation 2 55 entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)); 2 56 2 57 /* END INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 2 58 110 111 3 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 3 2 /* format: style3 */ 3 3 3 4 /* These constants are to be used for the flags argument of sub_err_ */ 3 5 /* They are just "string (condition_info_header.action_flags)" */ 3 6 3 7 declare ( 3 8 ACTION_CAN_RESTART init (""b), 3 9 ACTION_CANT_RESTART init ("1"b), 3 10 ACTION_DEFAULT_RESTART 3 11 init ("01"b), 3 12 ACTION_QUIET_RESTART 3 13 init ("001"b), 3 14 ACTION_SUPPORT_SIGNAL 3 15 init ("0001"b) 3 16 ) bit (36) aligned internal static options (constant); 3 17 3 18 /* End include file */ 112 113 end dm_vu_free_tva; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0756.0 dm_vu_free_tva.pl1 >spec>on>7138.pbf>dm_vu_free_tva.pl1 108 1 10/14/83 1609.1 vu_typed_vector_array.incl.pl1 >ldd>include>vu_typed_vector_array.incl.pl1 110 2 02/16/84 1452.5 vu_entry_dcls.incl.pl1 >ldd>include>vu_entry_dcls.incl.pl1 112 3 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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. ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 3-7 set ref 101* TYPED_VECTOR_ARRAY_VERSION_2 000021 constant fixed bin(35,0) initial dcl 1-50 set ref 77* based_bit_36_aligned based bit(36) dcl 49 ref 87 cv_p_expected_version parameter fixed bin(35,0) dcl 98 set ref 95 101 101* cv_p_received_version parameter fixed bin(35,0) dcl 97 set ref 95 101 101* cv_p_structure_name parameter char unaligned dcl 99 set ref 95 101* descriptor_ptr based pointer array level 3 dcl 1-21 ref 87 dim_idx 000103 automatic fixed bin(17,0) dcl 45 set ref 86* 87* dimension_table 6 based structure array level 2 dcl 1-21 dm_vector_util_$free_typed_vector 000010 constant entry external dcl 62 ref 80 error_table_$unimplemented_version 000014 external static fixed bin(35,0) dcl 68 set ref 101* maximum_dimension_name_length 4 based fixed bin(17,0) level 2 dcl 1-21 ref 80 87 87 87 90 min builtin function dcl 54 ref 79 myname 000001 constant varying char(32) initial dcl 58 set ref 101* null builtin function dcl 54 ref 91 101 101 number_of_dimensions 1 based fixed bin(17,0) level 2 dcl 1-21 ref 80 86 90 number_of_vector_slots 3 based fixed bin(17,0) level 2 dcl 1-21 ref 79 90 number_of_vectors 2 based fixed bin(17,0) level 2 dcl 1-21 ref 79 p_code parameter fixed bin(35,0) dcl 39 set ref 7 75* 80* 82 p_typed_vector_array_ptr parameter pointer dcl 37 set ref 7 74 91* p_work_area_ptr parameter pointer dcl 36 set ref 7 73 80* sub_err_ 000012 constant entry external dcl 64 ref 101 typed_vector_array based structure level 1 dcl 1-21 set ref 90 typed_vector_array_ptr 000104 automatic pointer dcl 1-43 set ref 74* 77 79 79 80* 80 86 87 90 vector_idx 000102 automatic fixed bin(17,0) dcl 45 set ref 79* 80* vector_slot based pointer array level 2 dcl 1-21 set ref 80* version based fixed bin(35,0) level 2 dcl 1-21 set ref 77* work_area based area(1024) dcl 50 ref 87 90 work_area_ptr 000100 automatic pointer dcl 43 set ref 73* 87 90 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 3-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 3-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 3-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 3-7 tva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 1-48 tva_number_of_dimensions automatic fixed bin(17,0) dcl 1-46 tva_number_of_vector_slots automatic fixed bin(17,0) dcl 1-44 vector_util_$append_dimension_print 000000 constant entry external dcl 2-25 vector_util_$append_general_print_vector 000000 constant entry external dcl 2-30 vector_util_$append_simple_print_vector 000000 constant entry external dcl 2-28 vector_util_$append_simple_typed_vector 000000 constant entry external dcl 2-33 vector_util_$cv_any_to_print_dimension 000000 constant entry external dcl 2-46 vector_util_$cv_pva_to_string 000000 constant entry external dcl 2-49 vector_util_$cv_string_to_pva 000000 constant entry external dcl 2-51 vector_util_$cv_typed_to_print 000000 constant entry external dcl 2-44 vector_util_$display 000000 constant entry external dcl 2-16 vector_util_$err_no_operation 000000 constant entry external dcl 2-54 vector_util_$free_typed_vector 000000 constant entry external dcl 2-41 vector_util_$free_typed_vector_array 000000 constant entry external dcl 2-37 vector_util_$init_print_vector_array 000000 constant entry external dcl 2-20 vector_util_$init_typed_vector_array 000000 constant entry external dcl 2-22 vector_util_$sort_print 000000 constant entry external dcl 2-17 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000270 constant entry internal dcl 95 ref 77 dm_vu_free_tva 000061 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 450 466 364 460 Length 704 364 16 202 64 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_vu_free_tva 162 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure dm_vu_free_tva. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dm_vu_free_tva 000100 work_area_ptr dm_vu_free_tva 000102 vector_idx dm_vu_free_tva 000103 dim_idx dm_vu_free_tva 000104 typed_vector_array_ptr dm_vu_free_tva THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dm_vector_util_$free_typed_vector sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000055 73 000066 74 000072 75 000075 77 000076 79 000123 80 000137 82 000174 84 000177 86 000201 87 000211 88 000236 90 000240 91 000264 93 000267 95 000270 101 000301 106 000363 ----------------------------------------------------------- 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