/* BEGIN INCLUDE FILE mrds_rst_global_lists.incl.pl1 jeg 7/17/78 */ /* note: mrds_rst_list_element$add and delete entries makes use of the following structure type correspondence structure_type = 1 refers to gl (global list element) structure_type = 2 refers to sl (global sublist element) structure_type = 3 refers to seg_info(segment information element) */ dcl 1 gl aligned based (gl_ptr), /* Template for global list entry */ 2 type fixed bin, /* structure_type, usefull when overlay used */ 2 name char (32), /* Item name */ 2 item_info_ptr ptr, /* Pointer to info structure for this item */ 2 parse_info_ptr ptr, /* Pointer to info obtained by parsing source */ 2 other_info_ptr ptr, /* Pointer to additional info str if needed */ 2 item_sub_list_ptr ptr, /* Pointer to sub list of items if neccessary for this his item */ 2 file_info_ptr ptr, /* Pointer to file info for this entry */ 2 file_model_ptr ptr, /* Pointer to file model for this entry */ 2 affected bit (1) unal, /* ON => affected by some directive */ 2 cmdb bit (1) unal, /* ON => affected by cmdb directive */ 2 undefine bit (1) unal, /* ON => affected by undefine directive */ 2 define bit (1) unal, /* ON => affected by define directive */ 2 redefine bit (1) unal, /* ON => affected by redefine directive */ 2 superior_assigned bit (1) unal, /* ON => has parent */ 2 inferior_assigned bit (1) unal, /* ON => child present */ 2 complete bit (1) unal, /* ON => all things present */ 2 consistant bit (1) unal, /* ON => correct model */ 2 reserved bit (26) unal, /* for future use */ 2 child_defined bit (1) unal ; /* ON => global element entered by child */ dcl gl_ptr ptr; /* Pointer to gl structure */ dcl 1 sl aligned based (sl_ptr), /* Template of sub list entry for global list */ 2 type fixed bin, /* structure_type, usefull when overlay used */ 2 name char (32), /* Name of item */ 2 item_info_ptr ptr, /* Pointer to info structure for this entry */ 2 parse_info_ptr ptr, /* Pointer to info obtained by parsing source */ 2 old_other_info_ptr ptr, /* Pointer to old version of other info */ 2 new_other_info_ptr ptr, /* Pointer to new version of other info */ 2 global_list_ptr ptr, /* pointer to corresponding global list element */ 2 reserved bit (36) unal; /* Reserved for future use */ dcl sl_ptr ptr; /* Pointer to sub list structure */ dcl 1 seg_info based (seg_info_ptr), /* Info about segment initiated */ 2 name char (32), /* Segment name */ 2 dir char (168), /* Absolute path of containing directory */ 2 seg_ptr ptr, /* Pointer to base of segment */ 2 bcnt fixed bin (24); /* Bit count of segment */ dcl seg_info_ptr ptr; /* Pointer to seg_info str */ dcl MAIN_LIST fixed bin internal static options (constant) init (1); dcl SUB_LIST fixed bin internal static options (constant) init (2); dcl SEG_INFO fixed bin internal static options (constant) init (3); declare 1 list_ovrly aligned based (list_ovrly_ptr), /* overlay for top part of gl and sl list elements */ 2 type fixed bin, /* structure_type, 1 => gl, 2 => sl */ 2 name char (32), /* Name of item */ 2 item_info_ptr ptr, /* pointer to info structure for this entry */ 2 parse_info_ptr ptr, /* pointer to info obtained by parsing source */ 2 other_info_ptr ptr ; /* pointer to additional info structure if needed */ declare list_ovrly_ptr ptr ; /* pointer to overlay structure */ declare saved_child_count fixed bin based (saved_child_count_ptr) ; /* parent link structure child count */ declare saved_child_count_ptr ptr ; /* pointer to remembered number of children */ /* USES AND MEANING OF LIST ELEMENT ENTRIES DOMAIN GLOBAL LIST -------------------------- gl.type - - MAIN_LIST gl.name - - 32 char domain name gl.item_info_ptr - - pointer to domain_info for this domain gl.parse_info_ptr - - pointer to parse info structure gl.other_info_ptr - - dbm_ptr, pointer to mdbm_db_model gl.item_sub_list_ptr - - pointer to sublist of attributes using this domain gl.file_info_ptr - - null () gl.file_model_ptr - - null () gl.superior_assigned - - ON => domain referenced by some relation gl.inferior_assigned - - ON => referencing attribute present gl.complete - - ON => domain_info present gl.consistant - - always ON DOMAIN GLOBAL LIST "REFERENCING ATTRIBUTES" SUBLIST ---------------- sl.type - - SUB_LIST sl.name - - 32 char attribute name sl.item_info_ptr - - pointer to this attribute's attribute_info sl.parse_info_ptr - - pointer to parse info structure sl.old_other_info_ptr - - null () sl.new_other_info_ptr - - pointer to this domain's global list element sl.global_list_ptr - - pointer to attribute's global list element ATTRIBUTE GLOBAL LIST ----------------- gl.type - - MAIN_LIST gl.name - - 32 char attribute name gl.item_info_ptr - - pointer to corresponding domain sublist element for this attribute gl.parse_info_ptr - - pointer to parse info structure gl.other_info_ptr - - domain_info of domain for this attribute gl.item_sub_list_ptr - - pointer to sublist of relations that use this attribute gl.file_info_ptr - - null (), use pointer(fm_ptr,file_model.fi_ptr) gl.file_model_ptr - - null (), use pointer(ai_ptr,0), ai_ptr from corres. rel's attr sublist gl.superior_assigned - - ON => relation contains this attribute gl.inferior_assigned - - ON => attribute references known domain gl.complete - - ON => attr_info present for this attribute gl.consistant - - OFF => no domain for this attribute ATTRIBUTE GLOBAL LIST "USED IN RELATION" SUBLIST ------------------ sl.type - - SUB_LIST sl.name - - 32 char relation name sl.item_info_ptr - - pointer to this relation's rel_info sl.parse_info_ptr - - pointer to parse info structure sl.old_other_info_ptr - - pointer to attribute's attr_info in this relation sl.new_other_info_ptr - - pointer to this attribute's global list element sl.global_list_ptr - - pointer to relation's global list element RELATION GLOBAL LIST ------------------- gl.type - - MAIN_LIST gl.name - - 32 char relation name gl.item_info_ptr - - pointer to rel_info for this relation gl.parse_info_ptr - - pointer to parse info structure gl.other_info_ptr - - pointer to global list element of file containing this relation gl.item_sub_list_ptr - - pointer to sublist of attributes in this relation gl.file_info_ptr - - pointer to file_info of this relation's file gl.file_model_ptr - - pointer to file_model of this relation's file gl.superior_assigned - - ON => file present to hold this relation gl.inferior_assigned - - ON => attribute's present in this relation gl.complete - - ON => rel_info assigned to this relation gl.consistant - - OFF => no attributes for this relation RELATION GLOBAL LIST "CONTAINED ATTRIBUTE" SUBLIST ---------------- sl.type - - SUB_LIST sl.name - - 32 char attribute name sl.item_info_ptr - - pointer to this attribute's attribute_info sl.parse_info_ptr - - pointer to parse info structure sl.old_other_info_ptr - - pointer to domain_info for this attribute in old model sl.new_other_info_ptr - - pointer to domain_info for this attribute in new model sl.global_list_ptr - - pointer to attribute's global list element FILE GLOBAL LIST ----------------------- gl.type - - MAIN_LIST gl.name - - 30 char file name plus 2 trailing blanks gl.item_info_ptr - - pointer to file_info for this file gl.parse_info_ptr - - pointer to parse info structure gl.other_info_ptr - - null () gl.item_sub_list_ptr - - pointer to sublist of relations contained in this file gl.file_info_ptr - - pointer to file_info for this file gl.file_model_ptr - - pointer to file_model for this file gl.superior_assigned - - ON => file_model present for this file gl.inferior_assigned - - ON => relation present for this file gl.complete - - OFF => not formatted yet gl.consistant - - ON => no relations present FILE GLOBAL LIST "CONTAINED RELATION" SUBLIST ---------------- sl.type - - SUB_LIST sl.name - - 32 char relation name sl.item_info_ptr - - relation's rel_info pointer sl.parse_info_ptr - - pointer to parse info structure sl.old_other_info_ptr - - null () sl.new_other_info_ptr - - pointer to file global list element sl.global_list_ptr - - pointer to relation's global list element FOREIGN KEY GLOBAL LIST -------------------- gl.type - - MAIN_LIST gl.name - - 32 char link(foreign key) name, parent_link_info.name gl.item_info_ptr - - pointer to parent_link_info for this foreign key gl.parse_info_ptr - - pointer to parse info structure gl.other_info_ptr - - pointer to parent relation global list element gl.item_sub_list_ptr - - pointer to sublist of child relations for this parent gl.file_info_ptr - - pointer to file_info for parent relation's file gl.file_model_ptr - - pointer to file_model for parent relation's file gl.superior_assigned - - ON => parent present gl.inferior_assigned - - ON => child present gl.complete - - ON => pli_info and cli_info present gl.consistant - - ON => rels/attrs found and corres domains match gl.child_defined - - ON => not defined by parent, but by one of it's children FOREIGN KEY GLOBAL LIST CHILDREN SUBLIST sl.type - - SUB_LIST sl.name - - 32 char name of relation representing this child sl.item_info_ptr - - pointer to child_link_info for this child sl.parse_info_ptr - - pointer to parse info structure sl.old_other_info_ptr - - pointer to file_model holding this child relation sl.new_other_info_ptr - - pointer to rel_info for this child sl.global_list_ptr - - pointer to child relation global list element NOTE: all pointers are to the new model unless otherwise indicated */ /* END INCLUDE FILE mrds_rst_global_lists.incl.pl1 */ */ ----------------------------------------------------------- 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 */