COMPILATION LISTING OF SEGMENT mrds_dsl_eval_func Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1025.7 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_dsl_eval_func: proc (area_ptr, sfn_ptr, rmri_ptr, simple_typed_vector_ptr, code); 19 20 /* this routine evaluates functions appearing in 21* the where clause. 22* 23* 24**/ 25 26 /* HISTORY: 27* 28* Modified for MR7.0 by JA Weeldreyer -- February, 1979 29* 30* Modified by NSDavids 27-aug-79 to initialize icode to zero rather than garbage 31* 32* Modified by Jim Gray - - Feb. 1980, to add area_ptr parameter. 33* 34* 7-may-80 Davids: modified assignments of tuple_num_atts and 35* tuple_nvar_atts to take values from rm_rel_info.model_num_attr 36* and model_nvar_atts rather than rm_rel_info.num_attr and 37* nvar_atts. This was to fix a problem with submodels were the 38* submodel view did not contain a varying string attribute and the 39* model did. 40* 41* 81-06-01 Jim Gray : modified to use new resultant structure. 42* 43* 82-08-23 Mike Kubicar : converted from tuple structure to simple 44* typed vector. 45* 46**/ 47 48 do i = 1 to scalfn.nargs; 49 if scalfn.arg.type (i) = EXPR 50 then call mrds_dsl_eval_expr (area_ptr, scalfn.arg.ef_ptr (i), rmri_ptr, simple_typed_vector_ptr, icode); 51 52 else if scalfn.arg.type (i) = SCAL_FUN 53 then call mrds_dsl_eval_func (area_ptr, scalfn.arg.ef_ptr (i), rmri_ptr, simple_typed_vector_ptr, icode); 54 55 else if scalfn.arg.type (i) = DATABASE 56 then call get_db_item; /* go initialize appropriate assn_ptr and argument list ptr */ 57 if icode ^= 0 then call error (icode); 58 59 if scalfn.arg.must_convert (i) 60 then call mu_convert$convert_data (scalfn.arg.assn_ptr (i), 61 addr (scalfn.arg.desc (i)), 62 scalfn.arg.arg_assn_ptr (i), 63 addr (scalfn.arg.arg_desc (i)), 64 icode); 65 if icode ^= 0 then call error (icode); 66 67 end; 68 69 call cu_$gen_call (scalfn.entry_ptr, scalfn.arg_list_ptr); 70 71 code = 0; 72 73 exit: 74 return; 75 76 get_db_item: proc; 77 78 /* procedure to move an attr. value out of the tuple, and decode it if necessary. */ 79 80 rai_ptr = scalfn.arg.ai_ptr (i); 81 82 call mu_get_data$get_data_item (rai_ptr, area_ptr, 83 (simple_typed_vector.dimension (rm_attr_info.defn_order) 84 .value_ptr), scalfn.arg.assn_ptr (i), 85 addr (scalfn.arg.desc (i)), icode); 86 87 end get_db_item; 88 89 error: proc (cd); 90 91 /* Error Procedure */ 92 93 dcl cd fixed bin (35); 94 95 code = cd; 96 go to exit; 97 98 end error; 99 100 dcl i fixed bin; /* index value */ 101 102 dcl code fixed bin (35); /* Output: status code */ 103 dcl icode fixed bin (35) init (0); /* internal status code */ 104 105 dcl (addr, null) builtin; 106 107 dcl mu_convert$convert_data entry (ptr, ptr, ptr, ptr, fixed bin (35)); 108 dcl cu_$gen_call entry (ptr, ptr); 109 110 dcl mrds_dsl_eval_expr entry (ptr, ptr, ptr, ptr, fixed bin (35)); 111 dcl mu_get_data$get_data_item entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 112 declare area_ptr ptr; 113 1 1 /* BEGIN INCLUDE FILE mrds_expressions.incl.pl1 -- jaw 2/15/79 */ 1 2 1 3 /* HISTORY: 1 4* 1 5* 81-06-01 Jim Gray : removed assn len and type elements 1 6* since mu_covnert is now being used. 1 7* 1 8**/ 1 9 1 10 1 11 dcl 1 expr aligned based (expr_ptr), /* internal representation of an expression, 1 12* expression is stored in postfix polish form */ 1 13 2 nitems fixed bin, /* no. items in expression */ 1 14 2 item (nexp_items_init refer (expr.nitems)), 1 15 3 type fixed bin (3) unal, /* 1 => data item 1 16* 2 => operator 1 17* 3 => scalar function */ 1 18 3 op_code fixed bin (3) unal, /* 1 => add 1 19* 2 => subtract 1 20* 3 => multiply 1 21* 4 => divide */ 1 22 3 data_type fixed bin (2) unal, /* 1 => literal 1 23* 2 => database */ 1 24 3 reserved bit (25) unal, 1 25 3 desc bit (36), /* data descriptor of data item or fun. result */ 1 26 3 loc_index fixed bin (18), /* location index of data item or fun. result */ 1 27 3 bit_length fixed bin (18), /* bit length of data item or fun. result */ 1 28 3 assn_ptr ptr, /* pointer to item storage loc. */ 1 29 3 ai_ptr ptr, /* to attr info if database item */ 1 30 3 fn_ptr ptr; /* pointer to function structure if scalar function */ 1 31 1 32 dcl expr_ptr ptr; 1 33 dcl nexp_items_init fixed bin; 1 34 1 35 dcl 1 scalfn aligned based (sfn_ptr), /* internal representation of a scalar function */ 1 36 2 entry_ptr ptr, /* pointer to entry to be called */ 1 37 2 arg_list_ptr ptr, /* pointer to arg list to be used for calling function */ 1 38 2 rslt_desc bit (36), /* descriptor for result */ 1 39 2 nargs fixed bin, /* number of input args */ 1 40 2 arg (nsf_args_init refer (scalfn.nargs)), /* arg info */ 1 41 3 type fixed bin (3) unal, /* 1 => literal 1 42* 2 => database 1 43* 3 => scalar function 1 44* 4 => expression */ 1 45 3 must_convert bit (1) unal, /* on if arg must be converted to match requirements */ 1 46 3 reserved bit (31) unal, 1 47 3 desc bit (36), /* descriptor of data or result */ 1 48 3 loc_index fixed bin (18), /* location index of data item or result */ 1 49 3 bit_length fixed bin (18), /* bit length of data item or result */ 1 50 3 assn_ptr ptr, /* pointer to item storage loc. */ 1 51 3 arg_desc bit (36), /* descriptor for arg if must convert */ 1 52 3 arg_assn_ptr ptr, /* assign_ ptr for arg in must convert */ 1 53 3 ai_ptr ptr, /* to attr info if database item */ 1 54 3 ef_ptr ptr; /* pointer to expression or function structure, or null */ 1 55 1 56 dcl sfn_ptr ptr; 1 57 dcl nsf_args_init fixed bin; 1 58 1 59 dcl ((DATA init (1)), 1 60 (OPERATOR init (2)), 1 61 (SCAL_FUN init (3)), 1 62 (EXPR init (4)), 1 63 (ADD init (1)), 1 64 (SUBT init (2)), 1 65 (MULT init (3)), 1 66 (DIV init (4)), 1 67 (LITERAL init (1)), 1 68 (DATABASE init (2))) fixed bin int static options (constant); 1 69 1 70 dcl CFLTD59 bit (36) aligned int static options (constant) 1 71 init ("100110000000000000000000000000111011"b); 1 72 dcl RFLTD59 bit (36) aligned int static options (constant) 1 73 init ("100101000000000000000000000000111011"b); 1 74 1 75 /* END INCLUDE FILE mrds_expressions.incl.pl1 */ 1 76 114 115 2 1 /* BEGIN mdbm_rm_rel_info.incl.pl1 -- jaw, 11/16/78 */ 2 2 2 3 /* WARNING 2 4* If the rm_rel_info structure is changed then the mrds_data_ 2 5* item saved_res_version MUST be incremented to invalidate all 2 6* existing saved resultants 2 7**/ 2 8 2 9 /* HISTORY: 2 10* 2 11* Modified by Jim Gray - - May 1980, to include model number of 2 12* attributes, and varying attributes, so that partial view 2 13* submodels will have the info needed to properly set up the 2 14* varying length array headers in the tuple structure. 2 15* 2 16* Modified by Jim Gray - - 80-11-06, to rename r_perm = 2 17* status_perm, s_perm = append_tuple_perm, d_perm = 2 18* delete_tuple_perm, and make m_perm = unused_perm. 2 19* 2 20* 81-01-23 Jim Gray : added bit to indicate whether the last model 2 21* view attribute was varying character or bit, since a partial view 2 22* submodel will not have this information in the resultant, and it 2 23* is needed for determining the new tuple length in mus_mod_ubtup, 2 24* since with exact length storage of varying length attributes, 2 25* each tuple can be a different length, which is can only be 2 26* determined by examining the tuple itself. 2 27* 2 28* 81-01-29 Jim Gray : added curent tuple count, to provide for 2 29* interface to allow temp rel population to be known, and to 2 30* provide a more efficient means of finding an approx. current perm 2 31* relation population. 2 32* 2 33* 81-05-28 Jim Gray : removed structure elements referring to 2 34* blocked files, foreign keys, and ids procedures. Also set number 2 35* of files per rel to a constant of 1. 2 36* 2 37* 81-05-28 Jim Gray : combined data from rm_file_info into this 2 38* structure so that only one structure per relation is needed. 2 39* 2 40* 81-07-02 Jim Gray : added total_key and dup_key vfile statistics 2 41* counts. Also added number of operations count since last 2 42* statistics update, and a time since the statistics were last 2 43* updated. 2 44* 2 45* 81-07-06 Jim Gray : added a per selection expression update 2 46* identifier so that small relations could be updated on a per S.E. 2 47* basis 2 48* 2 49* 82-04-21 R. Lackey : Added number_selected (ri_niocbs_init refer (rm_rel_info.niocbs)) fixed bin (35) 2 50* to end of structure TR 12205 (Suggestion). 2 51* 2 52* 82-08-19 D. Woodka : Removed rm_rel_info.max_data_len field for 2 53* the DMS conversion. 2 54* 2 55* 82-08-30 Davids: added the opening_id element and removed the iocb 2 56* array and the niocb element for DMS conversion. Also removed the 2 57* number_selected array (and ri_niocbs_init) since subsets are not 2 58* going to be used. 2 59* 2 60* 82-09-20 Mike Kubicar : changed rm_rel_info.rel_id to bit (36) aligned 2 61* so that it can be used with relation manager. Also added 2 62* rm_rel_info.primary_key_index_id for relation manager. 2 63* 2 64* 82-09-22 Mike Kubicar : Removed the, now useless, fields var_attr_ptrs, 2 65* nvar_atts, model_nvar_atts. 2 66* 2 67* 82-09-24 Davids: Removed current_key_count and current_dup_key_count 2 68* since the duplicate key count for each secondary index is now being 2 69* kept in the attr_info structure and key_count was only needed to 2 70* help in calculating the average selectivity of each index which 2 71* can now be gotten directly from each index's dup key count. Also 2 72* removed the file_id element since it is no longer needed for 2 73* anything. 2 74* 2 75* 82-09-27 Mike Kubicar : removed file_id_len for the same reason file_id 2 76* was removed. 2 77* 2 78* 82-11-05 Mike Kubicar : added a pointer to an id_list structure to be 2 79* used when retrieving tuples from this relation. 2 80* 2 81* 83-04-06 Davids: Added the scope_flags_ptr which points to the scope_flags structure 2 82* for the relation. Note that this structure is part of the resultant NOT 2 83* part of the db.control structure. The scopes are duplicated in the resultant 2 84* to reduce contention for the db.control structure. Note also that the pointer 2 85* will always point to a scope_flags structure even if no scopes have been 2 86* set on the relation, the structure is allocated when the db is opened. 2 87**/ 2 88 2 89 2 90 /* DESCRIPTION: 2 91* 2 92* This structure is allocated in the area part of the structure in 2 93* mdbm_rm_db_info.incl.pl1 as part of the resultant model created 2 94* at open time for a database. There will be one of these 2 95* rm_rel_info structures for each relation appearing in the 2 96* database view (there may be less than the total in the database 2 97* for a submodel openings). There will also be one for each 2 98* temporary relation currently defined for that opening. 2 99* 2 100* The structure in mdbm_rm_rel_array.incl.pl1 contains pointers to 2 101* all rm_rel_info structures allocated. It is used for searching 2 102* for the appropriate structure. This array is pointed to by 2 103* rm_db_info. There are two arrays, one for perm rels, one for temp 2 104* rels. 2 105* 2 106* The rm_rel_info structure points to the 2 107* mdbm_rm_attr_info.incl.pl1 structures, one for each attribute 2 108* appearing in this view of the relation. Each of these in turn 2 109* point to a mdbm_rm_domain_info.incl.pl1 structure for the domain 2 110* info for each attr. 2 111* 2 112* Most of the other information here deals with specifics of the 2 113* relation's logical definition, such as key and secondary index 2 114* attribute inidicators, security permissions, and tuple physical 2 115* construction details. 2 116* 2 117**/ 2 118 2 119 dcl 1 rm_rel_info aligned based (rmri_ptr), /* relation information */ 2 120 2 name char (32), /* from submodel */ 2 121 2 model_name char (30), /* from model */ 2 122 2 rel_id bit (36) aligned, /* unique id. */ 2 123 2 retrieve bit (1) unal, /* operations allowed by this view */ 2 124 2 modify bit (1) unal, 2 125 2 delete bit (1) unal, 2 126 2 store bit (1) unal, 2 127 2 total_key bit (1) unal, /* on if view includes full primary key */ 2 128 2 indexed bit (1) unal, /* on if exists sec. index */ 2 129 2 mdbm_secured bit (1) unal, /* on if mdbm must check security */ 2 130 2 status_perm bit (1) unal, /* if user has status. perm. */ 2 131 2 append_tuple_perm bit (1) unal, /* if user has store perm. */ 2 132 2 delete_tuple_perm bit (1) unal, /* if user has del. perm. */ 2 133 2 unused_perm bit (1) unal, /* for future use. */ 2 134 2 last_model_attr_char_var bit (1) unal, /* on => last model varying attr is char */ 2 135 2 reserved bit (24) unal, /* for future use */ 2 136 2 num_attr fixed bin, /* total no. of attr. in rel. */ 2 137 2 model_num_attr fixed bin, /* total attrs in model relation */ 2 138 2 nkey_attr fixed bin, /* no. of key attr. */ 2 139 2 model_nkey_attr fixed bin, /* total number of keys in model */ 2 140 2 primary_key_index_id bit (36) aligned, /* Index id of relation's primary key */ 2 141 2 nsec_inds fixed bin, /* no. sec. indexes */ 2 142 2 max_key_len fixed bin (35), /* max length (chars) of primary key */ 2 143 2 current_tuple_population fixed bin (35), /* last known total tuple count for this relation */ 2 144 2 last_statistics_update_count fixed bin, /* number of operations's, since this rels stats were updated */ 2 145 2 last_statistics_update_time fixed bin (71),/* last time this rels stats were updated */ 2 146 2 last_statistics_update_s_e_ref_num fixed bin (35), /* last select expr ID that updated this rels stats */ 2 147 2 ready_mode fixed bin, /* 1 => r, 2 => mr, 3 => u, 4 => l, 5 => sr, 6 => su */ 2 148 2 file_type fixed bin, /* 1 => unblocked, 2 => blocked, 3 => temporary */ 2 149 2 tuple_id_len fixed bin, /* no. bits in local tuple id */ 2 150 2 opening_id bit (36) aligned, /* relation manager opening is */ 2 151 2 key_attr_ptrs (nkey_attr_init refer (rm_rel_info.nkey_attr)) ptr, /* ptrs to key attr. */ 2 152 2 attr_ptrs (natts_init refer (rm_rel_info.num_attr)) ptr, /* ptrs to all attr. */ 2 153 2 id_list_ptr ptr, /* Id list for retrieves from the relation */ 2 154 2 scope_flags_ptr ptr; /* pointer to the scope_flags structure for the rel */ 2 155 2 156 dcl rmri_ptr ptr; 2 157 dcl (nkey_attr_init, 2 158 natts_init, 2 159 nvar_atts_init) fixed bin; 2 160 2 161 /* END mdbm_rm_rel_info.incl.pl1 */ 2 162 2 163 116 117 3 1 /* BEGIN mdbm_rm_attr_info.incl.pl1 -- jaw, 11/16/78 */ 3 2 3 3 /* WARNING 3 4* If the rm_attr_info structure is changed then the mrds_data_ 3 5* item saved_res_version MUST be incremented to invalidate all 3 6* existing saved resultants 3 7**/ 3 8 3 9 /* 3 10* 3 11* Modified by Jim Gray - - 80-11-05, to add mdbm_secured bit, so 3 12* that rm_rel_info does not have to be checked 3 13* 3 14* 81-05-28 Jim Gray : removed structure elements referring to 3 15* foreign keys. 3 16* 3 17* 82-08-19 D. Woodka : removed rm_attr_info.bit_offset for the DMS 3 18* conversion. 3 19* 3 20* 82-09-15 Davids: added the number_of_dups field. 3 21* 3 22* 82-09-20 Mike Kubicar : changed the index_id field to be bit (36) 3 23* aligned. This is to conform with the new definition in the database 3 24* model. Also removed the now useless field varying. 3 25* 3 26* 82-11-05 Davids: added the field model_defn_order and clarified the 3 27* comment for the field defn_order. 3 28* 3 29* 83-05-23 Mike Kubicar : changed number_of_dups to fixed bin (35) since 3 30* that's what relation manager returns. 3 31* 3 32**/ 3 33 3 34 3 35 /* 3 36* this structure is allocated in the static area of 3 37* mdbm_rm_db_info.incl.pl1 once for each attribute per relation in 3 38* a readied file. it in turn points to 3 39* mdbm_rm_domain_info.incl.pl1 for the attributes domain. the 3 40* rm_attr_info is pointed to by mdbm_rm_rel_info.incl.pl1. all 3 41* structures are in the rm_db_info area. the attribute data 3 42* position within a tuple as stored in the data file are kept in 3 43* this resultant model of the attribute. 3 44* */ 3 45 3 46 dcl 1 rm_attr_info aligned based (rai_ptr), /* resultant attr. info */ 3 47 2 name char (32), /* from submodel */ 3 48 2 model_name char (32), /* from model */ 3 49 2 key_attr bit (1) unal, /* if key attribute */ 3 50 2 index_attr bit (1) unal, /* if secondary index */ 3 51 2 read_perm bit (1) unal, /* user has retr. permission */ 3 52 2 modify_perm bit (1) unal, /* user has modify permission */ 3 53 2 mdbm_secured bit (1) unal, /* on => database secured */ 3 54 2 reserved bit (30) unal, /* for future use */ 3 55 2 index_id bit (36) aligned, /* index id if index_attr */ 3 56 2 defn_order fixed bin, /* relative order in which attr is defined in the view */ 3 57 2 key_order fixed bin, /* relative order defined in prim. key */ 3 58 2 bit_length fixed bin (35), /* length if fixed, max. len. if var. */ 3 59 2 domain_ptr ptr, /* to domain info */ 3 60 2 number_of_dups fixed bin (35), /* if the attribute is indexed this will 3 61* be the number of duplicate values, exact 3 62* for a page_file database, an estimate for a vfile type */ 3 63 2 model_defn_order fixed bin; /* relative order in which attr is defined in the model */ 3 64 3 65 dcl rai_ptr ptr int automatic init (null ()); 3 66 3 67 /* END mdbm_rm_attr_info.incl.pl1 */ 3 68 3 69 118 119 4 1 /* *********************************************************** 4 2* * * 4 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4 4* * * 4 5* *********************************************************** */ 4 6 /* BEGIN INCLUDE FILE - vu_typed_vector.incl.pl1 */ 4 7 4 8 /* Written by Lindsey Spratt, 04/02/82. 4 9*Modified: 4 10*09/01/82 by Lindsey Spratt: Changed value_ptr in simple_typed_vector to be 4 11* unaligned. Changed the type number of the simple_typed_vector to 4 12* "3" from "1". The OLD_SIMPLE_TYPED_VECTOR_TYPE is now an invalid 4 13* type. 4 14**/ 4 15 4 16 /* format: style2,ind3 */ 4 17 dcl 1 simple_typed_vector based (simple_typed_vector_ptr), 4 18 2 type fixed bin (17) unal, 4 19 2 number_of_dimensions 4 20 fixed bin (17) unal, 4 21 2 dimension (stv_number_of_dimensions refer (simple_typed_vector.number_of_dimensions)), 4 22 3 value_ptr ptr unaligned; 4 23 4 24 dcl 1 general_typed_vector based (general_typed_vector_ptr), 4 25 2 type fixed bin (17) unal, 4 26 2 number_of_dimensions 4 27 fixed bin (17) unal, 4 28 2 dimension (gtv_number_of_dimensions refer (general_typed_vector.number_of_dimensions)), 4 29 3 identifier fixed bin (17) unal, 4 30 3 pad bit (18) unal, 4 31 3 value_ptr ptr unal; 4 32 4 33 dcl simple_typed_vector_ptr 4 34 ptr; 4 35 dcl stv_number_of_dimensions 4 36 fixed bin (17); 4 37 4 38 dcl general_typed_vector_ptr 4 39 ptr; 4 40 dcl gtv_number_of_dimensions 4 41 fixed bin (17); 4 42 4 43 dcl ( 4 44 OLD_SIMPLE_TYPED_VECTOR_TYPE 4 45 FMCTL_1 )Hussein Multics zvdRRHussein Multics c@?S;-DGHowe Multics c2CSN%`Vu Multics OLJS tp^Hoover Multics ǍSai 22B0Hinatsu Multics ް NjSQN`AWTaylor Multics ǛS%|Kittlitz Multics ߷@ǢS'YHindbo Multics sǬS#B~x Fournier Multics wǟS#j,\ J Palmer Multics @So=4ZFF.  Samanani Multics u@S"bt  Zimmerman Multics S\S  Durand Multics @SIWF RWaters Multics emfSxWnvdRosin Operator @SB̽,H6Henry Multics US^/HZMiko Multics @JCTvWAAnderson SysMaint :VS0 *hFlegel Multics Sv@~PANakaska Multics gSRnb1 ref 82 must_convert 6(04) based bit(1) array level 3 packed unaligned dcl 1-35 ref 59 nargs 5 based fixed bin(17,0) level 2 dcl 1-35 ref 48 null builtin function dcl 105 ref 3-65 rai_ptr 000102 automatic pointer initial dcl 3-65 set ref 3-65* 80* 82* 82 rm_attr_info based structure level 1 dcl 3-46 rmri_ptr parameter pointer dcl 2-156 set ref 18 49* 52* scalfn based structure level 1 dcl 1-35 sfn_ptr parameter pointer dcl 1-56 ref 18 48 49 49 52 52 55 59 59 59 59 59 59 59 69 69 80 82 82 82 simple_typed_vector based structure level 1 packed unaligned dcl 4-17 simple_typed_vector_ptr parameter pointer dcl 4-33 set ref 18 49* 52* 82 type 6 based fixed bin(3,0) array level 3 packed unaligned dcl 1-35 ref 49 52 55 value_ptr 1 based pointer array level 3 packed unaligned dcl 4-17 ref 82 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ADD internal static fixed bin(17,0) initial dcl 1-59 CFLTD59 internal static bit(36) initial dcl 1-70 DATA internal static fixed bin(17,0) initial dcl 1-59 DIV internal static fixed bin(17,0) initial dcl 1-59 GENERAL_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 4-43 LITERAL internal static fixed bin(17,0) initial dcl 1-59 MULT internal static fixed bin(17,0) initial dcl 1-59 OLD_SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 4-43 OPERATOR internal static fixed bin(17,0) initial dcl 1-59 RFLTD59 internal static bit(36) initial dcl 1-72 SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 4-43 SUBT internal static fixed bin(17,0) initial dcl 1-59 expr based structure level 1 dcl 1-11 expr_ptr automatic pointer dcl 1-32 general_typed_vector based structure level 1 packed unaligned dcl 4-24 general_typed_vector_ptr automatic pointer dcl 4-38 gtv_number_of_dimensions automatic fixed bin(17,0) dcl 4-40 natts_init automatic fixed bin(17,0) dcl 2-157 nexp_items_init automatic fixed bin(17,0) dcl 1-33 nkey_attr_init automatic fixed bin(17,0) dcl 2-157 nsf_args_init automatic fixed bin(17,0) dcl 1-57 nvar_atts_init automatic fixed bin(17,0) dcl 2-157 rm_rel_info based structure level 1 dcl 2-119 stv_number_of_dimensions automatic fixed bin(17,0) dcl 4-35 NAMES DECLARED BY EXPLICIT CONTEXT. error 000246 constant entry internal dcl 89 ref 57 65 exit 000177 constant label dcl 73 ref 96 get_db_item 000200 constant entry internal dcl 76 ref 55 mrds_dsl_eval_func 000011 constant entry external dcl 18 ref 52 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 352 372 260 362 Length 640 260 20 232 71 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrds_dsl_eval_func 120 external procedure is an external procedure. get_db_item internal procedure shares stack frame of external procedure mrds_dsl_eval_func. error internal procedure shares stack frame of external procedure mrds_dsl_eval_func. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mrds_dsl_eval_func 000100 i mrds_dsl_eval_func 000101 icode mrds_dsl_eval_func 000102 rai_ptr mrds_dsl_eval_func THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_in call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$gen_call mrds_dsl_eval_expr mu_convert$convert_data mu_get_data$get_data_item NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000004 103 000016 3 65 000017 48 000021 49 000033 52 000066 55 000110 57 000113 59 000117 65 000153 67 000157 69 000161 71 000175 73 000177 76 000200 80 000201 82 000210 87 000245 89 000246 95 000250 96 000253 ----------------------------------------------------------- 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