COMPILATION LISTING OF SEGMENT mrds_dm_create_db Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1015.6 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 /* HISTORY: 19* 20* Originally written by Jim Gray - - February 1980 21* 22* 81-09-17 Davids: deleted the variable last_ptr which was the 23* index of the last pointer in the argument list and replaced all 24* references to last_ptr with num_ptrs. This stops a subscriptrange 25* condition from occuring when referencing the argument list 26* arg_desc_ptr array. 27* 28* 81-09-17 Davids: changed cmdb_list so that it is based rather 29* than automatic. If its automatic the dimension of arg_desc_ptr is 30* 0 since num_ptrs is 0 at the time the structure is allocated 31* (procedure is entered). This causes a subscriptrange condition. 32* After cmdb_list is allocated it is necessary to reset the value 33* of num_ptrs to its larger value (it was set to a smaller value 34* becuase cmdb_list does not include the code argument) so that the 35* descriptor pointer to the argument before code can be referenced. 36* 37* 84-10-23 Benjamin: created tidy_up procedure and changed the cleanup handler 38* to call it, removing the nonlocal goto that existed. 39**/ 40 41 mrds_dm_create_db: create_db: procedure (); 42 43 /* DESCRIPTION: 44* this routine provides a subroutine interface to create_mrds_db. 45* it should be declared entry options(variable), and arguments should be 46* the same character string arguments as would be given at command level. 47* it provides the same options and features, but is basically a 48* go/no-go interface, returning the error code of the first error encountered. 49* some error codes do not provide much detail, because CMDB was 50* oriented toward a command level interface with detailed error messages. 51* thus a listing should be asked for, to provide full information. 52**/ 53 54 /* PARAMETERS: 55* source_path - - (input) char(*), the pathname of the create_mrds_db source, 56* with or without the .cmdb suffix 57* 58* db_path - - (input) char(*), the pathname of the database to be created. 59* the database directory name will get a .db suffix 60* if this optional argument is not given, the path defaults to [wd]>source_entry 61* with .db replacing the .cmdb suffix 62* 63* list_opt - - (input) char(*), if this value is "-list" or "-ls", then a listing 64* is produced, with error messages, using the entry portion of source 65* path, with cmdb relpaced by the list suffix. this argument is optional. 66* 67* storage_opt - - (input) char(*), if this value is "-temp_dir", the next argument 68* is used for temporary working storage during the creation of the database. 69* this will only be necessary if a record quota overflow occurs in the [pd] 70* 71* storage_path - - (input) char(*), the pathname of a directory 72* with more quota the the [pd]. this arg must be present if storage_opt is, but both are optional. 73* 74* error_code - - (output) fixed bin(35), the error status encoding, 0 unless 75* an error occured, in which case it the first error encountered. 76**/ 77 78 /* make sure we don't leave in an inconsistant state */ 79 80 arg_list_ptr = null (); 81 num_ptrs, num_dims, nargs, error_code = 0; 82 on cleanup call tidy_up; 83 84 /* get the callers argument list */ 85 86 call cu_$arg_list_ptr (arg_list_ptr); 87 nargs = arg_list_ptr -> arg_list.desc_count / 2; 88 if nargs = 0 then 89 error_code = error_table_$bad_arg; 90 else do; 91 if arg_list_ptr -> arg_list.code = SPECIAL then 92 desc_index = nargs + 1; 93 else desc_index = nargs; 94 num_ptrs = nargs + desc_index; /* CHANGED 81-09-17 */ 95 96 /* verify all but the error code are character arguments */ 97 98 i = 1; 99 done = OFF; 100 do while (^done); 101 if arg_list_ptr -> arg_list.arg_des_ptr (desc_index + i) -> descriptor.type ^= 102 CHAR_NONVAR then do; 103 done = ON; 104 error_code = error_table_$bad_arg; 105 end; 106 else if desc_index + i < num_ptrs - 1 then /* CHANGED 81-09-17 */ 107 i = i + 1; 108 else done = ON; 109 end; 110 if error_code ^= 0 then ; 111 else do; 112 if arg_list_ptr -> arg_list.arg_des_ptr (num_ptrs) -> descriptor_ovrly ^= 113 /* CHANGED 81-09- */ 114 FIXED_BIN_35_DESC then 115 error_code = error_table_$bad_arg; 116 else do; 117 118 /* the arguments have been verified as character and fixed bin(35) for the error code, now build the arg list 119* for the call to the command CMDB, that is the same, minus the error code */ 120 121 num_ptrs = 2 * (nargs - 1); 122 call make_cmdb_call (); 123 end; 124 end; 125 end; 126 127 /* clean up before leaving */ 128 129 exit: 130 call tidy_up; 131 132 return; 133 134 tidy_up: procedure (); 135 136 if cmdb_list_ptr ^= null 137 then free cmdb_list_ptr -> cmdb_list; 138 139 if nargs <= 0 | arg_list_ptr = null () then ; 140 else arg_list_ptr -> arg_list.arg_des_ptr (nargs) -> FB35_ovrly = error_code; 141 142 /* reset CMDB for command level use */ 143 144 call create_mrds_db$set_command_level (); 145 146 end tidy_up; 147 148 make_cmdb_call: procedure (); 149 150 /* routine to build the CMDB arg list, 151* and make the call to cmdb as a subroutine */ 152 153 allocate cmdb_list set (cmdb_list_ptr); 154 155 num_ptrs = num_ptrs + 2; /* set it back so that pointers in the 156* larger arg_list.arg_des_ptr array can be referenced */ 157 158 cmdb_list.desc_count, cmdb_list.arg_count = 2 * (nargs - 1); 159 cmdb_list.code = NORMAL; 160 cmdb_list.pad = 0; 161 162 do j = 1 by 1 to nargs - 1; 163 164 cmdb_list.arg_des_ptr (j) = 165 arg_list_ptr -> arg_list.arg_des_ptr (j); /* data pointers */ 166 cmdb_list.arg_des_ptr (nargs - 1 + j) = 167 arg_list_ptr -> arg_list.arg_des_ptr (desc_index + j); /* descriptor ptrs */ 168 169 end; 170 171 /* initialize condition information structure */ 172 173 my_cond_info.mc_ptr = null (); 174 my_cond_info.version = 1; 175 my_cond_info.condition_name = " "; 176 my_cond_info.info_ptr = null (); 177 my_cond_info.wc_ptr = null (); 178 my_cond_info.loc_ptr = null (); 179 my_cond_info.crawlout = "0"b; 180 my_cond_info.pad1 = "0"b; 181 my_cond_info.pad2 = "0"b; 182 my_cond_info.user_loc_ptr = null (); 183 my_cond_info.pad3 (*) = "0"b; 184 185 condition_info_ptr = addr (my_cond_info); 186 187 188 /* set up to capture any command errors */ 189 190 first_time = ON; 191 192 on command_error begin; 193 194 if ^first_time then ; 195 else do; 196 197 first_time = OFF; 198 199 stack_ptr = null (); /* use most recent condition frame */ 200 201 my_cond_info.condition_name = "command_error"; 202 203 call find_condition_info_ (stack_ptr, condition_info_ptr, code); 204 if code ^= 0 then 205 error_code = mrds_error_$rst_logic_error; 206 else do; 207 command_error_info_ptr = condition_info_ptr -> condition_info.info_ptr; 208 if command_error_info_ptr = null () then 209 error_code = mrds_error_$rst_logic_error; 210 else do; 211 error_code = command_error_info_ptr -> command_error_info.status_code; 212 if error_code = 0 then 213 error_code = mrds_error_$rst_logic_error; 214 command_error_info_ptr -> command_error_info.print_sw = OFF; /* tell com_err_ to shut up */ 215 end; 216 217 end; 218 219 end; 220 221 end; 222 223 /* set up the mrds_rst_error capture logic */ 224 225 on mrds_rst_error begin; 226 227 if ^first_time then ; 228 else do; 229 230 first_time = OFF; 231 232 stack_ptr = null (); /* use most recent condition frame */ 233 234 my_cond_info.condition_name = "mrds_rst_error"; 235 236 call find_condition_info_ (stack_ptr, condition_info_ptr, code); 237 if code ^= 0 then 238 error_code = mrds_error_$rst_logic_error; 239 else do; 240 mrds_error_cond_ptr = condition_info_ptr -> condition_info.info_ptr; 241 if mrds_error_cond_ptr = null () then 242 error_code = mrds_error_$rst_logic_error; 243 else do; 244 error_code = mrds_error_cond_ptr -> mrds_error_condition_info.status_code; 245 if error_code = 0 then 246 error_code = mrds_error_$rst_logic_error; 247 end; 248 249 end; 250 251 end; 252 253 end; 254 255 /* tell CMDB to set up for a subroutine call */ 256 257 call create_mrds_db$set_subroutine_level (); 258 259 /* make the call to the CMDB command */ 260 261 call cu_$generate_call (create_mrds_db, addr (cmdb_list)); 262 263 264 declare first_time bit (1); /* on => capture this error, else ignore */ 265 declare 1 my_cond_info like condition_info; /* local version to be filled in by find_cond_info */ 266 267 end; 268 269 declare addr builtin; 270 declare null builtin; 271 declare arg_list_ptr ptr; /* points to argument list */ 272 declare 1 cmdb_list like arg_list based (cmdb_list_ptr); /* arg list for CMDB call */ 273 declare cmdb_list_ptr ptr init (null); /* pointer to the cmdb_list structure */ 274 declare mrds_error_cond_ptr ptr; /* points to mrds error condition info */ 275 declare mrds_rst_error condition; /* signaled by mrds_rst_error, when subroutine interface */ 276 declare command_error condition; /* signaled by com_err_ from CMDB */ 277 declare cleanup condition; /* signaled upon quit/release */ 278 declare command_error_info_ptr ptr; /* points to command_error_info */ 279 declare cu_$arg_list_ptr entry (ptr); /* gets poinmter to arg list */ 280 declare nargs fixed bin; /* number of arguments */ 281 declare SPECIAL fixed bin int static options (constant) init (8); /* => extra stack frame ptr */ 282 declare NORMAL fixed bin int static options (constant) init (4); /* => no extra ptrs */ 283 declare desc_index fixed bin; /* offset to descriuptor pointers */ 284 declare (i, j) fixed bin; /* loop indexes */ 285 declare done bit (1); /* on => all char args checked */ 286 declare ON bit (1) int static options (constant) init ("1"b); /* true value */ 287 declare OFF bit (1) int static options (constant) init ("0"b); /* false value */ 288 declare CHAR_NONVAR fixed bin int static options (constant) init (21); /* character nonvarying data type */ 289 declare descriptor_ovrly bit (36) unal based; /* overlay for descriptor */ 290 declare cu_$generate_call entry (entry, ptr);/* makes call given arg list */ 291 declare create_mrds_db entry options (variable); /* CMDB command */ 292 declare stack_ptr ptr init (null ());/* null => most recent */ 293 declare find_condition_info_ entry (ptr, ptr, fixed bin (35)); /* gets condition information */ 294 declare mrds_error_$rst_logic_error fixed bin (35) ext; /* bad program */ 295 declare error_code fixed bin (35); /* error status encoding */ 296 declare code fixed bin (35); /* local error code */ 297 declare create_mrds_db$set_command_level entry ();/* sets up for use as command */ 298 declare create_mrds_db$set_subroutine_level entry (); /* sets up for use as subroutine */ 299 declare FIXED_BIN_35_DESC bit (36) init ("100000100000000000000000000000100011"b) int static options (constant); 300 declare error_table_$bad_arg fixed bin (35) ext;/* not options variable, character, or fixed bin(35) */ 301 declare FB35_ovrly fixed bin (35) based; /* overlay for assigning error code */ 302 303 declare 1 mrds_error_condition_info based aligned, 1 1 1 2 /* begin include file ... cond_info_structure.incl.pl1 */ 1 3 /* last modified 5/7/73 */ 1 4 1 5 2 length fixed bin, /* length in words of this structure */ 1 6 2 version fixed bin, /* version number of this structure */ 1 7 2 action_flags aligned, /* tell handler how to proceed */ 1 8 3 cant_restart bit(1) unal, /* caller doesn't ever want to be returned to */ 1 9 3 default_restart bit(1) unal, /* caller can be returned to with no further action */ 1 10 3 pad bit(34) unal, 1 11 2 info_string char(256) var, /* may contain printable message */ 1 12 2 status_code fixed bin(35), /* if^=0, code interpretable by com_err_ */ 1 13 /* end include file ... cond_info_structure.incl.pl1 */ 304 305 2 severity fixed bin, 306 2 severity_high fixed bin; 307 308 declare 1 command_error_info aligned based, 2 1 2 2 /* begin include file ... cond_info_structure.incl.pl1 */ 2 3 /* last modified 5/7/73 */ 2 4 2 5 2 length fixed bin, /* length in words of this structure */ 2 6 2 version fixed bin, /* version number of this structure */ 2 7 2 action_flags aligned, /* tell handler how to proceed */ 2 8 3 cant_restart bit(1) unal, /* caller doesn't ever want to be returned to */ 2 9 3 default_restart bit(1) unal, /* caller can be returned to with no further action */ 2 10 3 pad bit(34) unal, 2 11 2 info_string char(256) var, /* may contain printable message */ 2 12 2 status_code fixed bin(35), /* if^=0, code interpretable by com_err_ */ 2 13 /* end include file ... cond_info_structure.incl.pl1 */ 309 310 2 name_ptr ptr, 311 2 name_lth fixed bin, 312 2 errmess_ptr ptr, 313 2 errmess_lth fixed bin, 314 2 max_errmess_lth fixed bin, 315 2 print_sw bit (1); 316 3 1 /* BEGIN mdbm_arg_list.incl.pl1 -- jaw 5/31/78 */ 3 2 /* the duplicate mrds_arg_list.incl.pl1 was eliminated by Jim Gray, Nov. 1979 */ 3 3 3 4 /* layout of argument list for IDS and DBM entries with options (variable) */ 3 5 3 6 dcl 1 arg_list based (al_ptr), 3 7 2 arg_count fixed bin (17) unal, /* 2 * no. of args. */ 3 8 2 code fixed bin (17) unal, /* 4 => normal, 8 => special */ 3 9 2 desc_count fixed bin (17) unal, /* 2 * no. of descriptors */ 3 10 2 pad fixed bin (17) unal, /* must be 0 */ 3 11 2 arg_des_ptr (num_ptrs) ptr; /* argument/descriptor pointer */ 3 12 3 13 dcl al_ptr ptr; 3 14 dcl num_ptrs fixed bin; 3 15 3 16 /* END mdbm_arg_list.incl.pl1 */ 3 17 317 4 1 /* BEGIN mdbm_descriptor.incl.pl1 -- jaw 5/31/78 */ 4 2 /* modified by Jim Gray - - Nov. 1979, to change type from fixed bin(5) to 4 3* unsigned fixed bin(6), so new packed decimal data types could be handled. 4 4* also the duplicate mrds_descriptor.incl.pl1 was eliminated. */ 4 5 4 6 dcl 1 descriptor based (desc_ptr), /* map of Multics descriptor */ 4 7 2 version bit (1) unal, /* DBM handles vers. 1 only */ 4 8 2 type unsigned fixed bin (6) unal, /* data type */ 4 9 2 packed bit (1) unal, /* on if data item is packed */ 4 10 2 number_dims bit (4) unal, /* dimensions */ 4 11 2 size, /* size for string data */ 4 12 3 scale bit (12) unal, /* scale for num. data */ 4 13 3 precision bit (12) unal, /* prec. for num. data */ 4 14 2 array_info (num_dims), 4 15 3 lower_bound fixed bin (35), /* lower bound of dimension */ 4 16 3 upper_bound fixed bin (35), /* upper bound of dimension */ 4 17 3 multiplier fixed bin (35); /* element separation */ 4 18 4 19 dcl desc_ptr ptr; 4 20 dcl num_dims fixed bin init (0) ; /* more useful form of number_dims */ 4 21 4 22 /* END mdbm_descriptor.incl.pl1 */ 4 23 4 24 318 5 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 5 2 5 3 /* Structure for find_condition_info_. 5 4* 5 5* Written 1-Mar-79 by M. N. Davidoff. 5 6**/ 5 7 5 8 /* automatic */ 5 9 5 10 declare condition_info_ptr pointer; 5 11 5 12 /* based */ 5 13 5 14 declare 1 condition_info aligned based (condition_info_ptr), 5 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 5 16 2 version fixed binary, /* Must be 1 */ 5 17 2 condition_name char (32) varying, /* name of condition */ 5 18 2 info_ptr pointer, /* pointer to the condition data structure */ 5 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 5 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 5 21 2 flags unaligned, 5 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 5 23 3 pad1 bit (35), 5 24 2 pad2 bit (36), 5 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 5 26 2 pad3 (4) bit (36); 5 27 5 28 /* internal static */ 5 29 5 30 declare condition_info_version_1 5 31 fixed binary internal static options (constant) initial (1); 5 32 5 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 319 320 321 322 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0906.4 mrds_dm_create_db.pl1 >special_ldd>online>mrds.pbf-04/18/85>mrds_dm_create_db.pl1 304 1 05/06/74 1741.0 cond_info_structure.incl.pl1 >ldd>include>cond_info_structure.incl.pl1 309 2 05/06/74 1741.0 cond_info_structure.incl.pl1 >ldd>include>cond_info_structure.incl.pl1 317 3 10/14/83 1609.0 mdbm_arg_list.incl.pl1 >ldd>include>mdbm_arg_list.incl.pl1 318 4 10/14/83 1608.6 mdbm_descriptor.incl.pl1 >ldd>include>mdbm_descriptor.incl.pl1 319 5 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.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. CHAR_NONVAR constant fixed bin(17,0) initial dcl 288 ref 101 FB35_ovrly based fixed bin(35,0) dcl 301 set ref 140* FIXED_BIN_35_DESC 000000 constant bit(36) initial unaligned dcl 299 ref 112 NORMAL constant fixed bin(17,0) initial dcl 282 ref 159 OFF constant bit(1) initial unaligned dcl 287 ref 99 197 214 230 ON constant bit(1) initial unaligned dcl 286 ref 103 108 190 SPECIAL constant fixed bin(17,0) initial dcl 281 ref 91 addr builtin function dcl 269 ref 185 261 261 arg_count based fixed bin(17,0) level 2 packed unaligned dcl 272 set ref 158* arg_des_ptr 2 based pointer array level 2 in structure "arg_list" dcl 3-6 in procedure "create_db" ref 101 112 140 164 166 arg_des_ptr 2 based pointer array level 2 in structure "cmdb_list" dcl 272 in procedure "create_db" set ref 164* 166* arg_list based structure level 1 unaligned dcl 3-6 arg_list_ptr 000100 automatic pointer dcl 271 set ref 80* 86* 87 91 101 112 139 140 164 166 cleanup 000106 stack reference condition dcl 277 ref 82 cmdb_list based structure level 1 unaligned dcl 272 set ref 136 153 261 261 cmdb_list_ptr 000102 automatic pointer initial dcl 273 set ref 136 136 153* 158 158 159 160 164 166 261 261 273* code 0(18) based fixed bin(17,0) level 2 in structure "cmdb_list" packed unaligned dcl 272 in procedure "create_db" set ref 159* code 000127 automatic fixed bin(35,0) dcl 296 in procedure "create_db" set ref 203* 204 236* 237 code 0(18) based fixed bin(17,0) level 2 in structure "arg_list" packed unaligned dcl 3-6 in procedure "create_db" ref 91 command_error 000000 stack reference condition dcl 276 ref 192 command_error_info based structure level 1 dcl 308 command_error_info_ptr 000114 automatic pointer dcl 278 set ref 207* 208 211 214 condition_info based structure level 1 dcl 5-14 condition_info_ptr 000132 automatic pointer dcl 5-10 set ref 185* 203* 207 236* 240 condition_name 3 000102 automatic varying char(32) level 2 dcl 265 set ref 175* 201* 234* crawlout 22 000102 automatic bit(1) level 3 packed unaligned dcl 265 set ref 179* create_mrds_db 000014 constant entry external dcl 291 ref 261 261 create_mrds_db$set_command_level 000022 constant entry external dcl 297 ref 144 create_mrds_db$set_subroutine_level 000024 constant entry external dcl 298 ref 257 cu_$arg_list_ptr 000010 constant entry external dcl 279 ref 86 cu_$generate_call 000012 constant entry external dcl 290 ref 261 desc_count 1 based fixed bin(17,0) level 2 in structure "arg_list" packed unaligned dcl 3-6 in procedure "create_db" ref 87 desc_count 1 based fixed bin(17,0) level 2 in structure "cmdb_list" packed unaligned dcl 272 in procedure "create_db" set ref 158* desc_index 000117 automatic fixed bin(17,0) dcl 283 set ref 91* 93* 94 101 106 166 descriptor based structure level 1 unaligned dcl 4-6 descriptor_ovrly based bit(36) unaligned dcl 289 ref 112 done 000122 automatic bit(1) unaligned dcl 285 set ref 99* 100 103* 108* error_code 000126 automatic fixed bin(35,0) dcl 295 set ref 81* 88* 104* 110 112* 140 204* 208* 211* 212 212* 237* 241* 244* 245 245* error_table_$bad_arg 000026 external static fixed bin(35,0) dcl 300 ref 88 104 112 find_condition_info_ 000016 constant entry external dcl 293 ref 203 236 first_time 000100 automatic bit(1) unaligned dcl 264 set ref 190* 194 197* 227 230* flags 22 000102 automatic structure level 2 packed unaligned dcl 265 i 000120 automatic fixed bin(17,0) dcl 284 set ref 98* 101 106 106* 106 info_ptr 14 000102 automatic pointer level 2 in structure "my_cond_info" dcl 265 in procedure "make_cmdb_call" set ref 176* info_ptr 14 based pointer level 2 in structure "condition_info" dcl 5-14 in procedure "create_db" ref 207 240 j 000121 automatic fixed bin(17,0) dcl 284 set ref 162* 164 164 166 166* loc_ptr 20 000102 automatic pointer level 2 dcl 265 set ref 178* mc_ptr 000102 automatic pointer level 2 dcl 265 set ref 173* mrds_error_$rst_logic_error 000020 external static fixed bin(35,0) dcl 294 ref 204 208 212 237 241 245 mrds_error_cond_ptr 000104 automatic pointer dcl 274 set ref 240* 241 244 mrds_error_condition_info based structure level 1 dcl 303 mrds_rst_error 000000 stack reference condition dcl 275 ref 225 my_cond_info 000102 automatic structure level 1 unaligned dcl 265 set ref 185 nargs 000116 automatic fixed bin(17,0) dcl 280 set ref 81* 87* 88 91 93 94 121 139 140 158 162 166 null builtin function dcl 270 ref 80 136 139 173 176 177 178 182 199 208 232 241 273 292 num_dims 000131 automatic fixed bin(17,0) initial dcl 4-20 set ref 81* 4-20* num_ptrs 000130 automatic fixed bin(17,0) dcl 3-14 set ref 81* 94* 106 112 121* 136 153 155* 155 pad 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 272 set ref 160* pad1 22(01) 000102 automatic bit(35) level 3 packed unaligned dcl 265 set ref 180* pad2 23 000102 automatic bit(36) level 2 packed unaligned dcl 265 set ref 181* pad3 26 000102 automatic bit(36) array level 2 packed unaligned dcl 265 set ref 183* print_sw 116 based bit(1) level 2 dcl 308 set ref 214* stack_ptr 000124 automatic pointer initial dcl 292 set ref 199* 203* 232* 236* 292* status_code 104 based fixed bin(35,0) level 2 in structure "mrds_error_condition_info" dcl 303 in procedure "create_db" ref 244 status_code 104 based fixed bin(35,0) level 2 in structure "command_error_info" dcl 308 in procedure "create_db" ref 211 type 0(01) based fixed bin(6,0) level 2 packed unsigned unaligned dcl 4-6 ref 101 user_loc_ptr 24 000102 automatic pointer level 2 dcl 265 set ref 182* version 2 000102 automatic fixed bin(17,0) level 2 dcl 265 set ref 174* wc_ptr 16 000102 automatic pointer level 2 dcl 265 set ref 177* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. al_ptr automatic pointer dcl 3-13 condition_info_version_1 internal static fixed bin(17,0) initial dcl 5-30 desc_ptr automatic pointer dcl 4-19 NAMES DECLARED BY EXPLICIT CONTEXT. create_db 000026 constant entry external dcl 41 exit 000226 constant label dcl 129 make_cmdb_call 000300 constant entry internal dcl 148 ref 122 mrds_dm_create_db 000036 constant entry external dcl 41 tidy_up 000234 constant entry internal dcl 134 ref 82 129 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1054 1104 654 1064 Length 1414 654 30 273 200 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME create_db 98 external procedure is an external procedure. on unit on line 82 64 on unit tidy_up 65 internal procedure is called by several nonquick procedures. make_cmdb_call 120 internal procedure enables or reverts conditions. on unit on line 192 72 on unit on unit on line 225 72 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME create_db 000100 arg_list_ptr create_db 000102 cmdb_list_ptr create_db 000104 mrds_error_cond_ptr create_db 000114 command_error_info_ptr create_db 000116 nargs create_db 000117 desc_index create_db 000120 i create_db 000121 j create_db 000122 done create_db 000124 stack_ptr create_db 000126 error_code create_db 000127 code create_db 000130 num_ptrs create_db 000131 num_dims create_db 000132 condition_info_ptr create_db make_cmdb_call 000100 first_time make_cmdb_call 000102 my_cond_info make_cmdb_call THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out call_int_this call_int_other return enable ext_entry int_entry trunc_fx2 divide_fx1 alloc_based_storage free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. create_mrds_db create_mrds_db$set_command_level create_mrds_db$set_subroutine_level cu_$arg_list_ptr cu_$generate_call find_condition_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg mrds_error_$rst_logic_error LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 273 000017 292 000021 4 20 000022 41 000025 80 000044 81 000046 82 000052 86 000074 87 000103 88 000114 91 000121 93 000132 94 000134 98 000136 99 000140 100 000141 101 000144 103 000155 104 000157 105 000162 106 000163 108 000174 109 000176 110 000177 112 000202 121 000216 122 000222 129 000226 132 000232 134 000233 136 000241 139 000253 140 000263 144 000271 146 000276 148 000277 153 000305 155 000315 158 000317 159 000330 160 000332 162 000334 164 000346 166 000352 169 000365 173 000367 174 000371 175 000373 176 000376 177 000400 178 000401 179 000402 180 000404 181 000406 182 000407 183 000411 185 000422 190 000425 192 000427 194 000443 197 000447 199 000450 201 000453 203 000460 204 000472 207 000502 208 000505 211 000515 212 000517 214 000523 221 000524 225 000525 227 000541 230 000545 232 000546 234 000551 236 000556 237 000570 240 000600 241 000603 244 000613 245 000615 253 000621 257 000622 261 000627 267 000647 ----------------------------------------------------------- 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