COMPILATION LISTING OF SEGMENT mrds_rst_create_rsc Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1053.4 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_create_rsc: create_rsc: proc (input_dir, rsc_ptr, code); 19 20 21 /* This procedure creates and initializes the temporary rsc working storage 22* under the given directory, as a directory containing segments allocated 23* according to a storage classification of data functional use */ 24 25 26 27 /* Initially written by R. D. Lackey August 1978 */ 28 /* modified by Jim Gray 2/19/79, to change structure of rsc to directory with extensible area segments */ 29 /* MODIFIED by Jim Gray - - Jan. 1980, to add initialization of foreign_key, blocked file, and restructuring allow flags. */ 30 /* Modified by Jim Gray - - Feb. 1980, to add init of command level bit */ 31 /* Modified by Jim Gray - - 80-11-06, to add inititalization of rsc.secure bit */ 32 33 /* 81-05-18 Jim Gray : added initialization of rsc.max_attrs bit */ 34 /* 82-07--6 Roger Lackey : changed call to mu_define_area to 35* mdbm_util_$mu_define_area for binding*/ 36 37 38 39 40 41 /* input_dir (INPUT PARAMETER) pathname where rsc directory is to be appended */ 42 /* rsc_ptr (OUTPUT PARAMETER) pointer to rsc segment */ 43 /* code (OUTPUT PARAMETER) error code from append_branchx or make_seg or define_area_ */ 44 45 /* get a new directory under the given pathname in which to put 46* the working storage segments, 1 common, and several extensible areas */ 47 48 dir_name = unique_chars_ ("0"b) || ".rsc_dir"; 49 call hcs_$append_branchx (input_dir, dir_name, 50 01011b /* sma acl's */, rings, get_group_id_$tag_star (), 51 1 /* directory */, 0 /* copy_sw */, 0 /* bit_count */, code); 52 if code ^= 0 then goto exit; 53 54 55 /* Create rsc common storage data segment */ 56 57 rsc_dir_name = rtrim (input_dir) || ">" || dir_name; 58 call hcs_$make_seg (rsc_dir_name, unique_chars_ ("0"b) || ".MRDS.rsc.rst", "", 10 /* rw acl's */, rsc_ptr, code); 59 if code ^= 0 then goto exit; /* Return with bad error code */ 60 61 62 /* Initiallize all the elements of the rsc structure */ 63 64 rsc.rsc_dir = rsc_dir_name; 65 rsc.dbp = BLANK; 66 rsc.temp_dir = BLANK; 67 rsc.temp_dir_sw = OFF; 68 rsc.db_quiesced_sw = OFF; 69 rsc.o_db_open_sw = OFF; 70 rsc.n_db_open_sw = OFF; 71 rsc.listing_seg_sw = OFF; 72 rsc.skip_scanner_conversion = OFF; 73 rsc.cmdb_option = OFF; 74 rsc.trace_sw = OFF; 75 rsc.debug_sw = OFF; 76 rsc.meter_sw = OFF; 77 rsc.delete_db_sw = OFF; 78 rsc.model_consistent_sw = OFF; 79 rsc.physical_started_sw = OFF; 80 rsc.physical_complete_sw = OFF; 81 rsc.model_overflow = OFF; 82 rsc.max_files = OFF; 83 rsc.allow_foreign_keys = OFF; 84 rsc.foreign_key_seen = OFF; 85 rsc.allow_blocked_files = OFF; 86 rsc.blocked_file_seen = OFF; 87 rsc.allow_restructuring = OFF; 88 rsc.command_level = ON; 89 rsc.secure = OFF; 90 rsc.max_attrs = OFF; 91 rsc.severity_high = 0; 92 rsc.phase = 0; 93 rsc.h_o_seg_info_ls_ptr = null; 94 rsc.h_n_seg_info_ls_ptr = null; 95 rsc.h_gfile_ptr = null; 96 rsc.h_gdom_ptr = null; 97 rsc.h_gattr_ptr = null; 98 rsc.h_grel_ptr = null; 99 rsc.h_glink_ptr = null; 100 rsc.o_dm_ptr = null; 101 rsc.n_dm_ptr = null; 102 rsc.o_fn_hdr_ptr = null; 103 rsc.source_seg_ptr = null; 104 rsc.listing_iocb_ptr = null; 105 rsc.directive_ptr = null; 106 rsc.stmt_ptr = null; 107 rsc.trace_metering_iocb_ptr = null; 108 rsc.wa = empty (); /* non-extensible common area for static storage */ 109 110 111 112 /* get segments and initialize them as extensible areas */ 113 114 rsc.tree_node_area_ptr = area_init ("tnode"); 115 rsc.tree_data.seg_info_area_ptr = area_init ("seg_in"); 116 rsc.tree_data.gl_area_ptr = area_init ("gl"); 117 rsc.tree_data.sl_area_ptr = area_init ("sl"); 118 rsc.parse_info_area_ptr = area_init ("parse"); 119 rsc.static_info_area_ptr = area_init ("static"); 120 rsc.variable_length_area_ptr = area_init ("variab"); 121 rsc.other_area_ptr = area_init ("other"); 122 123 124 exit: return; 125 126 area_init: procedure (class_word) returns (ptr); 127 128 /* first get a segment to use as an area */ 129 130 call hcs_$make_seg (rsc.rsc_dir, unique_chars_ ("0"b) || ".MRDS." || class_word, 131 "", 10 /* rw acl's */, model_seg_ptr, code); 132 if code ^= 0 then goto exit; 133 134 /* set up the segment header, get the area pointer */ 135 136 model_seg_ptr -> model_seg.struct_offset = NULL_OFFSET; 137 model_seg_ptr -> model_seg.padding = 0; 138 model_area_ptr = pointer (model_seg_ptr, size (model_seg)); 139 140 /* routine to initialize the area_info for the define area call */ 141 142 call mdbm_util_$mu_define_area (model_area_ptr, sys_info$max_seg_size - size (model_seg), 143 "MRDS." || class_word, 144 "1"b /* extensible */, "0"b /* freeing */, "0"b, "0"b /* no zeroing */, code); 145 if code ^= 0 then goto exit; 146 147 return (model_area_ptr); 148 149 150 dcl class_word char (6) varying; /* name for class type of storage in segment */ 151 152 end; 153 154 dcl (addr, empty, fixed, pointer, rel, rtrim) builtin; 155 dcl rsc_dir_name char (168); /* pathname of rsc directory */ 156 dcl dir_name char (32); /* name of rsc directory entry */ 157 dcl input_dir char (*); 158 dcl get_group_id_$tag_star entry returns (char (32)); 159 dcl rings (3) fixed bin (3) init ((3) 7); 160 dcl hcs_$append_branchx entry (char (*), char (*), fixed bin (5), (3) fixed bin (3), 161 char (*), fixed bin (1), fixed bin (1), fixed bin (24), fixed bin (35)); 162 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 163 dcl unique_chars_ entry (bit (*)) returns (char (15)); 164 dcl NULL_OFFSET bit (18) init ((18)"1"b); 165 dcl mdbm_util_$mu_define_area entry (ptr, fixed bin (18), char (11), /* does call to define_area_ */ 166 bit (1) aligned, bit (1) aligned, bit (1) aligned, bit (1) aligned, fixed bin (35)); 167 dcl BLANK char (1) int static options (constant) init (" "); 168 dcl OFF bit (1) int static options (constant) init ("0"b); 169 dcl ON bit (1) int static options (constant) init ("1"b); 170 dcl code fixed bin (35); /* (INPUT PARAMETER) eror code */ 171 dcl null builtin; 172 dcl sys_info$max_seg_size fixed bin (35) ext; 173 1 1 /* BEGIN INCLUDE FILE mdbm_seg_area.incl.pl1 - - Jim Gray 2/19/79 */ 1 2 1 3 /* these structures provide a standard for 1 4* 1) using an entire segment as an area, managed by the area manager 1 5* 2) a constant header, that has an offset to the major common structure in the area 1 6* the pointer to that structure is obtained via pointer(model_seg_ptr, model_seg.offset) 1 7* the model_area_ptr is obtained via pointer(model_seg_ptr, size(model_seg)) */ 1 8 1 9 declare 1 model_seg aligned based (model_seg_ptr), /* segment header, not to be changed */ 1 10 2 struct_offset bit (18), /* offset to major structure allocated in area */ 1 11 2 padding (3) fixed bin ; /* to set up four word boundary */ 1 12 1 13 declare model_seg_ptr ptr int automatic init (null ()); 1 14 1 15 1 16 declare model_area area (sys_info$max_seg_size - size (model_seg)) based (model_area_ptr) ; /* segment area */ 1 17 1 18 declare model_area_ptr ptr int automatic init (null ()); 1 19 1 20 dcl size builtin; 1 21 1 22 /* END INCLUDE FILE mdbm_seg_area.incl.pl1 */ 1 23 174 175 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 176 177 3 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 3 2 3 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 3 4 3 5 dcl area_infop ptr; 3 6 3 7 dcl 1 area_info aligned based (area_infop), 3 8 2 version fixed bin, /* version number for this structure is 1 */ 3 9 2 control aligned like area_control, /* control bits for the area */ 3 10 2 owner char (32) unal, /* creator of the area */ 3 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 3 12 2 size fixed bin (18), /* size of the area in words */ 3 13 2 version_of_area fixed bin, /* version of area (returned only) */ 3 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 3 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 3 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 3 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 3 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 3 19 3 20 dcl 1 area_control aligned based, 3 21 2 extend bit (1) unal, /* says area is extensible */ 3 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 3 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 3 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 3 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 3 26 2 system bit (1) unal, /* says area is managed by system */ 3 27 2 pad bit (30) unal; 3 28 3 29 /* END INCLUDE FILE area_info.incl.pl1 */ 178 179 4 1 /* BEGIN INCLUDE FILE area_structures.incl.pl1 10/75 */ 4 2 /* Modified September 1981 by J. Bongiovanni for allocation_p_clock */ 4 3 4 4 dcl area_version_1 fixed bin static init (1); /* version number for this area format */ 4 5 4 6 dcl areap ptr; 4 7 4 8 dcl 1 area_header aligned based (areap), 4 9 2 version fixed bin (35), /* 0 for buddy system, 1 for current areas */ 4 10 2 last_usable bit (18), /* rel pointer to end of area */ 4 11 2 next_virgin bit (18), /* rel pointer to next slot in virgin territory */ 4 12 2 flags, 4 13 3 extend bit (1) unal, /* says area is extensible */ 4 14 3 zero_on_alloc bit (1) unal, /* says to zero after allocation */ 4 15 3 zero_on_free bit (1) unal, /* says to zero after freeing */ 4 16 3 dont_free bit (1) unal, /* dont honor free request -- debugging tool */ 4 17 3 defined_by_call bit (1) unal, /* says area seg got via define_area_ call */ 4 18 3 system bit (1) unal, /* ayss area is managed by the system */ 4 19 3 mbz bit (30) unal, 4 20 2 allocation_method fixed bin, /* 0 is standard, 1 is no_freeing method */ 4 21 2 last_size bit (18), /* size of last allocated block before virgin territory */ 4 22 2 last_block bit (18), /* rel pointer to last allocated block before virgin territory */ 4 23 2 freep (3:16), /* free list info */ 4 24 3 relp bit (18) unal, /* pointer to first block on list */ 4 25 3 max_block_size bit (18) unal, /* size of largest block on list, if known. else zero */ 4 26 2 allocation_p_clock bit (36) aligned, /* counter to prevent IPS race */ 4 27 2 extend_info bit (18) unal, /* offset to extend info block */ 4 28 2 recovery_info bit (18) unal, /* eventually will hold recovery info relp */ 4 29 2 n_allocated fixed bin (17) unal, /* number of allocated blocks */ 4 30 2 n_free fixed bin (17) unal; /* number of free blocks */ 4 31 4 32 dcl (STANDARD_ALLOCATION_METHOD init (0), 4 33 NO_FREEING_ALLOCATION_METHOD init (1) 4 34 ) fixed bin internal static; 4 35 4 36 dcl extend_blockp ptr; 4 37 4 38 dcl 1 extend_block aligned based (extend_blockp), /* contents of extend block for extensible areas */ 4 39 2 first_area ptr unal, /* pointer to first area */ 4 40 2 next_area ptr unal, /* pointer to next area in chain */ 4 41 2 sequence_no fixed bin, /* sequence number for this component */ 4 42 2 name char (32), /* owner of the area */ 4 43 2 pad fixed; /* brings it to an even, 12 word allocation */ 4 44 4 45 dcl alloc_blkhdrsz static internal init(2); 4 46 dcl 1 no_free_area_header aligned based(areap), /* overlay for no_free areas */ 4 47 2 pad(4) ptr, 4 48 2 current_component ptr; /* points to component from which we are allocating */ 4 49 4 50 dcl blockp ptr; 4 51 4 52 dcl 1 block aligned based (blockp), /* declaration for block header */ 4 53 2 prev_size bit (18) unal, /* size of preceding block */ 4 54 2 cur_size bit (18) unal, /* size of current block */ 4 55 2 buddy_pad bit (8) unal, /* non_zero for buddy system area */ 4 56 2 prev_busy bit (1) unal, /* previous-block-is-used flag */ 4 57 2 marked bit (1) unal, 4 58 2 q_no bit (8) unal, /* stratum number when in free list */ 4 59 2 header bit (18) unal, /* pointer to head of area */ 4 60 2 fp bit (18) unal, /* forward free list thread */ 4 61 2 bp bit (18) unal; /* backward free list thread */ 4 62 4 63 dcl min_block_size fixed bin static init (8); /* minimum allowed block size */ 4 64 4 65 /* END INCLUDE FILE area_structures.incl.pl1 */ 180 181 182 183 184 end mrds_rst_create_rsc; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0909.0 mrds_rst_create_rsc.pl1 >special_ldd>online>mrds.pbf-04/18/85>mrds_rst_create_rsc.pl1 174 1 10/14/83 1608.6 mdbm_seg_area.incl.pl1 >ldd>include>mdbm_seg_area.incl.pl1 176 2 10/14/83 1609.1 mrds_rst_rsc.incl.pl1 >ldd>include>mrds_rst_rsc.incl.pl1 178 3 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 180 4 09/14/81 1347.6 area_structures.incl.pl1 >ldd>include>area_structures.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. BLANK constant char(1) initial unaligned dcl 167 ref 65 66 NULL_OFFSET 000165 automatic bit(18) initial unaligned dcl 164 set ref 136 164* OFF constant bit(1) initial unaligned dcl 168 ref 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 ON constant bit(1) initial unaligned dcl 169 ref 88 addr builtin function dcl 154 ref 108 allow_blocked_files 206(18) based bit(1) level 2 packed unaligned dcl 2-29 set ref 85* allow_foreign_keys 206(16) based bit(1) level 2 packed unaligned dcl 2-29 set ref 83* allow_restructuring 206(20) based bit(1) level 2 packed unaligned dcl 2-29 set ref 87* area_control based structure level 1 dcl 3-20 blocked_file_seen 206(19) based bit(1) level 2 packed unaligned dcl 2-29 set ref 86* class_word parameter varying char(6) dcl 150 ref 126 130 142 cmdb_option 206(06) based bit(1) level 2 packed unaligned dcl 2-29 set ref 73* code parameter fixed bin(35,0) dcl 170 set ref 18 18 49* 52 58* 59 130* 132 142* 145 command_level 206(21) based bit(1) level 2 packed unaligned dcl 2-29 set ref 88* db_quiesced_sw 206(01) based bit(1) level 2 packed unaligned dcl 2-29 set ref 68* dbp 62 based char(168) level 2 packed unaligned dcl 2-29 set ref 65* debug_sw 206(08) based bit(1) level 2 packed unaligned dcl 2-29 set ref 75* delete_db_sw 206(10) based bit(1) level 2 packed unaligned dcl 2-29 set ref 77* dir_name 000152 automatic char(32) unaligned dcl 156 set ref 48* 49* 57 directive_ptr 242 based pointer level 2 dcl 2-29 set ref 105* empty builtin function dcl 154 ref 108 fixed builtin function dcl 154 ref 108 foreign_key_seen 206(17) based bit(1) level 2 packed unaligned dcl 2-29 set ref 84* get_group_id_$tag_star 000010 constant entry external dcl 158 ref 49 49 gl_area_ptr 254 based pointer level 3 dcl 2-29 set ref 116* h_gattr_ptr 222 based pointer level 2 dcl 2-29 set ref 97* h_gdom_ptr 220 based pointer level 2 dcl 2-29 set ref 96* h_gfile_ptr 216 based pointer level 2 dcl 2-29 set ref 95* h_glink_ptr 226 based pointer level 2 dcl 2-29 set ref 99* h_grel_ptr 224 based pointer level 2 dcl 2-29 set ref 98* h_n_seg_info_ls_ptr 214 based pointer level 2 dcl 2-29 set ref 94* h_o_seg_info_ls_ptr 212 based pointer level 2 dcl 2-29 set ref 93* hcs_$append_branchx 000012 constant entry external dcl 160 ref 49 hcs_$make_seg 000014 constant entry external dcl 162 ref 58 130 input_dir parameter char unaligned dcl 157 set ref 18 18 49* 57 listing_iocb_ptr 240 based pointer level 2 dcl 2-29 set ref 104* listing_seg_sw 206(04) based bit(1) level 2 packed unaligned dcl 2-29 set ref 71* max_attrs 206(23) based bit(1) level 2 packed unaligned dcl 2-29 set ref 90* max_files 206(15) based bit(1) level 2 packed unaligned dcl 2-29 set ref 82* mdbm_util_$mu_define_area 000020 constant entry external dcl 165 ref 142 meter_sw 206(09) based bit(1) level 2 packed unaligned dcl 2-29 set ref 76* model_area_ptr 000170 automatic pointer initial dcl 1-18 set ref 1-18* 138* 142* 147 model_consistent_sw 206(11) based bit(1) level 2 packed unaligned dcl 2-29 set ref 78* model_overflow 206(14) based bit(1) level 2 packed unaligned dcl 2-29 set ref 81* model_seg based structure level 1 dcl 1-9 set ref 138 142 model_seg_ptr 000166 automatic pointer initial dcl 1-13 set ref 1-13* 130* 136 137 138 138 142 n_db_open_sw 206(03) based bit(1) level 2 packed unaligned dcl 2-29 set ref 70* n_dm_ptr 232 based pointer level 2 dcl 2-29 set ref 101* null builtin function dcl 171 ref 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 1-13 1-18 o_db_open_sw 206(02) based bit(1) level 2 packed unaligned dcl 2-29 set ref 69* o_dm_ptr 230 based pointer level 2 dcl 2-29 set ref 100* o_fn_hdr_ptr 234 based pointer level 2 dcl 2-29 set ref 102* other_area_ptr 266 based pointer level 2 dcl 2-29 set ref 121* padding 1 based fixed bin(17,0) array level 2 dcl 1-9 set ref 137* parse_info_area_ptr 260 based pointer level 2 dcl 2-29 set ref 118* phase 210 based fixed bin(17,0) level 2 dcl 2-29 set ref 92* physical_complete_sw 206(13) based bit(1) level 2 packed unaligned dcl 2-29 set ref 80* physical_started_sw 206(12) based bit(1) level 2 packed unaligned dcl 2-29 set ref 79* pointer builtin function dcl 154 ref 138 rel builtin function dcl 154 ref 108 rings 000162 automatic fixed bin(3,0) initial array dcl 159 set ref 49* 159* 159* 159* rsc based structure level 1 unaligned dcl 2-29 rsc_dir based char(200) level 2 packed unaligned dcl 2-29 set ref 64* 130* rsc_dir_name 000100 automatic char(168) unaligned dcl 155 set ref 57* 58* 64 rsc_ptr parameter pointer dcl 2-94 set ref 18 18 58* 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 108 114 115 116 117 118 119 120 121 130 rtrim builtin function dcl 154 ref 57 secure 206(22) based bit(1) level 2 packed unaligned dcl 2-29 set ref 89* seg_info_area_ptr 252 based pointer level 3 dcl 2-29 set ref 115* severity_high 207 based fixed bin(17,0) level 2 dcl 2-29 set ref 91* size builtin function dcl 1-20 ref 138 142 skip_scanner_conversion 206(05) based bit(1) level 2 packed unaligned dcl 2-29 set ref 72* sl_area_ptr 256 based pointer level 3 dcl 2-29 set ref 117* source_seg_ptr 236 based pointer level 2 dcl 2-29 set ref 103* static_info_area_ptr 262 based pointer level 2 dcl 2-29 set ref 119* stmt_ptr 244 based pointer level 2 dcl 2-29 set ref 106* struct_offset based bit(18) level 2 dcl 1-9 set ref 136* sys_info$max_seg_size 000022 external static fixed bin(35,0) dcl 172 ref 108 142 temp_dir 134 based char(168) level 2 packed unaligned dcl 2-29 set ref 66* temp_dir_sw 206 based bit(1) level 2 packed unaligned dcl 2-29 set ref 67* trace_metering_iocb_ptr 246 based pointer level 2 dcl 2-29 set ref 107* trace_sw 206(07) based bit(1) level 2 packed unaligned dcl 2-29 set ref 74* tree_data 252 based structure level 2 unaligned dcl 2-29 tree_node_area_ptr 250 based pointer level 2 dcl 2-29 set ref 114* unique_chars_ 000016 constant entry external dcl 163 ref 48 58 130 variable_length_area_ptr 264 based pointer level 2 dcl 2-29 set ref 120* wa 270 based area level 2 dcl 2-29 set ref 108* 108 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. NO_FREEING_ALLOCATION_METHOD internal static fixed bin(17,0) initial dcl 4-32 STANDARD_ALLOCATION_METHOD internal static fixed bin(17,0) initial dcl 4-32 alloc_blkhdrsz internal static fixed bin(17,0) initial dcl 4-45 area_header based structure level 1 dcl 4-8 area_info based structure level 1 dcl 3-7 area_info_version_1 internal static fixed bin(17,0) initial dcl 3-3 area_infop automatic pointer dcl 3-5 area_version_1 internal static fixed bin(17,0) initial dcl 4-4 areap automatic pointer dcl 4-6 block based structure level 1 dcl 4-52 blockp automatic pointer dcl 4-50 extend_block based structure level 1 dcl 4-38 extend_blockp automatic pointer dcl 4-36 min_block_size internal static fixed bin(17,0) initial dcl 4-63 model_area based area dcl 1-16 no_free_area_header based structure level 1 dcl 4-46 NAMES DECLARED BY EXPLICIT CONTEXT. area_init 001001 constant entry internal dcl 126 ref 114 115 116 117 118 119 120 121 create_rsc 000103 constant entry external dcl 18 exit 001000 constant label dcl 124 ref 52 59 132 145 mrds_rst_create_rsc 000122 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 1372 1416 1252 1402 Length 1670 1252 24 236 120 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME create_rsc 239 external procedure is an external procedure. area_init internal procedure shares stack frame of external procedure create_rsc. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME create_rsc 000100 rsc_dir_name create_rsc 000152 dir_name create_rsc 000162 rings create_rsc 000165 NULL_OFFSET create_rsc 000166 model_seg_ptr create_rsc 000170 model_area_ptr create_rsc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc empty THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_group_id_$tag_star hcs_$append_branchx hcs_$make_seg mdbm_util_$mu_define_area unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 159 000055 164 000070 1 13 000072 1 18 000074 18 000077 48 000136 49 000170 52 000260 57 000263 58 000324 59 000412 64 000415 65 000422 66 000425 67 000430 68 000432 69 000434 70 000436 71 000440 72 000442 73 000444 74 000446 75 000450 76 000452 77 000454 78 000456 79 000460 80 000462 81 000464 82 000466 83 000470 84 000472 85 000474 86 000476 87 000500 88 000502 89 000504 90 000506 91 000510 92 000511 93 000512 94 000514 95 000517 96 000522 97 000525 98 000530 99 000533 100 000536 101 000541 102 000544 103 000547 104 000552 105 000555 106 000560 107 000563 108 000566 114 000602 115 000622 116 000642 117 000661 118 000700 119 000720 120 000740 121 000760 124 001000 126 001001 130 001003 132 001110 136 001114 137 001116 138 001126 142 001131 145 001212 147 001216 ----------------------------------------------------------- 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