COMPILATION LISTING OF SEGMENT mrds_dsm_get_relation_names Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1019.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 mrds_dsm_get_relation_names: proc (p_area_ptr, p_dsm_relation_names_ptr, p_iocb_ptr, p_code); 19 20 /* DESCRIPTION: 21* 22* This routine loads a mrds_dsm_relation_names structure with the 23* number and names of the relations in the submodel. 24* 25* It is assumed that p_area_ptr points to a non-freeing area so 26* that if an error occurs after mrds_dsm_relation_names is 27* allocated it is not freed even though the 28* p_dsm_relation_names_ptr is set to null. 29* 30* The number_of_rels entry returns only the number of relations. 31* 32* Known bugs: 33* 34* Other problems: 35* 36* HISTORY 37* 38* 80-12-24 Davids: This routine has been modified from an eariler 39* . version which had no header or history section. The 40* . biggest changes were handling of version 4 submodels and 41* . a call to sub_err_ to explan any errors. 42* 43* 81-01-06 Davids: Removed inline code to read the submodel header 44* . record and replaced it with a call to 45* . mrds_dsm_get_version. added the declarations for those 46* . iox_ entries used and removed the include files 47* . mrds_dsm_header_str and iox_dcls. 48* 49* 81-01-09 Davids: changed the call to mrds_dsm_get_version to 50* . mrds_dsm_read_header$version. 51* 52* 81-01-12 Davids: changed mrds_dsm_display_rels.incl.pl1 to 53* . mrds_dsm_relation_names.incl.pl1 54* 55* 81-01-13 Davids: modified so that for version 1 submodels the 56* . first part of the key head range is \001 and the last 57* . part is \177. The reason why the select must still be 58* . done is that i need the number of relation to know how 59* . much space to allocate. 60* 61* 81-01-28 Davids: changed drel_ptr to mrds_dsm_relation_names_ptr 62* . and nrels_alloc to mrds_dsm_relation_names_nrels_alloc 63* . to correspond to changes in the 64* . mrds_mrds_dsm_relation_names include file. 65* 66* 81-02-19 Davids: added the number_of_rels entry. this required 67* . building the internal procedure set_up_subset and having 68* . error_exit (renamed to cleanup) return rather than doing 69* . a goto error_return. 70* 71* 81-02-20 Davids: renamed the cleanup procedure to 72* . in_case_of_error. also added a call to the finish 73* . procedure in the number_of_rels entry. without the call 74* . the subset was never being reset. 75* 76* 81-02-23 Davids: the number_of_rels entry now sets the variable 77* . code so there can be correct error reporting. 78* 79* 81-05-20 Rickie E. Brinegar: changed all referecnces to 80* . dsm_relation_names to mrds_dsm_relation_names due to 81* . changed include file. 82* 83* 81-06-09 Davids: It was discovered that the file key for version 84* . 4 submodels contained the model relation name and not 85* . the submodel relation name. Processing to get the 86* . relation names for version 4 submodels was changed to 87* . set up a subset containing both the relation and file 88* . records. Processing to load the mrds_dsm_relation_names 89* . structure was change to ignore keys with file prefix. 90**/ 91 92 /* PARAMETER */ 93 94 dcl p_area_ptr ptr; /* (input) area to allocate mrds_dsm_relation_names structure in */ 95 dcl p_dsm_relation_names_ptr ptr; /* (output) pointer to the mrds_dsm_relation_names structure */ 96 dcl p_iocb_ptr ptr; /* (input) pointer to submodel iocb */ 97 dcl p_code fixed bin (35); /* (output) error code */ 98 99 /* AUTOMATIC */ 100 101 dcl answer fixed bin; /* return value for the number_of_rels entry */ 102 dcl code fixed bin (35); /* local error code */ 103 dcl idx fixed bin; /* loop index */ 104 dcl info_ptr ptr init (null ());/* pointer to the select set structure */ 105 dcl key char (256) varying;/* submodel record key */ 106 dcl f_key_header char (256) varying;/* defines start of range for leading part of relation record key 107* = REL_HEAD for version 5 108* = "file:" for version 4 109* = "\001" for version 1 */ 110 dcl l_key_header char (256) varying;/* defines end of range for leading part of relation record key 111* = REL_HEAD 112* = "file:" 113* = "\177" */ 114 dcl message char (100); /* error message returned from set_up_subset */ 115 dcl rec_len fixed bin (21); /* length of a submodel record */ 116 dcl version fixed bin; /* submodel version */ 117 118 /* BASED */ 119 120 dcl area area (sys_info$max_seg_size) based (p_area_ptr); 121 /* assumed to be a non-freeing area */ 122 123 /* BUILTIN */ 124 125 dcl addr builtin; 126 dcl addrel builtin; 127 dcl after builtin; 128 dcl length builtin; 129 dcl null builtin; 130 dcl substr builtin; 131 132 /* CONSTANT */ 133 134 dcl BOF fixed bin init (-1) internal static options (constant); 135 /* used to indicate the beginning of the file */ 136 137 /* ENTRIES */ 138 139 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 140 dcl iox_$position entry (ptr, fixed bin, fixed bin (21), fixed bin (35)); 141 dcl iox_$read_key entry (ptr, char (256) varying, fixed bin (21), fixed bin (35)); 142 dcl mrds_dsm_read_header$version entry (ptr, fixed bin, fixed bin (35)); 143 144 /* EXTERNAL */ 145 146 dcl error_table_$end_of_info fixed bin (35) external static; 147 dcl mrds_error_$version_not_supported fixed bin (35) external static; 148 dcl sys_info$max_seg_size fixed bin (19) ext; 149 1 1 /* Include file for vfile_ control orders dealing with key ranges in indexed files */ 1 2 /* created by M. Asherman 4/7/77 1 3*Modified: 1 4*12/18/80 by Lindsey Spratt: Add the delete_old_subsets bit. 1 5**/ 1 6 1 7 /* format: style2 */ 1 8 dcl 1 common_sl_info based (info_ptr), /* info structure for select and exclude orders */ 1 9 2 flags aligned, /* Input */ 1 10 3 list_type fixed (3) unal, /* code identifies format of tail structure */ 1 11 3 status_only bit (1) unal, /* if set, subset info is returned, but current subset stays the same */ 1 12 3 output_descriptors 1 13 bit (1) unal, /* if set, resulting descriptor list is returned */ 1 14 3 delete_old_subsets 1 15 bit (1) unal, /* if set, causes all of the existing subsets on this switch to be deleted. */ 1 16 3 mbz bit (11) unal, /* must be zero--in case of extensions */ 1 17 3 version fixed (17) unal, /* current info version */ 1 18 2 array_limit fixed, /* upper bound of array in tail of info structure */ 1 19 2 subset_no fixed, /* identifies temporary subset-- Output */ 1 20 2 count fixed (34), /* Output--number of distinct descrips */ 1 21 2 desc_arrayp ptr; /* pointer to resulting array of descriptors */ 1 22 1 23 /* descriptor array generated if requested */ 1 24 dcl desc_array (1:common_sl_info.count) based (common_sl_info.desc_arrayp); 1 25 1 26 /* this format allows specification in terms of index intervals defined by two heads or one key */ 1 27 dcl 1 hi_sl_info based (info_ptr), /* structure for list_type = 1 */ 1 28 2 common like common_sl_info, 1 29 2 interval (1:sl_array_limit refer (hi_sl_info.array_limit)), 1 30 3 first_head, 1 31 4 length fixed, 1 32 4 kptr ptr unal, 1 33 3 last_head, 1 34 4 length fixed, /* if negative, this interval is defined by match with key */ 1 35 4 kptr ptr unal; 1 36 1 37 /* format for specification in terms of an array of descriptors */ 1 38 dcl 1 da_sl_info based (info_ptr), /* list_type=2 */ 1 39 2 common like common_sl_info, 1 40 2 desc_array (1:sl_array_limit refer (da_sl_info.array_limit)) fixed (35); 1 41 1 42 dcl sl_array_limit fixed; 1 43 dcl sl_info_version_0 static options (constant) internal fixed init (0); 1 44 1 45 /* list_type=0 denotes reselection of a single, previously defined subset (no tail structure) */ 150 151 2 1 /* BEGIN INCLUDE FILE mrds_dsm_relation_names.incl.pl1 -- nsd 81/01/12 */ 2 2 2 3 /* 2 4*This include file is for internal mrds use only. It is used to 2 5*return an array of submodel relation names. 2 6* 2 7*HISTORY 2 8* 2 9*81-01-12 Davids: written 2 10* 2 11*81-09-14 Davids: changed relation to char (32) from char (64). 64 2 12*was a proposed maximum but could not be implemented. Several 2 13*modules would not compile when compiled with -prefix stringsize 2 14*becuase they made assignments of the form char (32) = char (64). 2 15**/ 2 16 2 17 dcl 1 mrds_dsm_relation_names based (mrds_dsm_relation_names_ptr), 2 18 2 nrels fixed bin, 2 19 2 relation (mrds_dsm_relation_names_nrels_alloc refer (mrds_dsm_relation_names.nrels)) char (32); 2 20 2 21 dcl mrds_dsm_relation_names_nrels_alloc fixed bin; 2 22 2 23 dcl mrds_dsm_relation_names_ptr ptr; 2 24 2 25 /* END INCLUDE FILE mrds_dsm_relation_names.incl.pl1 */ 2 26 152 153 3 1 /* BEGIN INCLUDE FILE - mrds_dsm_head_strings.incl.pl1 */ 3 2 3 3 /* 3 4* All of the key heads used in the mrds submodel vfile declared as 3 5* constants in this file. 3 6* 3 7* Written 11/30/79 by Lindsey L. Spratt 3 8* 3 9* 80-12-23 Davids: modified so that strings lengths are 128 to 3 10* accomodate longer relation and attribute names. 3 11* 3 12* 81-05-20 Davids: added MODEL_REL_HEAD. 3 13**/ 3 14 3 15 dcl REL_ACCESS_HEAD char (128) varying internal static options (constant) init ("relation access:"); 3 16 dcl REL_ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("relation attribute access:"); 3 17 dcl ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("attribute access:"); 3 18 dcl DEF_REL_ACCESS_HEAD char (128) varying internal static options (constant) init ("default relation access:"); 3 19 dcl DEF_ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("default attribute access:"); 3 20 dcl REL_HEAD char (128) varying internal static options (constant) init ("relation:"); 3 21 dcl ATTR_REL_DELIMITER char (128) varying internal static options (constant) init (":in:"); 3 22 dcl MODEL_REL_HEAD char (128) varying internal static options (constant) init ("model relation:"); 3 23 3 24 /* END INCLUDE FILE - mrds_dsm_head_strings.incl.pl1 */ 154 155 156 call set_up_subset (code, message); 157 if code ^= 0 158 then do; 159 call in_case_of_error (message); 160 goto error_return; 161 end; 162 163 call iox_$position (p_iocb_ptr, BOF, 0, code); 164 if code ^= 0 165 then do; 166 call in_case_of_error ("Problem while trying to position to the first relation record"); 167 goto error_return; 168 end; 169 170 call iox_$read_key (p_iocb_ptr, key, rec_len, code); /* read submodel and load mrds_dsm_relation_names str */ 171 if code ^= 0 172 then do; 173 call in_case_of_error ("Problem while trying to read the key of the first relation record"); 174 goto error_return; 175 end; 176 177 if version ^= 4 178 then mrds_dsm_relation_names_nrels_alloc = hi_sl_info.count; 179 else mrds_dsm_relation_names_nrels_alloc = hi_sl_info.count / 2; 180 /* both relation and file records are selected for version 4 */ 181 allocate mrds_dsm_relation_names in (area); 182 183 do idx = 1 by 1 while (code = 0); 184 if version < 4 185 then mrds_dsm_relation_names.relation (idx) = key; 186 else 187 if version > 4 188 then mrds_dsm_relation_names.relation (idx) = after (key, f_key_header); 189 else 190 if version = 4 191 then do; 192 if substr (key, 1, 5) = "file:" 193 then idx = idx - 1; 194 else mrds_dsm_relation_names.relation (idx) = key; 195 end; 196 197 call iox_$position (p_iocb_ptr, 0, 1, code); 198 if code = 0 199 then call iox_$read_key (p_iocb_ptr, key, rec_len, code); 200 end; 201 if code ^= error_table_$end_of_info 202 then do; 203 call in_case_of_error ("Problem while reading the keys of subsequent relation records"); 204 goto error_return; 205 end; 206 207 208 209 p_dsm_relation_names_ptr = mrds_dsm_relation_names_ptr; 210 p_code = 0; 211 call finish; 212 return; 213 214 error_return: 215 p_code = code; 216 p_dsm_relation_names_ptr = null (); 217 return; 218 219 number_of_rels: entry (p_iocb_ptr, p_code) returns (fixed bin); 220 221 call set_up_subset (p_code, message); 222 if p_code = 0 223 then do; 224 if version ^= 4 225 then answer = hi_sl_info.count; 226 else answer = hi_sl_info.count / 2; 227 call finish; 228 end; 229 else do; 230 code = p_code; 231 call in_case_of_error (message); 232 answer = 0; 233 end; 234 235 return (answer); 236 237 set_up_subset: proc (l_code, l_message); 238 239 /* PARAMETERS */ 240 241 dcl l_code fixed bin (35); /* (output) local error code */ 242 dcl l_message char (*); /* (output) local error message */ 243 244 245 246 247 call mrds_dsm_read_header$version (p_iocb_ptr, version, l_code); 248 if l_code ^= 0 249 then l_message = "Could not get the submodel version"; 250 else 251 if version = 5 /* set key_header based on version */ 252 then do; 253 f_key_header = REL_HEAD; 254 l_key_header = REL_HEAD; 255 end; 256 else 257 if version = 4 258 then do; 259 f_key_header = "A"; /* file and relation records */ 260 l_key_header = "z"; 261 end; 262 else 263 if version = 1 264 then do; 265 f_key_header = ""; /* \001 */ 266 l_key_header = ""; /* \177 */ 267 end; 268 else do; 269 l_code = mrds_error_$version_not_supported; 270 l_message = "Unrecognized version of submodel"; 271 end; 272 273 274 275 276 if l_code = 0 277 then do; 278 sl_array_limit = 1; /* build the select info str */ 279 allocate hi_sl_info set (info_ptr); 280 hi_sl_info.version = sl_info_version_0; 281 hi_sl_info.list_type = 1; 282 hi_sl_info.interval (1).first_head.length = length (f_key_header); 283 hi_sl_info.interval (1).first_head.kptr = addrel (addr (f_key_header), 1); 284 hi_sl_info.interval (1).last_head.length = length (l_key_header); 285 hi_sl_info.interval (1).last_head.kptr = addrel (addr (l_key_header), 1); 286 287 288 289 call iox_$control (p_iocb_ptr, "select", info_ptr, l_code); /* select the relation records */ 290 if l_code ^= 0 291 then l_message = "Problem while selecting submodel's relations"; 292 end; 293 294 return; 295 296 end /* set_up_subset */; 297 298 finish: proc; 299 300 /* 301* This procedure resets the subset number in the submodel vfile so 302* that the next vfile access looks at the entire vfile rather than 303* just the relation record subset. 304**/ 305 306 dcl f_code fixed bin (35); /* local error code */ 307 308 309 if info_ptr ^= null 310 then do; 311 if hi_sl_info.subset_no > 0 312 then do; 313 hi_sl_info.list_type = 0; 314 hi_sl_info.subset_no = 0; 315 call iox_$control (p_iocb_ptr, "select", info_ptr, f_code); 316 end; 317 free info_ptr -> hi_sl_info; 318 end; 319 end; /* finish */ 320 321 in_case_of_error: proc (message); 322 323 /* PARAMETERS */ 324 325 dcl message char (*); /* (input) error message */ 326 327 /* AUITOMATIC */ 328 329 dcl retval fixed bin (35); 330 331 /* ENTRIES */ 332 333 dcl sub_err_ entry options (variable); 334 335 336 337 call finish; 338 339 call sub_err_ (code, "mrds_dsm_get_relation_names", "c", null (), retval, message); 340 341 return; 342 343 end /* in_case_of_error */; 344 345 end; /* mrds_dsm_get_relation_names */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0906.9 mrds_dsm_get_relation_names.pl1 >special_ldd>online>mrds.pbf-04/18/85>mrds_dsm_get_relation_names.pl1 150 1 07/31/81 1818.2 select_info.incl.pl1 >ldd>include>select_info.incl.pl1 152 2 10/14/83 1609.0 mrds_dsm_relation_names.incl.pl1 >ldd>include>mrds_dsm_relation_names.incl.pl1 154 3 10/14/83 1608.9 mrds_dsm_head_strings.incl.pl1 >ldd>include>mrds_dsm_head_strings.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. BOF 000041 constant fixed bin(17,0) initial dcl 134 set ref 163* REL_HEAD 000000 constant varying char(128) initial dcl 3-20 ref 253 254 addr builtin function dcl 125 ref 283 285 addrel builtin function dcl 126 ref 283 285 after builtin function dcl 127 ref 186 answer 000100 automatic fixed bin(17,0) dcl 101 set ref 224* 226* 232* 235 area based area dcl 120 ref 181 array_limit 1 based fixed bin(17,0) level 3 dcl 1-27 set ref 279* 317 code 000101 automatic fixed bin(35,0) dcl 102 set ref 156* 157 163* 164 170* 171 183 197* 198 198* 201 214 230* 339* common based structure level 2 unaligned dcl 1-27 common_sl_info based structure level 1 unaligned dcl 1-8 count 3 based fixed bin(34,0) level 3 dcl 1-27 ref 177 179 224 226 error_table_$end_of_info 000020 external static fixed bin(35,0) dcl 146 ref 201 f_code 000472 automatic fixed bin(35,0) dcl 306 set ref 315* f_key_header 000207 automatic varying char(256) dcl 106 set ref 186 253* 259* 265* 282 283 first_head 6 based structure array level 3 unaligned dcl 1-27 flags based structure level 3 dcl 1-27 hi_sl_info based structure level 1 unaligned dcl 1-27 set ref 279 317 idx 000102 automatic fixed bin(17,0) dcl 103 set ref 183* 184 186 192* 192 194* info_ptr 000104 automatic pointer initial dcl 104 set ref 104* 177 179 224 226 279* 280 281 282 283 284 285 289* 309 311 313 314 315* 317 interval 6 based structure array level 2 unaligned dcl 1-27 iox_$control 000010 constant entry external dcl 139 ref 289 315 iox_$position 000012 constant entry external dcl 140 ref 163 197 iox_$read_key 000014 constant entry external dcl 141 ref 170 198 key 000106 automatic varying char(256) dcl 105 set ref 170* 184 186 192 194 198* kptr 7 based pointer array level 4 in structure "hi_sl_info" packed unaligned dcl 1-27 in procedure "mrds_dsm_get_relation_names" set ref 283* kptr 11 based pointer array level 4 in structure "hi_sl_info" packed unaligned dcl 1-27 in procedure "mrds_dsm_get_relation_names" set ref 285* l_code parameter fixed bin(35,0) dcl 241 set ref 237 247* 248 269* 276 289* 290 l_key_header 000310 automatic varying char(256) dcl 110 set ref 254* 260* 266* 284 285 l_message parameter char unaligned dcl 242 set ref 237 248* 270* 290* last_head 10 based structure array level 3 unaligned dcl 1-27 length 6 based fixed bin(17,0) array level 4 in structure "hi_sl_info" dcl 1-27 in procedure "mrds_dsm_get_relation_names" set ref 282* length 10 based fixed bin(17,0) array level 4 in structure "hi_sl_info" dcl 1-27 in procedure "mrds_dsm_get_relation_names" set ref 284* length builtin function dcl 128 in procedure "mrds_dsm_get_relation_names" ref 282 284 list_type based fixed bin(3,0) level 4 packed unaligned dcl 1-27 set ref 281* 313* message 000411 automatic char(100) unaligned dcl 114 in procedure "mrds_dsm_get_relation_names" set ref 156* 159* 221* 231* message parameter char unaligned dcl 325 in procedure "in_case_of_error" set ref 321 339* mrds_dsm_read_header$version 000016 constant entry external dcl 142 ref 247 mrds_dsm_relation_names based structure level 1 unaligned dcl 2-17 set ref 181 mrds_dsm_relation_names_nrels_alloc 000445 automatic fixed bin(17,0) dcl 2-21 set ref 177* 179* 181 181 mrds_dsm_relation_names_ptr 000446 automatic pointer dcl 2-23 set ref 181* 184 186 194 209 mrds_error_$version_not_supported 000022 external static fixed bin(35,0) dcl 147 ref 269 nrels based fixed bin(17,0) level 2 dcl 2-17 set ref 181* null builtin function dcl 129 ref 104 216 309 339 339 p_area_ptr parameter pointer dcl 94 ref 18 181 p_code parameter fixed bin(35,0) dcl 97 set ref 18 210* 214* 219 221* 222 230 p_dsm_relation_names_ptr parameter pointer dcl 95 set ref 18 209* 216* p_iocb_ptr parameter pointer dcl 96 set ref 18 163* 170* 197* 198* 219 247* 289* 315* rec_len 000442 automatic fixed bin(21,0) dcl 115 set ref 170* 198* relation 1 based char(32) array level 2 packed unaligned dcl 2-17 set ref 184* 186* 194* retval 000502 automatic fixed bin(35,0) dcl 329 set ref 339* sl_array_limit 000444 automatic fixed bin(17,0) dcl 1-42 set ref 278* 279 279 sl_info_version_0 constant fixed bin(17,0) initial dcl 1-43 ref 280 sub_err_ 000024 constant entry external dcl 333 ref 339 subset_no 2 based fixed bin(17,0) level 3 dcl 1-27 set ref 311 314* substr builtin function dcl 130 ref 192 version 0(18) based fixed bin(17,0) level 4 in structure "hi_sl_info" packed unaligned dcl 1-27 in procedure "mrds_dsm_get_relation_names" set ref 280* version 000443 automatic fixed bin(17,0) dcl 116 in procedure "mrds_dsm_get_relation_names" set ref 177 184 186 189 224 247* 250 256 262 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 3-17 ATTR_REL_DELIMITER internal static varying char(128) initial dcl 3-21 DEF_ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 3-19 DEF_REL_ACCESS_HEAD internal static varying char(128) initial dcl 3-18 MODEL_REL_HEAD internal static varying char(128) initial dcl 3-22 REL_ACCESS_HEAD internal static varying char(128) initial dcl 3-15 REL_ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 3-16 da_sl_info based structure level 1 unaligned dcl 1-38 desc_array based fixed bin(17,0) array dcl 1-24 sys_info$max_seg_size external static fixed bin(19,0) dcl 148 NAMES DECLARED BY EXPLICIT CONTEXT. error_return 000540 constant label dcl 214 ref 160 167 174 204 finish 001063 constant entry internal dcl 298 ref 211 227 337 in_case_of_error 001135 constant entry internal dcl 321 ref 159 166 173 203 231 mrds_dsm_get_relation_names 000226 constant entry external dcl 18 number_of_rels 000560 constant entry external dcl 219 set_up_subset 000652 constant entry internal dcl 237 ref 156 221 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1404 1432 1253 1414 Length 1704 1253 26 236 131 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrds_dsm_get_relation_names 464 external procedure is an external procedure. set_up_subset internal procedure shares stack frame of external procedure mrds_dsm_get_relation_names. finish internal procedure shares stack frame of external procedure mrds_dsm_get_relation_names. in_case_of_error internal procedure shares stack frame of external procedure mrds_dsm_get_relation_names. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mrds_dsm_get_relation_names 000100 answer mrds_dsm_get_relation_names 000101 code mrds_dsm_get_relation_names 000102 idx mrds_dsm_get_relation_names 000104 info_ptr mrds_dsm_get_relation_names 000106 key mrds_dsm_get_relation_names 000207 f_key_header mrds_dsm_get_relation_names 000310 l_key_header mrds_dsm_get_relation_names 000411 message mrds_dsm_get_relation_names 000442 rec_len mrds_dsm_get_relation_names 000443 version mrds_dsm_get_relation_names 000444 sl_array_limit mrds_dsm_get_relation_names 000445 mrds_dsm_relation_names_nrels_alloc mrds_dsm_get_relation_names 000446 mrds_dsm_relation_names_ptr mrds_dsm_get_relation_names 000472 f_code finish 000502 retval in_case_of_error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return signal ext_entry trunc_fx2 set_cs_eis divide_fx1 alloc_based alloc_based_storage free_based index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$control iox_$position iox_$read_key mrds_dsm_read_header$version sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info mrds_error_$version_not_supported LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 104 000215 18 000221 156 000243 157 000246 159 000250 160 000253 163 000254 164 000272 166 000274 167 000302 170 000303 171 000320 173 000322 174 000330 177 000331 179 000340 181 000350 183 000363 184 000370 186 000404 189 000430 192 000431 194 000441 197 000451 198 000471 200 000510 201 000512 203 000515 204 000523 209 000524 210 000527 211 000530 212 000531 214 000540 216 000542 217 000545 219 000554 221 000574 222 000610 224 000612 226 000621 227 000631 228 000632 230 000633 231 000634 232 000637 235 000640 237 000652 247 000663 248 000677 250 000710 253 000713 254 000720 255 000724 256 000725 259 000727 260 000733 261 000736 262 000737 265 000741 266 000745 267 000750 269 000751 270 000754 276 000761 278 000763 279 000765 280 000775 281 000777 282 001003 283 001005 284 001011 285 001013 289 001017 290 001052 294 001062 298 001063 309 001064 311 001070 313 001073 314 001077 315 001100 317 001126 319 001134 321 001135 337 001146 339 001147 341 001214 ----------------------------------------------------------- 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