COMPILATION LISTING OF SEGMENT mrds_rst_tree_insert Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1104.9 mst Thu 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 mrds_rst_tree_insert: procedure (key, rsc_ptr, root_ptr, node_ptr, success); 19 20 21 /* HISTORY: 22* 23* originally written by jim gray - - july 1978 24* 25**/ 26 27 /* DESCRIPTION: 28* Threaded binary tree insertion routine 29* Given a pointer to the root of the desired list, a search is made 30* for the key. 31* If the key is found, the insertion fails to 32* avoid duplicating keys. 33* A successful insertion returns a pointer to 34* the new tree node */ 35 36 /* PARAMETERS: 37* 38* key - - (input) word to be inserted as key in new node 39* 40* rsc_ptr - - (input) pointer to common working storage 41* 42* root_ptr - - (input/output) pointer to root node of tree, 43* will be modified on empty tree insert 44* 45* node_ptr - - (output) pointer to the node just inserted 46* 47* success - - (output) bit value indicating good insertion(on) 48* or failure due to key duplication attempt(off) 49* 50**/ 51 52 53 /* get pointer to inorder parent in tree */ 54 55 call mrds_rst_tree_search (key, root_ptr, node_ptr, parent_ptr, success); 56 57 /* A search success(key was found) means a duplication 58* of keys is being attempted, return failure */ 59 60 if success then success = "0"b; 61 62 /* Normal insertion, get a new list element, and fill in the blanks */ 63 64 else do; 65 success = "1"b; 66 67 call mrds_rst_rsc_alloc (rsc_ptr, NODE, node_ptr); 68 node_ptr -> node.key = key; 69 node_ptr -> node.right.thread = "1"b; 70 node_ptr -> node.left.thread = "1"b; 71 node_ptr -> node.data = null (); 72 node_ptr -> node.pad = "0"b; 73 74 /* Add the new element to the tree. 75* Change the head pointer if empty tree */ 76 77 if root_ptr ^= null () then ; 78 else do; 79 80 /* no dummy node for tree head, get new node for it, 81* then make its right link a pointer to itself, and 82* make it's left link a thread to itself thus indicating 83* that the tree is empty */ 84 85 call mrds_rst_rsc_alloc (rsc_ptr, NODE, root_ptr); 86 87 root_ptr -> node.right.link = root_ptr; 88 root_ptr -> node.right.thread = "0"b; 89 90 root_ptr -> node.left.link = root_ptr; 91 root_ptr -> node.left.thread = "1"b; 92 93 root_ptr -> node.data = null (); 94 root_ptr -> node.pad = "0"b; 95 96 end; 97 98 /* dummy head node for tree exists for all cases now, but tree may still 99* be empty(dummy node left link = thread), if so then force the 100* dummy node to be a right parent of the new data node 101* this is done by making the dummy node pointer serve as the 102* new node parent and setting the dummy node key equal to 103* the new node key so the test for descendent direction 104* will cause a left insert to take place */ 105 106 if ^root_ptr -> node.left.thread then ; 107 else do; 108 parent_ptr = root_ptr; 109 root_ptr -> node.key = key; 110 end; 111 112 /* good parent within tree, determine if node is right 113* or left descendent. right descendents have a left thread 114* to their direct parent, and a right thread 115* to their inorder successor. left descendents have a right 116* thread to their direct parent, and a left thread 117* to their inorder predecessor */ 118 119 if key > parent_ptr -> node.key then do; 120 121 node_ptr -> node.right.link = parent_ptr -> node.right.link; 122 node_ptr -> node.left.link = parent_ptr; 123 124 parent_ptr -> node.right.link = node_ptr; 125 parent_ptr -> node.right.thread = "0"b; 126 127 end; 128 129 else do; 130 131 node_ptr -> node.left.link = parent_ptr -> node.left.link; 132 node_ptr -> node.right.link = parent_ptr; 133 134 parent_ptr -> node.left.link = node_ptr; 135 parent_ptr -> node.left.thread = "0"b; 136 137 end; 138 139 140 end; 141 142 143 dcl null builtin; 144 dcl mrds_rst_tree_search entry (char (32) aligned, ptr, ptr, ptr, bit (1)); /* binary tree search */ 145 dcl mrds_rst_rsc_alloc entry (ptr, fixed bin, ptr); /* working area manager */ 146 1 1 /* BEGIN INCLUDE FILE mrds_rst_tree.incl.pl1 jeg 7/19/78 */ 1 2 1 3 /* common declarations for threaded binary tree routines 1 4* 1 5* The tree maintains an inorder list of it's keys. 1 6* this means that for a given node, any key in it's left subtree 1 7* is "less" than the given node's key and that any key in it's 1 8* right subtree is "greater" than the given node's key. 1 9* 1 10* Threads are maintained to allow fast and easy traversal of the tree. 1 11* threads occupy the position of null pointers of an straight binary tree, 1 12* thus they only occur in leaf nodes. 1 13* left threads point to that nodes inorder predecessor. 1 14* right threads point to that nodes inorder successor. 1 15* 1 16* note: root_ptr must be passed by reference 1 17* ( not by value ) so it can be changed . 1 18* Also, each parameter must be a different 1 19* variable. The same variable used for two 1 20* or more arguments when any of the tree 1 21* routines are called will produce errors */ 1 22 1 23 1 24 declare key char (32) aligned ; /* data key directing search */ 1 25 1 26 declare root_ptr ptr ; /* pointer to head of desired list */ 1 27 declare node_ptr ptr ; /* pointer to key node, when success */ 1 28 declare parent_ptr ptr ; /* pointer to direct parent of current node */ 1 29 declare data_ptr ptr ; /* pointer from tree node to data structure headed by node */ 1 30 declare successor_ptr ptr ; /* pointer to inorder successor of current node in tree */ 1 31 declare successor_parent_ptr ptr ; /* pointer to immediate tree parent of inorder successor node */ 1 32 declare predecessor_ptr ptr ; /* pointer to inorder predecessor of current node */ 1 33 declare predecessor_parent_ptr ptr ; /* pointer to direct parent of predecessor */ 1 34 declare area_ptr ptr ; /* pointer to based area for node allocation/freeing */ 1 35 1 36 declare work_area area based (area_ptr) ; /* area of storage for tree */ 1 37 1 38 declare success bit (1) ; /* on if operation successful */ 1 39 declare thread bit (1) aligned ; /* current thread indicator, on = thread, off = pointer */ 1 40 1 41 declare 1 node based (node_ptr) aligned, /* tree element */ 1 42 2 data ptr, /* data field link */ 1 43 2 key char (32), /* data key */ 1 44 2 right, /* right branch link */ 1 45 3 thread bit (1), /* indicates whether link is thread or pointer */ 1 46 3 link ptr, /* pointer to right descendent or thread to successor */ 1 47 2 left, /* left branch link */ 1 48 3 thread bit (1), /* indicates whether link is thread or pointer */ 1 49 3 link ptr, /* pointer to left descendent or thread to predecessor */ 1 50 2 pad bit (34) ; /* reserved for future flags */ 1 51 1 52 /* END INCLUDE FILE mrds_rst_tree.incl.pl1 */ 1 53 1 54 1 55 1 56 147 148 2 1 /* BEGIN INCLUDE FILE mrds_rst_rsc.incl.pl1 RDL 7/7/78 */ 2 2 2 3 /* Modified 8/21/78 by RDL */ 2 4 2 5 /* Modified 9/11/78 by RDL to add directive and stmt pointers */ 2 6 2 7 /* Modified 11/4/78 by RDL to add debug,trace,meter switches 2 8* 2 9* Modified 3/29/79 by RDL to change s_seg_info_ptr to source_seg_ptr 2 10* 2 11* Modified by Jim Gray - - Jan. 1980, to add flags to disallow blocked files, forieng keys, and restructuring. 2 12* 2 13* Modified by Jim Gray - - Feb. 1980, to add command level flag for cmdb subroutine interface. 2 14* 2 15* Modified by Jim Gray - - 80-11-06, to add bit for cmdb -secure option. 2 16* 2 17* 81-05-18 Jim Gray : added bit for max_attributes error message, so that 2 18* it would only be issued on first occurence. 2 19* 2 20* 82-08-19 Davids: added the db_type field. 2 21* 2 22* 83-02-18 Mike Kubicar : Removed the db_type field and added the 2 23* db_relation_mode_flags substructure to define the modes applicable 2 24* to the database's relations. Also removed assorted unsed fields 2 25* (names that included the word unused). 2 26* 2 27**/ 2 28 2 29 dcl 1 rsc based (rsc_ptr), /* Restructuring control info */ 2 30 2 rsc_dir char (200), /* pathname of directory containing rsc segment */ 2 31 2 dbp char (168), /* Database absolute path */ 2 32 2 temp_dir char (168), /* Path name of temp restrucuring directory */ 2 33 2 temp_dir_sw bit (1) unal, /* On => temp dir has been created */ 2 34 2 db_quiesced_sw bit (1) unal, /* On => database has been quiesced */ 2 35 2 o_db_open_sw bit (1) unal, /* On => old database has been opened */ 2 36 2 n_db_open_sw bit (1) unal, /* On => temp database is open */ 2 37 2 listing_seg_sw bit (1) unal, /* On => listing segment has been created */ 2 38 2 skip_scanner_conversion bit (1) unal, /* Skip conversion in scanner */ 2 39 2 cmdb_option bit (1) unal, /* ON => this is a cmdb source, not restructuring */ 2 40 2 trace_sw bit (1) unal, /* On -> trace mode in affect */ 2 41 2 debug_sw bit (1) unal, /* On = debug mode (NOT IMPLEMENTED) */ 2 42 2 meter_sw bit (1) unal, /* On = procedures call metering procedure */ 2 43 2 delete_db_sw bit (1) unal, /* On = delete data base in cleanup */ 2 44 2 model_consistent_sw bit (1) unal, /* On => Model is consistent */ 2 45 2 physical_started_sw bit (1) unal, /* On => Physical restructuring started */ 2 46 2 physical_complete_sw bit (1) unal, /* On => Physical restructuring completed */ 2 47 2 model_overflow bit (1) unal, /* ON => model segment area condition occurred */ 2 48 2 max_files bit (1) unal, /* ON => maximum number of files reached */ 2 49 2 allow_foreign_keys bit (1) unal, /* on => allow foreign key statment */ 2 50 2 foreign_key_seen bit (1) unal, /* on => foreign key definition in source */ 2 51 2 allow_blocked_files bit (1) unal, /* on => allow file statement with blocked option */ 2 52 2 blocked_file_seen bit (1) unal, /* on => blocked file definition in source */ 2 53 2 allow_restructuring bit (1) unal, /* on => allow RMDB entry point */ 2 54 2 command_level bit (1) unal, /* on => called from command unal, not subroutine level */ 2 55 2 secure bit (1) unal, /* on => -secure option given for cmdb */ 2 56 2 max_attrs bit (1) unal, /* on => max attrs/rel or max indexes/rel exceeded */ 2 57 2 db_relation_mode_flags, 2 58 3 dm_file_type bit (1) unal, /* on => relations are dm files */ 2 59 3 protection_on bit (1) unal, /* on => relations need transactions */ 2 60 3 concurrency_on bit (1) unal, /* on => concurrency control enabled */ 2 61 3 rollback_on bit (1) unal, /* on => before journalling is enabled */ 2 62 2 severity_high fixed bin, /* Highest severity level error encountered */ 2 63 2 phase fixed bin, /* 000 = init 2 64* 100 = global list init 2 65* 200 = parse 2 66* 300 = physical init 2 67* 400 = physical */ 2 68 2 h_o_seg_info_ls_ptr ptr, /* Pointer to head of old db seg_info list */ 2 69 2 h_n_seg_info_ls_ptr ptr, /* Pointer to head of new db seg_info list */ 2 70 2 h_gfile_ptr ptr, /* Pointer to head of global file list */ 2 71 2 h_gdom_ptr ptr, /* Pointer to head of global domain list */ 2 72 2 h_gattr_ptr ptr, /* Pointer to head of global attribute list */ 2 73 2 h_grel_ptr ptr, /* Pointer to head of global relation list */ 2 74 2 h_glink_ptr ptr, /* Pointer to head of global link list */ 2 75 2 o_dm_ptr ptr, /* Pointer to old data model seg (dm_model ) */ 2 76 2 n_dm_ptr ptr, /* Pointer to temp data model seg */ 2 77 2 o_fn_hdr_ptr ptr, /* Pointer to head of original file list (fn structure) */ 2 78 2 source_seg_ptr ptr, /* Pointer to source_seg */ 2 79 2 listing_iocb_ptr ptr, /* Pointer to listing segment iocb */ 2 80 2 directive_ptr ptr, /* Pointer to directive type str in mrds_rst_semactics.incl.pl1 */ 2 81 2 stmt_ptr ptr, /* Pointer to statement str in mrds_rst_sematics.incl.pl1 */ 2 82 2 trace_metering_iocb_ptr ptr, /* Pointer to seg used by trace and metering */ 2 83 2 tree_node_area_ptr ptr, /* pointer to working storage for tree nodes */ 2 84 2 tree_data, 2 85 3 seg_info_area_ptr ptr, /* seg info working storage area */ 2 86 3 gl_area_ptr ptr, /* global list data work storage area */ 2 87 3 sl_area_ptr ptr, /* sublist data work storage area */ 2 88 2 parse_info_area_ptr ptr, /* parse interface work area storage */ 2 89 2 static_info_area_ptr ptr, /* directive, stmt and other static work storage area */ 2 90 2 variable_length_area_ptr ptr, /* varibale allocates work storage area */ 2 91 2 other_area_ptr ptr, /* unspecified work area storage */ 2 92 2 wa area (sys_info$max_seg_size - fixed (rel (addr (rsc.wa))) + 1); /* Work area */ 2 93 2 94 dcl rsc_ptr ptr; /* Pointer to base of rsc segment */ 2 95 2 96 2 97 2 98 /* END INCLUDE FILE mrds_rst_rsc.incl.pl1 */ 2 99 149 150 3 1 /* BEGIN INCLUDE FILE mrds_rst_struct_types.incl.pl1 - - Jim Gray 2/20/79 */ 3 2 3 3 /* these constants are used to identify structures to be allocated 3 4* to the general purpose allocation routines */ 3 5 3 6 /* HISTORY: 3 7* 82-06-28 Roger Lackey : Removed struct types 52, 53, 54, 55, 56, 57, 58 3 8* Type 25 is no longer used and is handled with special code so bounds of 3 9* array could continue to work */ 3 10 3 11 /* PARSE INFO STRUCTURES */ 3 12 3 13 declare DOMAIN fixed bin internal static options (constant) init (1) ; 3 14 declare ATTRIBUTE_DOMAIN fixed bin internal static options (constant) init (2) ; 3 15 declare RELATION fixed bin internal static options (constant) init (3) ; 3 16 declare ATTRIBUTE fixed bin internal static options (constant) init (4) ; 3 17 declare FILE fixed bin internal static options (constant) init (5) ; 3 18 declare ITEM fixed bin internal static options (constant) init (6) ; 3 19 declare LINK fixed bin internal static options (constant) init (7) ; 3 20 declare FOREIGN_KEY fixed bin internal static options (constant) init (8) ; 3 21 declare CHILDREN fixed bin internal static options (constant) init (9) ; 3 22 declare INDEX fixed bin internal static options (constant) init (10) ; 3 23 declare DELETE_NAME fixed bin internal static options (constant) init (11) ; 3 24 declare DOM_LIST fixed bin internal static options (constant) init (12) ; /* in link handler */ 3 25 3 26 /* SEMANTIC STRUCTURES */ 3 27 3 28 declare DIRECTIVE fixed bin internal static options (constant) init (13) ; 3 29 declare STMT fixed bin internal static options (constant) init (14) ; 3 30 3 31 3 32 /* PARSING STRUCTURES */ 3 33 3 34 declare LEX_STACK fixed bin internal static options (constant) init (15) ; 3 35 declare P_STRUCT fixed bin internal static options (constant) init (16) ; 3 36 declare CUR_LEX_TOP fixed bin internal static options (constant) init (17) ; 3 37 declare FIXUP_TOKEN fixed bin internal static options (constant) init (50) ; /* scanner */ 3 38 declare STRING_SOURCE fixed bin internal static options (constant) init (51) ; /* semantics */ 3 39 declare TOKEN fixed bin internal static options (constant) init (18) ; 3 40 declare OUTPUT_TEXT fixed bin internal static options (constant) init (19) ; 3 41 3 42 3 43 /* DB_MODEL STRUCTURES */ 3 44 3 45 declare DB_MODEL fixed bin internal static options (constant) init (0) ; 3 46 declare FILE_INFO fixed bin internal static options (constant) init (1) ; 3 47 declare DOMAIN_INFO fixed bin internal static options (constant) init (2) ; 3 48 declare PATH_ENTRY fixed bin internal static options (constant) init (3) ; 3 49 declare STACK_ITEM fixed bin internal static options (constant) init (4) ; 3 50 declare CONSTANT fixed bin internal static options (constant) init (30) ; 3 51 declare VERSION_STATUS fixed bin internal static options (constant) init (5) ; 3 52 declare CHANGER fixed bin internal static options (constant) init (6) ; 3 53 3 54 3 55 /* FILE_MODEL STRUCTURES */ 3 56 3 57 declare FILE_MODEL fixed bin internal static options (constant) init (7) ; 3 58 declare REL_INFO fixed bin internal static options (constant) init (8) ; 3 59 declare ATTR_INFO fixed bin internal static options (constant) init (9) ; 3 60 declare PARENT_LINK_INFO fixed bin internal static options (constant) init (10) ; 3 61 declare CHILD_LINK_INFO fixed bin internal static options (constant) init (11) ; 3 62 declare ATTR_LIST fixed bin internal static options (constant) init (12) ; 3 63 declare ATD fixed bin internal static options (constant) init (31) ; 3 64 declare COMP_NO_ARRAY fixed bin internal static options (constant) init (32) ; 3 65 declare SORT_KEY fixed bin internal static options (constant) init (13) ; 3 66 declare DUP_PREV fixed bin internal static options (constant) init (14) ; 3 67 declare SELECT_CHAIN fixed bin internal static options (constant) init (15) ; 3 68 3 69 3 70 /* GLOBAL LIST STRUCTURES */ 3 71 3 72 declare GL fixed bin internal static options (constant) init (20) ; 3 73 declare SL fixed bin internal static options (constant) init (21) ; 3 74 declare SEGINFO fixed bin internal static options (constant) init (22) ; 3 75 declare LIST_OVRLY fixed bin internal static options (constant) init (26) ; 3 76 declare SAVED_CHILD_COUNT fixed bin internal static options (constant) init (24) ; /* in global list build */ 3 77 declare NODE fixed bin internal static options (constant) init (23) ; 3 78 3 79 3 80 /* DISPLAY STRUCTURES */ 3 81 3 82 declare DISPLAY_INFO fixed bin internal static options (constant) init (25) ; 3 83 3 84 /* Remove because nolonger used 82-06-28 3 85* NAME_LIST fixed bin internal static options (constant) init (52) ; 3 86* PAI_ARRAY fixed bin internal static options (constant) init (53) ; 3 87* PAR_LK_ATTR_INFO fixed bin internal static options (constant) init (54) ; 3 88* CAI_ARRAY fixed bin internal static options (constant) init (55) ; 3 89* CHILD_LK_ATTR_INFO fixed bin internal static options (constant) init (56) ; 3 90* NAME_TABLE fixed bin internal static options (constant) init (57) ; 3 91* ATTR_TABLE fixed bin internal static options (constant) init (58) ; 3 92**/ 3 93 3 94 /* END INCULDE FILE mrds_rst_struct_types */ 3 95 151 152 153 154 end; 155 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0909.3 mrds_rst_tree_insert.pl1 >special_ldd>online>mrds.pbf-04/18/85>mrds_rst_tree_insert.pl1 147 1 10/14/83 1608.6 mrds_rst_tree.incl.pl1 >ldd>include>mrds_rst_tree.incl.pl1 149 2 10/14/83 1609.1 mrds_rst_rsc.incl.pl1 >ldd>include>mrds_rst_rsc.incl.pl1 151 3 10/14/83 1609.0 mrds_rst_struct_types.incl.pl1 >ldd>include>mrds_rst_struct_types.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. NODE 000000 constant fixed bin(17,0) initial dcl 3-77 set ref 67* 85* data based pointer level 2 dcl 1-41 set ref 71* 93* key 2 based char(32) level 2 in structure "node" dcl 1-41 in procedure "mrds_rst_tree_insert" set ref 68* 109* 119 key parameter char(32) dcl 1-24 in procedure "mrds_rst_tree_insert" set ref 18 55* 68 109 119 left 16 based structure level 2 dcl 1-41 link 20 based pointer level 3 in structure "node" dcl 1-41 in procedure "mrds_rst_tree_insert" set ref 90* 122* 131* 131 134* link 14 based pointer level 3 in structure "node" dcl 1-41 in procedure "mrds_rst_tree_insert" set ref 87* 121* 121 124* 132* mrds_rst_rsc_alloc 000012 constant entry external dcl 145 ref 67 85 mrds_rst_tree_search 000010 constant entry external dcl 144 ref 55 node based structure level 1 dcl 1-41 node_ptr parameter pointer dcl 1-27 set ref 18 55* 67* 68 69 70 71 72 121 122 124 131 132 134 null builtin function dcl 143 ref 71 77 93 pad 22 based bit(34) level 2 dcl 1-41 set ref 72* 94* parent_ptr 000100 automatic pointer dcl 1-28 set ref 55* 108* 119 121 122 124 125 131 132 134 135 right 12 based structure level 2 dcl 1-41 root_ptr parameter pointer dcl 1-26 set ref 18 55* 77 85* 87 87 88 90 90 91 93 94 106 108 109 rsc_ptr parameter pointer dcl 2-94 set ref 18 67* 85* success parameter bit(1) unaligned dcl 1-38 set ref 18 55* 60 60* 65* thread 16 based bit(1) level 3 in structure "node" dcl 1-41 in procedure "mrds_rst_tree_insert" set ref 70* 91* 106 135* thread 12 based bit(1) level 3 in structure "node" dcl 1-41 in procedure "mrds_rst_tree_insert" set ref 69* 88* 125* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ATD internal static fixed bin(17,0) initial dcl 3-63 ATTRIBUTE internal static fixed bin(17,0) initial dcl 3-16 ATTRIBUTE_DOMAIN internal static fixed bin(17,0) initial dcl 3-14 ATTR_INFO internal static fixed bin(17,0) initial dcl 3-59 ATTR_LIST internal static fixed bin(17,0) initial dcl 3-62 CHANGER internal static fixed bin(17,0) initial dcl 3-52 CHILDREN internal static fixed bin(17,0) initial dcl 3-21 CHILD_LINK_INFO internal static fixed bin(17,0) initial dcl 3-61 COMP_NO_ARRAY internal static fixed bin(17,0) initial dcl 3-64 CONSTANT internal static fixed bin(17,0) initial dcl 3-50 CUR_LEX_TOP internal static fixed bin(17,0) initial dcl 3-36 DB_MODEL internal static fixed bin(17,0) initial dcl 3-45 DELETE_NAME internal static fixed bin(17,0) initial dcl 3-23 DIRECTIVE internal static fixed bin(17,0) initial dcl 3-28 DISPLAY_INFO internal static fixed bin(17,0) initial dcl 3-82 DOMAIN internal static fixed bin(17,0) initial dcl 3-13 DOMAIN_INFO internal static fixed bin(17,0) initial dcl 3-47 DOM_LIST internal static fixed bin(17,0) initial dcl 3-24 DUP_PREV internal static fixed bin(17,0) initial dcl 3-66 FILE internal static fixed bin(17,0) initial dcl 3-17 FILE_INFO internal static fixed bin(17,0) initial dcl 3-46 FILE_MODEL internal static fixed bin(17,0) initial dcl 3-57 FIXUP_TOKEN internal static fixed bin(17,0) initial dcl 3-37 FOREIGN_KEY internal static fixed bin(17,0) initial dcl 3-20 GL internal static fixed bin(17,0) initial dcl 3-72 INDEX internal static fixed bin(17,0) initial dcl 3-22 ITEM internal static fixed bin(17,0) initial dcl 3-18 LEX_STACK internal static fixed bin(17,0) initial dcl 3-34 LINK internal static fixed bin(17,0) initial dcl 3-19 LIST_OVRLY internal static fixed bin(17,0) initial dcl 3-75 OUTPUT_TEXT internal static fixed bin(17,0) initial dcl 3-40 PARENT_LINK_INFO internal static fixed bin(17,0) initial dcl 3-60 PATH_ENTRY internal static fixed bin(17,0) initial dcl 3-48 P_STRUCT internal static fixed bin(17,0) initial dcl 3-35 RELATION internal static fixed bin(17,0) initial dcl 3-15 REL_INFO internal static fixed bin(17,0) initial dcl 3-58 SAVED_CHILD_COUNT internal static fixed bin(17,0) initial dcl 3-76 SEGINFO internal static fixed bin(17,0) initial dcl 3-74 SELECT_CHAIN internal static fixed bin(17,0) initial dcl 3-67 SL internal static fixed bin(17,0) initial dcl 3-73 SORT_KEY internal static fixed bin(17,0) initial dcl 3-65 STACK_ITEM internal static fixed bin(17,0) initial dcl 3-49 STMT internal static fixed bin(17,0) initial dcl 3-29 STRING_SOURCE internal static fixed bin(17,0) initial dcl 3-38 TOKEN internal static fixed bin(17,0) initial dcl 3-39 VERSION_STATUS internal static fixed bin(17,0) initial dcl 3-51 area_ptr automatic pointer dcl 1-34 data_ptr automatic pointer dcl 1-29 predecessor_parent_ptr automatic pointer dcl 1-33 predecessor_ptr automatic pointer dcl 1-32 rsc based structure level 1 unaligned dcl 2-29 successor_parent_ptr automatic pointer dcl 1-31 successor_ptr automatic pointer dcl 1-30 thread automatic bit(1) dcl 1-39 work_area based area(1024) dcl 1-36 NAME DECLARED BY EXPLICIT CONTEXT. mrds_rst_tree_insert 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 270 304 217 300 Length 532 217 14 212 50 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrds_rst_tree_insert 78 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mrds_rst_tree_insert 000100 parent_ptr mrds_rst_tree_insert THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. mrds_rst_rsc_alloc mrds_rst_tree_search NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000006 55 000020 60 000037 65 000051 67 000054 68 000067 69 000076 70 000100 71 000101 72 000103 77 000106 85 000112 87 000125 88 000131 90 000134 91 000135 93 000141 94 000143 106 000146 108 000153 109 000154 119 000160 121 000167 122 000173 124 000176 125 000201 127 000202 131 000203 132 000207 134 000212 135 000215 154 000216 ----------------------------------------------------------- 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