COMPILATION LISTING OF SEGMENT rlm_create_cursor Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 0927.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* format: style2,ind3 */ 8 9 rlm_create_cursor: 10 proc (p_rel_opening_id, p_work_area_ptr, p_relation_cursor_ptr, p_code); 11 12 /* DESCRIPTION: 13* 14* 15**/ 16 17 /* HISTORY: 18* 19*Written by Matthew Pierret, 09/13/82. 20*Modified: 21*10/13/82 by Matthew Pierret: Changed to accept p_collection_id = "0"b to 22* indicate the record collection. 23*01/18/83 by Matthew Pierret: Changed to use RELATION_INFO_VERSION_2. 24*02/28/83 by Matthew Pierret: Changed to use relation_opening_info, 25* relation_header and index_attribute_map instead of relation_info. 26*05/24/83 by Matthew Pierret: Changed to use relation_cursor instead of 27* index and record_cursor. This reduced the routine to little 28* more than an allocation. 29*06/08/84 by Lee Baldwin: Took out the dcl of dm_error_$index_not_in_relation 30* since it isn't being used here. 31*10/31/84 by Stanford S. Cox: Added asgn. of relation_cursor.version. 32**/ 33 34 /* START OF DECLARATIONS */ 35 /* Parameter */ 36 37 dcl p_rel_opening_id bit (36) aligned parameter; 38 dcl p_work_area_ptr ptr parameter; 39 dcl p_relation_cursor_ptr ptr parameter; 40 dcl p_code fixed bin (35) parameter; 41 42 /* Automatic */ 43 44 dcl relation_opening_info_ptr 45 ptr init (null); 46 47 /* Based */ 48 49 dcl p_work_area area (99999) based (p_work_area_ptr); 50 51 /* Builtin */ 52 53 dcl (null, hbound) builtin; 54 55 /* Constant */ 56 57 dcl myname init ("rlm_create_cursor") char (17) internal static options (constant); 58 59 /* Entry */ 60 61 dcl record_manager_$create_cursor 62 entry (bit (36) aligned, bit (36) aligned, ptr, ptr, fixed bin (35)); 63 dcl index_manager_$create_cursor 64 entry (bit (36) aligned, bit (36) aligned, ptr, ptr, fixed bin (35)); 65 dcl rlm_opening_info$get entry (bit (36) aligned, ptr, fixed bin (35)); 66 67 /* END OF DECLARATIONS */ 68 69 p_code = 0; 70 p_relation_cursor_ptr = null; 71 72 /* To verify that p_rel_opening_id is valid */ 73 call rlm_opening_info$get (p_rel_opening_id, relation_opening_info_ptr, p_code); 74 if p_code ^= 0 75 then return; 76 77 alloc relation_cursor in (p_work_area); 78 relation_cursor.version = RELATION_CURSOR_VERSION_2; 79 relation_cursor.work_area_ptr = p_work_area_ptr; 80 relation_cursor.file_opening_id = p_rel_opening_id; 81 82 p_relation_cursor_ptr = relation_cursor_ptr; 83 84 return; 85 1 1 /* BEGIN INCLUDE FILE dm_rlm_cursor.incl.pl1 */ 1 2 1 3 /* HISTORY: 1 4* 1 5*Written by Matthew Pierret, 05/19/83. 1 6*Modified: 1 7*06/24/83 by Lindsey L. Spratt: Changed to version 2. Added the current.flags 1 8* structure, to add the search_index_and_record_collection flag. 1 9* This flag is only meaningful when doing a relative search. It is 1 10* used by rlm_general_search to know what state the 1 11* internal_search_specification was left in (suitable for searching 1 12* the index or suitable for searching the records). 1 13*10/29/84 by Stanford S. Cox: Changed to not init version. 1 14*02/12/85 by S. Cox: Chg and_group_idx to fb17, current.flags.mbz to bit35. 1 15**/ 1 16 1 17 /* format: style2,ind3 */ 1 18 dcl 1 relation_cursor aligned based (relation_cursor_ptr), 1 19 2 version char (8), /* version of this structure */ 1 20 2 work_area_ptr ptr init (null), /* points to area in which cursor is allocated. */ 1 21 2 file_opening_id bit (36) aligned init ("0"b), 1 22 /* opening id of file in which relation resides */ 1 23 2 flags aligned, 1 24 3 current_state_is_consistent 1 25 bit (1) unal init ("0"b), 1 26 /* On if all values in current are insynch */ 1 27 3 mbz bit (35) unal init ("0"b), 1 28 /* must be zero */ 1 29 2 current, /* current position in search */ 1 30 3 and_group_idx fixed bin (17) aligned init (0), 1 31 /* in relation_search_specification */ 1 32 3 flags aligned, 1 33 4 search_index_and_record_collection 1 34 bit (1) unal init ("0"b), 1 35 4 mbz bit (35) unal init ("0"b), 1 36 3 collection_id bit (36) aligned init ("0"b), 1 37 /* that cursor is define over */ 1 38 3 specification_ptr 1 39 ptr init (null), /* points to index or record specification */ 1 40 3 cursor_ptr ptr init (null); /* points to index or record cursor */ 1 41 1 42 dcl relation_cursor_ptr ptr init (null); 1 43 dcl RELATION_CURSOR_VERSION_2 1 44 init ("relcrs02") char (8) aligned internal static options (constant); 1 45 1 46 /* END INCLUDE FILE dm_rlm_cursor.incl.pl1 */ 86 87 88 end rlm_create_cursor; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0836.7 rlm_create_cursor.pl1 >spec>on>7138.pbf>rlm_create_cursor.pl1 86 1 03/05/85 0800.2 dm_rlm_cursor.incl.pl1 >spec>on>7138.pbf>dm_rlm_cursor.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. RELATION_CURSOR_VERSION_2 000000 constant char(8) initial dcl 1-43 ref 78 and_group_idx 6 based fixed bin(17,0) initial level 3 dcl 1-18 set ref 77* collection_id 10 based bit(36) initial level 3 dcl 1-18 set ref 77* current 6 based structure level 2 dcl 1-18 current_state_is_consistent 5 based bit(1) initial level 3 packed unaligned dcl 1-18 set ref 77* cursor_ptr 14 based pointer initial level 3 dcl 1-18 set ref 77* file_opening_id 4 based bit(36) initial level 2 dcl 1-18 set ref 77* 80* flags 5 based structure level 2 in structure "relation_cursor" dcl 1-18 in procedure "rlm_create_cursor" flags 7 based structure level 3 in structure "relation_cursor" dcl 1-18 in procedure "rlm_create_cursor" mbz 7(01) based bit(35) initial level 4 in structure "relation_cursor" packed unaligned dcl 1-18 in procedure "rlm_create_cursor" set ref 77* mbz 5(01) based bit(35) initial level 3 in structure "relation_cursor" packed unaligned dcl 1-18 in procedure "rlm_create_cursor" set ref 77* null builtin function dcl 53 ref 44 70 77 77 77 1-42 p_code parameter fixed bin(35,0) dcl 40 set ref 9 69* 73* 74 p_rel_opening_id parameter bit(36) dcl 37 set ref 9 73* 80 p_relation_cursor_ptr parameter pointer dcl 39 set ref 9 70* 82* p_work_area based area(99999) dcl 49 ref 77 p_work_area_ptr parameter pointer dcl 38 ref 9 77 79 relation_cursor based structure level 1 dcl 1-18 set ref 77 relation_cursor_ptr 000102 automatic pointer initial dcl 1-42 set ref 77* 78 79 80 82 1-42* relation_opening_info_ptr 000100 automatic pointer initial dcl 44 set ref 44* 73* rlm_opening_info$get 000010 constant entry external dcl 65 ref 73 search_index_and_record_collection 7 based bit(1) initial level 4 packed unaligned dcl 1-18 set ref 77* specification_ptr 12 based pointer initial level 3 dcl 1-18 set ref 77* version based char(8) level 2 dcl 1-18 set ref 78* work_area_ptr 2 based pointer initial level 2 dcl 1-18 set ref 77* 79* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. hbound builtin function dcl 53 index_manager_$create_cursor 000000 constant entry external dcl 63 myname internal static char(17) initial unaligned dcl 57 record_manager_$create_cursor 000000 constant entry external dcl 61 NAME DECLARED BY EXPLICIT CONTEXT. rlm_create_cursor 000015 constant entry external dcl 9 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 150 162 110 160 Length 344 110 12 146 37 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rlm_create_cursor 76 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rlm_create_cursor 000100 relation_opening_info_ptr rlm_create_cursor 000102 relation_cursor_ptr rlm_create_cursor THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. rlm_opening_info$get NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000010 44 000022 1 42 000024 69 000025 70 000027 73 000030 74 000042 77 000045 78 000074 79 000077 80 000103 82 000105 84 000106 ----------------------------------------------------------- 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