COMPILATION LISTING OF SEGMENT mrds_dsm_read_relation Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1021.1 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_read_relation: proc (relation_name, area_ptr, a_relation_block_ptr, iocb_ptr, a_code); 19 20 /* 21* This routine loads a relation_block_str from data in the submodel 22* vfile pointed to by the iocb_ptr parameter. The version of the 23* submodel is determined and as long as its version 1, 4 or 5 it 24* can be processed. There are no other submodel versions. Since 25* version 1 and 4 submodels do not have access bits in the relation 26* record access of append_tuple and delete_tuple for the relation 27* and access of read and modify for the attributes in the relation 28* is set in the relation_block_str. Access for version 5 submodel 29* relations is of course taken from the access bits in the record. 30* 31* Known bugs: 32* 33* Other problems: 34* 35* HISTORY 36* 37* 80-12-23 Davids: This routine has been extensively modified from 38* . the eariler version which had no history section. The 39* . bigest changes where handling of version 4 submodels and 40* . a call to sub_err_ to explain any errors. 41* 42* 81-01-06 Davids: modified to call mrds_dsm_get_version rather 43* . than reading the header struction in line. 44* 45* 81-01-09 Davids: changed call mrds_dsm_get_version to 46* . mrds_dsm_read_header$version. 47* 48* 81-01-14 Davids: modified to support version 1 submodels which 49* . are handled like version 4 submodels. 50* 51* . modified to handle the new relation_block structure and 52* . to zero what used to be the pad fields (now mbz fields). 53* 54* 81-04-30 Davids: modified to use the new rel_rec_5 structure, 55* . i.e. named 1 bit access elements rather than just an 56* . unnamed bit string. 57**/ 58 59 /* PARAMETERS */ 60 61 dcl relation_name char (*); /* (input) name of the relation to be read */ 62 dcl area_ptr ptr; /* (input) area to allocate relation_block */ 63 dcl a_relation_block_ptr ptr; /* (output) pointer to the realtion_block str */ 64 dcl iocb_ptr ptr; /* (input) pointer to the submodel iocb */ 65 dcl a_code fixed bin (35); /* (output) a error code */ 66 67 /* AUTOMATIC */ 68 69 dcl byte_len fixed bin (21); /* length in bytes of area needed for records */ 70 dcl byte_ptr ptr init (null ());/* pointer to area records will be read into */ 71 dcl code fixed bin (35); /* internal error code */ 72 dcl idx fixed bin; /* loop indx */ 73 dcl record_key char (256) varying;/* vfile record key */ 74 dcl record_length fixed bin (21); /* length of record just read */ 75 dcl version fixed bin; /* submodel version */ 76 77 /* BASED */ 78 79 dcl area_buffer area based (area_ptr); /* space for relation_block str */ 80 dcl byte_string char (byte_len) based unal; /* space to read a record */ 81 82 /* BUILTIN */ 83 84 dcl null builtin; 85 86 /* ENTRIES */ 87 88 dcl iox_$read_record entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 89 dcl iox_$seek_key entry (ptr, char (256) varying, fixed bin (21), fixed bin (35)); 90 dcl mrds_dsm_read_header$version entry (ptr, fixed bin, fixed bin (35)); 91 92 /* EXTERNAL */ 93 94 dcl mrds_error_$version_not_supported fixed bin (35) external static; 95 1 1 /* BEGIN INCLUDE FILE - mrds_dsm_rel_rec_4.incl.pl1 */ 1 2 1 3 /* 1 4* This is the format of the relation record in version 4 submodels 1 5* 1 6* HISTORY 1 7* 1 8* 80-12-23 Davids: written 1 9**/ 1 10 1 11 1 12 dcl 01 rel_rec_4 based, 1 13 02 model_rel_name char (32), 1 14 02 no_attributes fixed bin, 1 15 02 attribute_info (0 refer (rel_rec_4.no_attributes)), 1 16 03 submodel_att_name char (32), 1 17 03 model_att_name char (32); 1 18 1 19 /* END INCLUDE FILE - mrds_dsm_rel_rec_4.incl.pl1 */ 96 97 2 1 /* BEGIN INCLUDE FILE - mrds_dsm_rel_rec_5.incl.pl1 */ 2 2 2 3 /* 2 4* This is the format of the relation record in version 5 submodels 2 5* 2 6* HISTORY 2 7* 2 8* 80-12-23 Davids: written 2 9* 2 10* 81-04-29 Davids: changed the access elements from a bit string to 2 11* a named set of bits and added the two structures relation_access 2 12* and attribute_access. 2 13**/ 2 14 2 15 2 16 dcl 01 rel_rec_5 based, 2 17 02 attr_num fixed bin, 2 18 02 rel_dm_name char (256) varying, 2 19 02 access like relation_access, 2 20 02 attr (rel_rec_5_attr_num refer (rel_rec_5.attr_num)), 2 21 03 dsm_name char (256) varying, 2 22 03 dm_name char (256) varying, 2 23 03 access like attribute_access; 2 24 2 25 dcl rel_rec_5_attr_num fixed bin; 2 26 2 27 2 28 dcl 01 relation_access based, 2 29 02 null bit (1) unal, 2 30 02 append bit (1) unal, 2 31 02 delete bit (1) unal, 2 32 02 mbz1 bit (33) unal; 2 33 2 34 2 35 dcl 01 attribute_access based, 2 36 02 null bit (1) unal, 2 37 02 read bit (1) unal, 2 38 02 modify bit (1) unal, 2 39 02 mbz1 bit (33) unal; 2 40 2 41 /* END INCLUDE FILE - mrds_dsm_rel_rec_5.incl.pl1 */ 98 99 3 1 /* BEGIN INCLUDE FILE mrds_dsm_rel_block.incl.pl1 3 2* 3 3* Created October, 1975 for release in MR 4.0 3 4* 3 5* The relation_block contains the relation name and the attribute 3 6* names and access information 3 7* 3 8* HISTORY 3 9* 3 10* 80-04-10 Spratt: changed to have version number, be explicitly 3 11* . based, use an automatic variable in the refer for num of 3 12* . attributes, add access flags for rel and attr's, remove 3 13* . attr key flags. This is for the first Attribute Level 3 14* . Security version of MRDS. 3 15* 3 16* 81-01-14 Davids: increased submodel rel and attr names to 64 3 17* . characters and made dsm_rel_name char varying. changed 3 18* . access bits from a bit string to individually named 3 19* . flags. 3 20**/ 3 21 3 22 dcl relation_block_ptr ptr; 3 23 dcl rb_number_of_attributes fixed bin (35); 3 24 dcl RELATION_BLOCK_VERSION_1 fixed bin (35) internal static options (constant) init (1); 3 25 3 26 dcl 1 relation_block based (relation_block_ptr), 3 27 /* Relation block */ 3 28 2 version fixed bin (35), 3 29 2 dsm_rel_name char (64) varying, /* Data submodel relation name */ 3 30 2 dm_rel_name char (32), /* Data model relation name */ 3 31 2 rel_access unal, 3 32 3 append bit (1), 3 33 3 delete bit (1), 3 34 3 null bit (1), 3 35 3 mbz1 bit (33), 3 36 2 no_rb_attributes fixed bin, /* The number of attributes in this relation */ 3 37 2 attribute_info (rb_number_of_attributes refer (relation_block.no_rb_attributes)), 3 38 3 dsm_attr_name char (64) varying, /* Data submodel attribute name */ 3 39 3 attr_access unal, /* Data submodel attribute flags */ 3 40 4 read bit (1), 3 41 4 modify bit (1), 3 42 4 null bit (1), 3 43 4 mbz2 bit (33), /* For future use */ 3 44 3 dm_attr_name char (32) varying, /* Data model attribute name */ 3 45 3 dm_attr_flags, /* Data model attribute flags */ 3 46 4 mbz3 bit (36); /* For future use */ 3 47 3 48 /* END INCLUDE FILE mrds_dsm_rel_block.incl.pl1 */ 3 49 100 101 4 1 /* BEGIN INCLUDE FILE - mrds_dsm_head_strings.incl.pl1 */ 4 2 4 3 /* 4 4* All of the key heads used in the mrds submodel vfile declared as 4 5* constants in this file. 4 6* 4 7* Written 11/30/79 by Lindsey L. Spratt 4 8* 4 9* 80-12-23 Davids: modified so that strings lengths are 128 to 4 10* accomodate longer relation and attribute names. 4 11* 4 12* 81-05-20 Davids: added MODEL_REL_HEAD. 4 13**/ 4 14 4 15 dcl REL_ACCESS_HEAD char (128) varying internal static options (constant) init ("relation access:"); 4 16 dcl REL_ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("relation attribute access:"); 4 17 dcl ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("attribute access:"); 4 18 dcl DEF_REL_ACCESS_HEAD char (128) varying internal static options (constant) init ("default relation access:"); 4 19 dcl DEF_ATTR_ACCESS_HEAD char (128) varying internal static options (constant) init ("default attribute access:"); 4 20 dcl REL_HEAD char (128) varying internal static options (constant) init ("relation:"); 4 21 dcl ATTR_REL_DELIMITER char (128) varying internal static options (constant) init (":in:"); 4 22 dcl MODEL_REL_HEAD char (128) varying internal static options (constant) init ("model relation:"); 4 23 4 24 /* END INCLUDE FILE - mrds_dsm_head_strings.incl.pl1 */ 102 103 104 call mrds_dsm_read_header$version (iocb_ptr, version, code); 105 if code ^= 0 106 then call error_exit ("Could not read submodel version"); 107 108 if version = 4 109 then call process_version_1_or_4; 110 else 111 if version = 5 112 then call process_version_5; 113 else 114 if version = 1 115 then call process_version_1_or_4; 116 else do; 117 code = mrds_error_$version_not_supported; 118 call error_exit ("Unrecognized submodel version"); 119 end; 120 121 122 123 124 a_code = 0; 125 a_relation_block_ptr = relation_block_ptr; 126 return; 127 128 error_return: 129 a_code = code; 130 a_relation_block_ptr = null (); 131 if byte_ptr ^= null () 132 then free byte_ptr -> byte_string; 133 return; 134 135 process_version_1_or_4: proc; 136 137 record_key = relation_name; 138 139 call iox_$seek_key (iocb_ptr, (record_key), byte_len, code); 140 if code ^= 0 141 then call error_exit ("Relation record was not in submodel vfile_"); 142 143 allocate byte_string set (byte_ptr); 144 145 call iox_$read_record (iocb_ptr, byte_ptr, byte_len, record_length, code); 146 if code ^= 0 147 then call error_exit ("Relation record could not be read"); 148 149 rb_number_of_attributes = byte_ptr -> rel_rec_4.no_attributes; 150 allocate relation_block in (area_buffer); 151 relation_block.version = RELATION_BLOCK_VERSION_1; 152 relation_block.dsm_rel_name = relation_name; 153 relation_block.dm_rel_name = byte_ptr -> rel_rec_4.model_rel_name; 154 relation_block.rel_access.append = "1"b; 155 relation_block.rel_access.delete = "1"b; 156 relation_block.rel_access.null = "0"b; 157 relation_block.rel_access.mbz1 = "0"b; 158 do idx = 1 to byte_ptr -> rel_rec_4.no_attributes; 159 relation_block.attribute_info (idx).dsm_attr_name 160 = byte_ptr -> rel_rec_4.attribute_info (idx).submodel_att_name; 161 relation_block.attribute_info (idx).attr_access.read = "1"b; 162 relation_block.attribute_info (idx).attr_access.modify = "1"b; 163 relation_block.attribute_info (idx).attr_access.null = "0"b; 164 relation_block.attribute_info (idx).attr_access.mbz2 = "0"b; 165 relation_block.attribute_info (idx).dm_attr_name 166 = byte_ptr -> rel_rec_4.attribute_info (idx).model_att_name; 167 relation_block.attribute_info (idx).dm_attr_flags.mbz3 = "0"b; 168 end; 169 170 free byte_ptr -> byte_string; 171 172 return; 173 174 end /* process_version_4 */; 175 176 process_version_5: proc; 177 178 record_key = REL_HEAD || relation_name; 179 180 call iox_$seek_key (iocb_ptr, (record_key), byte_len, code); 181 if code ^= 0 182 then call error_exit ("Relation record was not in submodel vfile_"); 183 184 allocate byte_string set (byte_ptr); 185 186 call iox_$read_record (iocb_ptr, byte_ptr, byte_len, record_length, code); 187 if code ^= 0 188 then call error_exit ("Relation record could not be read"); 189 190 rb_number_of_attributes = byte_ptr -> rel_rec_5.attr_num; 191 allocate relation_block in (area_buffer); 192 relation_block.version = RELATION_BLOCK_VERSION_1; 193 relation_block.dsm_rel_name = relation_name; 194 relation_block.dm_rel_name = byte_ptr -> rel_rec_5.rel_dm_name; 195 relation_block.rel_access.append = byte_ptr -> rel_rec_5.access.append; 196 relation_block.rel_access.delete = byte_ptr -> rel_rec_5.access.delete; 197 relation_block.rel_access.null = byte_ptr -> rel_rec_5.access.null; 198 relation_block.rel_access.mbz1 = "0"b; 199 do idx = 1 to byte_ptr -> rel_rec_5.attr_num; 200 relation_block.attribute_info (idx).dsm_attr_name = byte_ptr -> rel_rec_5.attr (idx).dsm_name; 201 relation_block.attribute_info (idx).attr_access.read = byte_ptr -> rel_rec_5.attr (idx).access.read; 202 relation_block.attribute_info (idx).attr_access.modify = byte_ptr -> rel_rec_5.attr (idx).access.modify; 203 relation_block.attribute_info (idx).attr_access.null = byte_ptr -> rel_rec_5.attr (idx).access.null; 204 relation_block.attribute_info (idx).attr_access.mbz2 = "0"b; 205 relation_block.attribute_info (idx).dm_attr_name = byte_ptr -> rel_rec_5.attr (idx).dm_name; 206 relation_block.attribute_info (idx).dm_attr_flags.mbz3 = "0"b; 207 end; 208 209 free byte_ptr -> byte_string; 210 211 return; 212 213 end /* process_version_5 */; 214 215 error_exit: proc (message); 216 217 /* PARAMETERS */ 218 219 dcl message char (*); /* (input) error message */ 220 221 /* AUTOMATIC */ 222 223 dcl retval fixed bin (35); 224 225 /* ENTRIES */ 226 227 dcl sub_err_ entry options (variable); 228 229 230 231 call sub_err_ (code, "mrds_dsm_read_relation", "c", null (), retval, message); 232 233 goto error_return; 234 235 end /* error_return */; 236 237 end /* mrds_dsm_read_relation */; 238 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0907.0 mrds_dsm_read_relation.pl1 >special_ldd>online>mrds.pbf-04/18/85>mrds_dsm_read_relation.pl1 96 1 10/14/83 1608.7 mrds_dsm_rel_rec_4.incl.pl1 >ldd>include>mrds_dsm_rel_rec_4.incl.pl1 98 2 10/14/83 1608.9 mrds_dsm_rel_rec_5.incl.pl1 >ldd>include>mrds_dsm_rel_rec_5.incl.pl1 100 3 10/14/83 1608.7 mrds_dsm_rel_block.incl.pl1 >ldd>include>mrds_dsm_rel_block.incl.pl1 102 4 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. RELATION_BLOCK_VERSION_1 constant fixed bin(35,0) initial dcl 3-24 ref 151 192 REL_HEAD 000000 constant varying char(128) initial dcl 4-20 ref 178 a_code parameter fixed bin(35,0) dcl 65 set ref 18 124* 128* a_relation_block_ptr parameter pointer dcl 63 set ref 18 125* 130* access 305 based structure array level 3 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" access 102 based structure level 2 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" append 102(01) based bit(1) level 3 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 195 append 32 based bit(1) level 3 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 154* 195* area_buffer based area(1024) dcl 79 ref 150 191 area_ptr parameter pointer dcl 62 ref 18 150 191 attr 103 based structure array level 2 unaligned dcl 2-16 attr_access 55 based structure array level 3 packed unaligned dcl 3-26 attr_num based fixed bin(17,0) level 2 dcl 2-16 ref 190 199 attribute_access based structure level 1 packed unaligned dcl 2-35 attribute_info 34 based structure array level 2 in structure "relation_block" unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" attribute_info 11 based structure array level 2 in structure "rel_rec_4" packed unaligned dcl 1-12 in procedure "mrds_dsm_read_relation" byte_len 000100 automatic fixed bin(21,0) dcl 69 set ref 131 131 139* 143 143 145* 170 170 180* 184 184 186* 209 209 byte_ptr 000102 automatic pointer initial dcl 70 set ref 70* 131 131 143* 145* 149 153 158 159 165 170 184* 186* 190 194 195 196 197 199 200 201 202 203 205 209 byte_string based char unaligned dcl 80 ref 131 143 170 184 209 code 000104 automatic fixed bin(35,0) dcl 71 set ref 104* 105 117* 128 139* 140 145* 146 180* 181 186* 187 231* delete 32(01) based bit(1) level 3 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 155* 196* delete 102(02) based bit(1) level 3 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 196 dm_attr_flags 67 based structure array level 3 packed unaligned dcl 3-26 dm_attr_name 56 based varying char(32) array level 3 dcl 3-26 set ref 165* 205* dm_name 204 based varying char(256) array level 3 dcl 2-16 ref 205 dm_rel_name 22 based char(32) level 2 packed unaligned dcl 3-26 set ref 153* 194* dsm_attr_name 34 based varying char(64) array level 3 dcl 3-26 set ref 159* 200* dsm_name 103 based varying char(256) array level 3 dcl 2-16 ref 200 dsm_rel_name 1 based varying char(64) level 2 dcl 3-26 set ref 152* 193* idx 000105 automatic fixed bin(17,0) dcl 72 set ref 158* 159 159 161 162 163 164 165 165 167* 199* 200 200 201 201 202 202 203 203 204 205 205 206* iocb_ptr parameter pointer dcl 64 set ref 18 104* 139* 145* 180* 186* iox_$read_record 000010 constant entry external dcl 88 ref 145 186 iox_$seek_key 000012 constant entry external dcl 89 ref 139 180 mbz1 32(03) based bit(33) level 3 packed unaligned dcl 3-26 set ref 157* 198* mbz2 55(03) based bit(33) array level 4 packed unaligned dcl 3-26 set ref 164* 204* mbz3 67 based bit(36) array level 4 packed unaligned dcl 3-26 set ref 167* 206* message parameter char unaligned dcl 219 set ref 215 231* model_att_name 21 based char(32) array level 3 packed unaligned dcl 1-12 ref 165 model_rel_name based char(32) level 2 packed unaligned dcl 1-12 ref 153 modify 55(01) based bit(1) array level 4 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 162* 202* modify 305(02) based bit(1) array level 4 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 202 mrds_dsm_read_header$version 000014 constant entry external dcl 90 ref 104 mrds_error_$version_not_supported 000016 external static fixed bin(35,0) dcl 94 ref 117 no_attributes 10 based fixed bin(17,0) level 2 dcl 1-12 ref 149 158 no_rb_attributes 33 based fixed bin(17,0) level 2 dcl 3-26 set ref 150* 191* null 55(02) based bit(1) array level 4 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 163* 203* null builtin function dcl 84 in procedure "mrds_dsm_read_relation" ref 70 130 131 231 231 null 102 based bit(1) level 3 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 197 null 305 based bit(1) array level 4 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 203 null 32(02) based bit(1) level 3 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 156* 197* rb_number_of_attributes 000214 automatic fixed bin(35,0) dcl 3-23 set ref 149* 150 150 190* 191 191 read 55 based bit(1) array level 4 in structure "relation_block" packed unaligned dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 161* 201* read 305(01) based bit(1) array level 4 in structure "rel_rec_5" packed unaligned dcl 2-16 in procedure "mrds_dsm_read_relation" ref 201 record_key 000106 automatic varying char(256) dcl 73 set ref 137* 139 178* 180 record_length 000207 automatic fixed bin(21,0) dcl 74 set ref 145* 186* rel_access 32 based structure level 2 packed unaligned dcl 3-26 rel_dm_name 1 based varying char(256) level 2 dcl 2-16 ref 194 rel_rec_4 based structure level 1 unaligned dcl 1-12 rel_rec_5 based structure level 1 unaligned dcl 2-16 relation_access based structure level 1 packed unaligned dcl 2-28 relation_block based structure level 1 unaligned dcl 3-26 set ref 150 191 relation_block_ptr 000212 automatic pointer dcl 3-22 set ref 125 150* 151 152 153 154 155 156 157 159 161 162 163 164 165 167 191* 192 193 194 195 196 197 198 200 201 202 203 204 205 206 relation_name parameter char unaligned dcl 61 ref 18 137 152 178 193 retval 000244 automatic fixed bin(35,0) dcl 223 set ref 231* sub_err_ 000020 constant entry external dcl 227 ref 231 submodel_att_name 11 based char(32) array level 3 packed unaligned dcl 1-12 ref 159 version based fixed bin(35,0) level 2 in structure "relation_block" dcl 3-26 in procedure "mrds_dsm_read_relation" set ref 151* 192* version 000210 automatic fixed bin(17,0) dcl 75 in procedure "mrds_dsm_read_relation" set ref 104* 108 110 113 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 4-17 ATTR_REL_DELIMITER internal static varying char(128) initial dcl 4-21 DEF_ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 4-19 DEF_REL_ACCESS_HEAD internal static varying char(128) initial dcl 4-18 MODEL_REL_HEAD internal static varying char(128) initial dcl 4-22 REL_ACCESS_HEAD internal static varying char(128) initial dcl 4-15 REL_ATTR_ACCESS_HEAD internal static varying char(128) initial dcl 4-16 rel_rec_5_attr_num automatic fixed bin(17,0) dcl 2-25 NAMES DECLARED BY EXPLICIT CONTEXT. error_exit 000767 constant entry internal dcl 215 ref 105 118 140 146 181 187 error_return 000226 constant label dcl 128 ref 233 mrds_dsm_read_relation 000133 constant entry external dcl 18 process_version_1_or_4 000244 constant entry internal dcl 135 ref 108 113 process_version_5 000474 constant entry internal dcl 176 ref 110 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1222 1244 1120 1232 Length 1524 1120 22 243 102 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrds_dsm_read_relation 364 external procedure is an external procedure. process_version_1_or_4 internal procedure shares stack frame of external procedure mrds_dsm_read_relation. process_version_5 internal procedure shares stack frame of external procedure mrds_dsm_read_relation. error_exit internal procedure shares stack frame of external procedure mrds_dsm_read_relation. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mrds_dsm_read_relation 000100 byte_len mrds_dsm_read_relation 000102 byte_ptr mrds_dsm_read_relation 000104 code mrds_dsm_read_relation 000105 idx mrds_dsm_read_relation 000106 record_key mrds_dsm_read_relation 000207 record_length mrds_dsm_read_relation 000210 version mrds_dsm_read_relation 000212 relation_block_ptr mrds_dsm_read_relation 000214 rb_number_of_attributes mrds_dsm_read_relation 000244 retval error_exit THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc alloc_based alloc_based_storage free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$read_record iox_$seek_key mrds_dsm_read_header$version sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. mrds_error_$version_not_supported LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000126 70 000146 104 000150 105 000163 108 000173 110 000200 113 000204 117 000210 118 000213 124 000221 125 000223 126 000225 128 000226 130 000231 131 000233 133 000243 135 000244 137 000245 139 000257 140 000301 143 000311 145 000317 146 000337 149 000347 150 000352 151 000365 152 000367 153 000401 154 000405 155 000407 156 000411 157 000413 158 000415 159 000425 161 000443 162 000446 163 000450 164 000452 165 000454 167 000463 168 000464 170 000466 172 000473 176 000474 178 000475 180 000521 181 000544 184 000554 186 000562 187 000602 190 000612 191 000614 192 000627 193 000631 194 000643 195 000650 196 000655 197 000662 198 000667 199 000671 200 000701 201 000722 202 000730 203 000735 204 000742 205 000744 206 000756 207 000757 209 000761 211 000766 215 000767 231 001000 233 001050 ----------------------------------------------------------- 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