COMPILATION LISTING OF SEGMENT vrmu_add_indexes Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1435.1 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 vrmu_add_indexes: proc (iocb_ptr, key_list_ptr, tuple_id, code); 19 20 /* NOTES: 21* 22* This procedure adds all keys in the list pointed to by key_list_ptr to the tuple 23* specified by tuple id. The key is associated with the tuple id, 24* and not with the record directly. 25**/ 26 27 /* HISTORY: 28* 29* Initially written by JA Weeldreyer -- June, 1978. 30* Renamed and modified for vfile_relmgr_ by R. Harvey -- 20 September 1982. 31* 32**/ 33 34 /* vrmu_add_indexes: proc (iocb_ptr, key_list_ptr, tuple_id, code); */ 35 36 /* Parameters */ 37 38 dcl iocb_ptr ptr; /* vfile iocb */ 39 40 /* dcl key_list_ptr ptr; /* key values to be added */ 41 dcl tuple_id bit (36) aligned; /* record keys are to be associated with */ 42 dcl code fixed bin (35); /* output error code */ 43 44 45 do i = 1 to key_list.number_of_keys; /* add each key in list */ 46 47 key_list.key_info.vf_info.input_key (i), /* set up info for vfile_ */ 48 key_list.key_info.vf_info.input_desc (i) = "1"b; 49 addr (key_list.key_info.vf_info.vf_desc (i)) -> b36 = tuple_id; /* move in tuple id as descr. */ 50 51 call iox_$control (iocb_ptr, "add_key", addr (key_list.key_info.vf_info (i)), icode); /* let vfile_ do the work */ 52 if icode ^= 0 then call error (icode); 53 54 end; /* index additon loop */ 55 56 code = 0; 57 exit: 58 return; 59 60 error: proc (cd); 61 62 /* Internal error procedure */ 63 64 dcl cd fixed bin (35); 65 66 code = cd; 67 go to exit; 68 69 end error; 70 1 1 /* BEGIN vrm_key_list.incl.pl1 -- jaw, 1/17/79 */ 1 2 1 3 dcl 1 key_list aligned based (key_list_ptr), /* list of keys for add_key or delete_key */ 1 4 2 number_of_keys fixed bin, /* no. keys in list */ 1 5 2 key_info (kl_number_of_keys refer (key_list.number_of_keys)), 1 6 3 item_index fixed bin, /* attr. index or plink index */ 1 7 3 cand_key bit (1) unal, /* on if key is for candidate key */ 1 8 3 unique_val bit (1) unal, /* on if value must be unique */ 1 9 3 pad bit (34) unal, 1 10 3 vf_info, /* info for vfile control orders */ 1 11 4 input_key bit (1) unal, /* if key val supplied */ 1 12 4 input_desc bit (1) unal, /* if desc. supplied */ 1 13 4 reserved bit (34) unal, 1 14 4 vf_desc, /* vfile_ descriptor */ 1 15 5 comp_no fixed bin (17) unal, 1 16 5 offset bit (18) unal, 1 17 4 key char (256) var; 1 18 1 19 dcl key_list_ptr ptr; 1 20 dcl kl_number_of_keys fixed bin; 1 21 1 22 /* END vrm_key_list.incl.pl1 */ 71 72 73 74 75 dcl i fixed bin; 76 dcl b36 bit (36) based; 77 78 dcl icode fixed bin (35); /* internal status code */ 79 80 dcl addr builtin; 81 82 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 83 84 end vrmu_add_indexes; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0933.9 vrmu_add_indexes.pl1 >special_ldd>online>mrds_install>vrmu_add_indexes.pl1 71 1 10/14/83 1609.1 vrm_key_list.incl.pl1 >ldd>include>vrm_key_list.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. addr builtin function dcl 80 ref 49 51 51 b36 based bit(36) unaligned dcl 76 set ref 49* cd parameter fixed bin(35,0) dcl 64 ref 60 66 code parameter fixed bin(35,0) dcl 42 set ref 18 56* 66* i 000100 automatic fixed bin(17,0) dcl 75 set ref 45* 47 47 49 51 51* icode 000101 automatic fixed bin(35,0) dcl 78 set ref 51* 52 52* input_desc 3(01) based bit(1) array level 4 packed unaligned dcl 1-3 set ref 47* input_key 3 based bit(1) array level 4 packed unaligned dcl 1-3 set ref 47* iocb_ptr parameter pointer dcl 38 set ref 18 51* iox_$control 000010 constant entry external dcl 82 ref 51 key_info 1 based structure array level 2 dcl 1-3 key_list based structure level 1 dcl 1-3 key_list_ptr parameter pointer dcl 1-19 ref 18 45 47 47 49 51 51 number_of_keys based fixed bin(17,0) level 2 dcl 1-3 ref 45 tuple_id parameter bit(36) dcl 41 ref 18 49 vf_desc 4 based structure array level 4 dcl 1-3 set ref 49 vf_info 3 based structure array level 3 dcl 1-3 set ref 51 51 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. kl_number_of_keys automatic fixed bin(17,0) dcl 1-20 NAMES DECLARED BY EXPLICIT CONTEXT. error 000106 constant entry internal dcl 60 ref 52 exit 000105 constant label dcl 57 ref 67 vrmu_add_indexes 000013 constant entry external dcl 18 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 156 170 120 166 Length 354 120 12 150 35 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vrmu_add_indexes 98 external procedure is an external procedure. error internal procedure shares stack frame of external procedure vrmu_add_indexes. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vrmu_add_indexes 000100 i vrmu_add_indexes 000101 icode vrmu_add_indexes THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$control NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000006 45 000020 47 000031 49 000041 51 000043 52 000075 54 000101 56 000103 57 000105 60 000106 66 000110 67 000113 ----------------------------------------------------------- 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