COMPILATION LISTING OF SEGMENT rcm_create_collection Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0957.9 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /* DESCRIPTION 9* Creates an empty record collection in the given page file with the 10*fields specified in typed_vector_array. A record collection identifier is 11*assigned for referencing this collection which is the index of the 12*collection in the collmr_header.collection array for this page file. The 13*record_collection_header contains the element_id of the field 14*table for this collection. 15**/ 16 17 /* HISTORY: 18*Written by Matthew Pierret, 04/01/82. 19*Modified: 20*04/22/82 by Matthew Pierret: Changed to use data_mgmt_util_$cv_typed_array_to_table 21* instead of dmu_build_field_table. 22*04/28/82 by Matthew Pierret: Changed calling sequence to accept p_cism_info_ptr 23* and p_esm_info_ptr so that the caller can specify what storage 24* methods to use. Defaults are UCISM and Unthreaded BESM. 25*12/07/82 by Matthew Pierret: Changed to call FINISH before returning in the 26* normal case. Changed to define an area with the no_freeing bit off. 27*03/16/83 by Matthew Pierret: Added use of ERROR_RETURN, local structures 28* instead of allocated ones, cleanup handler, get_dm_free_area_, 29* RECORD_COLLECTION_HEADER_VERSION_2. 30*03/24/83 by Lindsey Spratt: Changed to use version 2 of the field_table, and 31* to check its version number. 32*07/28/83 by Matthew Pierret: Changed name from rm_create_collection to 33* rcm_create_collection, and all rm_ prefixes to rcm_. 34* Also changed to set basic_esm_info.fixed_length to "1"b if there 35* are no varying fields. 36*05/04/84 by Matthew Pierret: Changed to use FIELD_TABLE_VERSION_3, to use 37* data_format_util_ instead of data_mgmt_util_ and to remove un-used 38* builtin declarations. 39*05/20/84 by Matthew Pierret: Changed to use (ESM CISM)_INFO_VERSION_1 40* structures. Changed name of include files dm_cm_(esm cism)_info 41* to dm_(esm cism)_info. 42*06/12/84 by Matthew Pierret: Re-named cm_$allocate_element to cm_$put. 43**/ 44 45 /* format: style2 */ 46 47 rcm_create_collection: 48 proc (p_file_opening_id, p_typed_vector_array_ptr, p_cism_info_ptr, p_esm_info_ptr, p_record_collection_id, p_code); 49 50 51 /* START OF DECLARATIONS */ 52 /* Parameter */ 53 54 dcl p_file_opening_id bit (36) aligned; 55 dcl p_typed_vector_array_ptr 56 ptr; 57 dcl p_cism_info_ptr ptr; 58 dcl p_esm_info_ptr ptr; 59 dcl p_record_collection_id bit (36) aligned; 60 dcl p_code fixed bin (35); 61 62 /* Automatic */ 63 64 dcl (file_opening_id, record_collection_id, field_table_element_id) 65 bit (36) aligned init ("0"b); 66 dcl maximum_element_length fixed bin (35); 67 dcl work_area_ptr ptr init (null); 68 69 dcl 1 local_record_collection_header 70 aligned like record_collection_header; 71 dcl 1 local_unblocked_cism_info 72 aligned like unblocked_cism_info; 73 dcl 1 local_basic_esm_info aligned like basic_esm_info; 74 75 /* Based */ 76 77 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 78 79 /* Builtin */ 80 81 dcl (addr, null, length, unspec) 82 builtin; 83 84 /* Condition */ 85 86 dcl cleanup condition; 87 88 /* Constant */ 89 90 dcl myname init ("rcm_create_collection") char (32) varying int static options (constant); 91 92 /* Entry */ 93 94 dcl data_format_util_$cv_typed_array_to_table 95 entry (ptr, ptr, ptr, fixed bin (35), fixed bin (35)); 96 dcl get_dm_free_area_ entry () returns (ptr); 97 dcl sub_err_ entry () options (variable); 98 99 /* External */ 100 101 dcl error_table_$unimplemented_version 102 fixed bin (35) ext static; 103 104 dcl sys_info$max_seg_size ext fixed bin (35); 105 106 /* END OF DECLARATIONS */ 107 108 p_code = 0; 109 p_record_collection_id = "0"b; 110 111 file_opening_id = p_file_opening_id; 112 typed_vector_array_ptr = p_typed_vector_array_ptr; 113 field_table_ptr = null; 114 115 if p_cism_info_ptr ^= null 116 then unblocked_cism_info_ptr = p_cism_info_ptr; 117 else do; 118 unblocked_cism_info_ptr = addr (local_unblocked_cism_info); 119 unblocked_cism_info.version = CISM_INFO_VERSION_1; 120 unblocked_cism_info.type = UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD; 121 unblocked_cism_info.must_be_zero = 0; 122 end; 123 if p_esm_info_ptr ^= null 124 then do; 125 basic_esm_info_ptr = p_esm_info_ptr; 126 call CHECK_VERSION_CHAR (ESM_INFO_VERSION_1, basic_esm_info.version, "esm_info"); 127 end; 128 else do; 129 basic_esm_info_ptr = addr (local_basic_esm_info); 130 basic_esm_info.version = ESM_INFO_VERSION_1; 131 basic_esm_info.type = BASIC_ELEMENT_STORAGE_METHOD; 132 basic_esm_info.flags.threaded = "0"b; 133 basic_esm_info.flags.fixed_length = "0"b; 134 basic_esm_info.flags.pad = "0"b; 135 basic_esm_info.maximum_element_length = -1; 136 end; 137 138 on cleanup call FINISH (); 139 140 work_area_ptr = get_dm_free_area_ (); 141 142 ft_length_of_field_names, ft_number_of_fields = 0;/* So compiler won't complain */ 143 144 call data_format_util_$cv_typed_array_to_table (typed_vector_array_ptr, work_area_ptr, field_table_ptr, 145 maximum_element_length, p_code); 146 if p_code ^= 0 147 then call ERROR_RETURN; 148 149 call CHECK_VERSION_CHAR (field_table.version, FIELD_TABLE_VERSION_3, "field_table"); 150 151 if field_table.varying_field_map (1).field_id = 0 /* No varying fields */ 152 then basic_esm_info.flags.fixed_length = "1"b; 153 154 basic_esm_info.maximum_element_length = maximum_element_length; 155 156 call collection_manager_$create_collection (file_opening_id, unblocked_cism_info_ptr, basic_esm_info_ptr, 157 record_collection_id, p_code); 158 if p_code ^= 0 159 then call ERROR_RETURN; 160 161 162 call collection_manager_$put (file_opening_id, HEADER_COLLECTION_ID, field_table_ptr, 163 length (unspec (field_table)), field_table_element_id, (0), p_code); 164 if p_code ^= 0 165 then call ERROR_RETURN; 166 167 record_collection_header_ptr = addr (local_record_collection_header); 168 169 record_collection_header.version = RECORD_COLLECTION_HEADER_VERSION_2; 170 record_collection_header.field_table_element_id = field_table_element_id; 171 172 call collection_manager_$put_header (file_opening_id, record_collection_id, record_collection_header_ptr, 173 length (unspec (record_collection_header)), p_code); 174 if p_code ^= 0 175 then call ERROR_RETURN; 176 177 178 p_record_collection_id = record_collection_id; 179 180 call FINISH (); 181 182 MAIN_RETURN: 183 return; 184 185 186 ERROR_RETURN: 187 proc (); 188 189 call FINISH (); 190 goto MAIN_RETURN; 191 192 end ERROR_RETURN; 193 194 195 FINISH: 196 proc; 197 198 if work_area_ptr ^= null 199 then if field_table_ptr ^= null 200 then free field_table in (work_area); 201 202 end FINISH; 203 204 CHECK_VERSION_CHAR: 205 proc (p_expected_version, p_received_version, p_structure_name); 206 207 dcl (p_expected_version, p_received_version) 208 char (8) aligned; 209 dcl p_structure_name char (*) parameter; 210 211 if p_expected_version ^= p_received_version 212 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 213 "^/Expected version ^a of the ^a structure. 214 Received version ^a, instead.", p_expected_version, p_structure_name, p_received_version); 215 end CHECK_VERSION_CHAR; 216 1 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 1 2 /* format: style3 */ 1 3 1 4 /* These constants are to be used for the flags argument of sub_err_ */ 1 5 /* They are just "string (condition_info_header.action_flags)" */ 1 6 1 7 declare ( 1 8 ACTION_CAN_RESTART init (""b), 1 9 ACTION_CANT_RESTART init ("1"b), 1 10 ACTION_DEFAULT_RESTART 1 11 init ("01"b), 1 12 ACTION_QUIET_RESTART 1 13 init ("001"b), 1 14 ACTION_SUPPORT_SIGNAL 1 15 init ("0001"b) 1 16 ) bit (36) aligned internal static options (constant); 1 17 1 18 /* End include file */ 217 218 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 2 4* * * 2 5* *********************************************************** */ 2 6 /* BEGIN INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 2 7 2 8 /* Written by Lindsey Spratt, 03/04/82. 2 9*Modified: 2 10*06/23/82 by Lindsey Spratt: Changed to version 2. The cv entry declarations 2 11* were altered. cv_to_typed now takes ptr to the descriptor, ptr to 2 12* the print_vector value (char varying), ptr to the typed_vector 2 13* value location, and a code. cv_to_print now takes ptr to the 2 14* descriptor, ptr to the typed_vector value, the print_vector value 2 15* (char(*) varying), the maximum allowed length for the print_vector 2 16* value, a temp_seg to put the value in if its to big to fit into 2 17* the print_vector, and a code. 2 18**/ 2 19 2 20 /* format: style2,ind3 */ 2 21 dcl 1 typed_vector_array based (typed_vector_array_ptr) aligned, 2 22 2 version fixed bin (35), 2 23 2 number_of_dimensions 2 24 fixed bin (17), 2 25 2 number_of_vectors fixed bin (17), 2 26 2 number_of_vector_slots 2 27 fixed bin (17), 2 28 2 maximum_dimension_name_length 2 29 fixed bin (17), 2 30 2 dimension_table (tva_number_of_dimensions refer (typed_vector_array.number_of_dimensions)), 2 31 3 name char (tva_maximum_dimension_name_length 2 32 refer (typed_vector_array.maximum_dimension_name_length)) varying, 2 33 3 descriptor_ptr ptr, /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 2 34 /* temp_seg_ptr, max_length_for_print_value, */ 2 35 /* print_value, code) */ 2 36 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 2 37 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 2 38 /* print_value_ptr, typed_value_ptr, code) */ 2 39 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)), 2 40 2 vector_slot (tva_number_of_vector_slots refer (typed_vector_array.number_of_vector_slots)) 2 41 pointer; 2 42 2 43 dcl typed_vector_array_ptr ptr; 2 44 dcl tva_number_of_vector_slots 2 45 fixed bin; 2 46 dcl tva_number_of_dimensions 2 47 fixed bin; 2 48 dcl tva_maximum_dimension_name_length 2 49 fixed bin; 2 50 dcl TYPED_VECTOR_ARRAY_VERSION_2 2 51 fixed bin (35) int static options (constant) init (2); 2 52 2 53 /* END INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 219 220 3 1 /* BEGIN INCLUDE FILE - dm_rcm_header.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4**/ 3 5 3 6 /* HISTORY: 3 7*Written by Matthew Pierret, 05/01/82. 3 8*Modified: 3 9*03/15/83 by Matthew Pierret: Changed to use char(8) version. 3 10*07/28/83 by Matthew Pierret: Changed name from dm_rm_header.incl.pl1 to 3 11* dm_rcm_header.incl.pl1. 3 12**/ 3 13 3 14 /* format: style2 */ 3 15 dcl 1 record_collection_header 3 16 aligned based (record_collection_header_ptr), 3 17 2 version char (8) init (RECORD_COLLECTION_HEADER_VERSION_2), 3 18 2 field_table_element_id 3 19 bit (36) aligned init ("0"b); 3 20 3 21 dcl record_collection_header_ptr 3 22 ptr init (null); 3 23 dcl RECORD_COLLECTION_HEADER_VERSION_2 3 24 char (8) aligned init ("rc_hdr_2") internal static options (constant); 3 25 3 26 /* END INCLUDE FILE - dm_rcm_header.incl.pl1 */ 221 222 4 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 4 2 4 3 /* DESCRIPTION: 4 4* 4 5* The field_table describes the layout of a set of fields in a 4 6* formatted data string. Such a string is the stored representation of a 4 7* record or a key. Fields are placed side-by-side in the string in the 4 8* order they appear in the field_table.field array. The string is divided 4 9* into the fixed portion and the varying portion. In the fixed portion 4 10* appear fixed-length fields and fixed-size length-fields for 4 11* varying-length fields. In the varying portion appear varying length 4 12* fields. The length-field for a varying-length field contains the length 4 13* of the field values either in bits or in characters, depending on the 4 14* data type of the field. 4 15**/ 4 16 4 17 /* HISTORY: 4 18*Written by Matthew Pierret, 04/01/82. 4 19*Modified: 4 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 4 21* that if the field is varying, its length is expressed in 4 22* bytes/characters. 4 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 4 24* of 17, changed version to 2, changed version field to char(8) from 4 25* fixed bin (17). 4 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 4 27* put field names in one string (field_names) at the end of the 4 28* structure. Added field.location_of_name and field.length_of_name 4 29* for locating the field name in field_names. Aligned all "fixed bin" 4 30* structure elements. Changed maximum_field_name_length to 4 31* length_of_field_names. 4 32**/ 4 33 4 34 /* format: style2 */ 4 35 4 36 dcl 1 field_table aligned based (field_table_ptr), 4 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 4 38 2 number_of_fields fixed bin (17), 4 39 2 length_of_field_names 4 40 fixed bin (17), /* length of field_names in characters */ 4 41 2 location_of_first_varying_field 4 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 4 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 4 44 3 flags aligned, 4 45 4 descriptor_is_varying 4 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 4 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 4 48 /* containing the id of the element in which the descriptor is stored. */ 4 49 4 length_is_in_characters 4 50 bit (1) unal, /* if field is varying, the length field describes its length */ 4 51 /* in characters instead of in bits */ 4 52 4 must_be_zero bit (34) unal, 4 53 3 descriptor bit (36) aligned, 4 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 4 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 4 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 4 57 3 length_of_name fixed bin (17), /* length of name in characters */ 4 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 4 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 4 60 3 varying_field_index 4 61 fixed bin (17), /* ordinality among varying fields of field N */ 4 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 4 63 4 64 4 65 dcl field_table_ptr ptr; 4 66 dcl ft_length_of_field_names 4 67 fixed bin; 4 68 dcl ft_number_of_fields fixed bin; 4 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 4 70 4 71 dcl field_name char (field_name_length) based (field_name_ptr); 4 72 4 73 dcl field_name_length fixed bin; 4 74 dcl field_name_ptr ptr; 4 75 4 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 223 224 5 1 /* BEGIN INCLUDE FILE dm_cism_info.incl.pl1 */ 5 2 5 3 /* DESCRIPTION: 5 4* 5 5* This include file contains the blocked_cism_info and unblocked_cism_info 5 6* structures, as well as constants relevant to control interval storage 5 7* management. These structures and constants are used by several managers. 5 8* The structures each describe a method of control interval storage 5 9* management. 5 10**/ 5 11 5 12 /* HISTORY: 5 13* 5 14*Written 02/07/82 by Matthew Pierret. 5 15*Modified: 5 16*05/17/84 by Matthew Pierret: Changed to align structure elements and add 5 17* a version string. 5 18**/ 5 19 5 20 /* format: style2 */ 5 21 5 22 dcl 1 blocked_cism_info based (blocked_cism_info_ptr) aligned, 5 23 2 version char (8) aligned init (CISM_INFO_VERSION_1), 5 24 2 type fixed bin (17) init (BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD), 5 25 2 number_of_control_intervals_per_block 5 26 fixed bin (17); 5 27 5 28 dcl 1 unblocked_cism_info based (unblocked_cism_info_ptr) aligned, 5 29 2 version char (8) aligned init (CISM_INFO_VERSION_1), 5 30 2 type fixed bin (17) init (UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD), 5 31 2 must_be_zero fixed bin (17); 5 32 5 33 dcl blocked_cism_info_ptr ptr; 5 34 dcl unblocked_cism_info_ptr 5 35 ptr; 5 36 5 37 dcl CISM_INFO_VERSION_1 init ("CISMinf1") char (8) aligned internal static options (constant); 5 38 dcl BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 5 39 fixed bin init (1) internal static options (constant); 5 40 dcl UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 5 41 fixed bin init (2) internal static options (constant); 5 42 5 43 /* END INCLUDE FILE dm_cism_info.incl.pl1 ---------- */ 225 226 6 1 /* BEGIN INCLUDE FILE dm_esm_info.incl.pl1 */ 6 2 6 3 /* DESCRIPTION: 6 4* 6 5* This include file contains the basic_esm_info and ordered_esm_info 6 6* structures, as well as constants used to distinguish element storage 6 7* methods. They are used by several managers to describe the type of 6 8* element storage management to be used in a collection. 6 9**/ 6 10 6 11 /* HISTORY: 6 12*Written 02/07/82 by Matthew Pierret. 6 13*Modified: 6 14*05/17/84 by Matthew Pierret: Changed name from dm_cm_esm_info (the cm_ 6 15* dropped because the include file is used by multiple managers), 6 16* to align structure elements and to add a version string. 6 17**/ 6 18 6 19 /* format: style2 */ 6 20 6 21 dcl 1 basic_esm_info based (basic_esm_info_ptr) aligned, 6 22 2 version char (8) aligned init (ESM_INFO_VERSION_1), 6 23 2 type fixed bin (17) init (BASIC_ELEMENT_STORAGE_METHOD), 6 24 2 flags aligned, 6 25 3 threaded bit (1) unal, 6 26 3 fixed_length bit (1) unal, 6 27 3 pad bit (34) unal, 6 28 2 maximum_element_length 6 29 fixed bin (35); 6 30 6 31 dcl 1 ordered_esm_info based (ordered_esm_info_ptr) aligned, 6 32 2 version char (8) aligned init (ESM_INFO_VERSION_1), 6 33 2 type fixed bin (17) init (ORDERED_ELEMENT_STORAGE_METHOD), 6 34 2 flags aligned, 6 35 3 fixed_length bit (1) unal, 6 36 3 pad bit (35) unal, 6 37 2 maximum_element_length 6 38 fixed bin (35); 6 39 6 40 dcl basic_esm_info_ptr ptr; 6 41 dcl ordered_esm_info_ptr ptr; 6 42 6 43 dcl ESM_INFO_VERSION_1 init ("ESMinfo1") char (8) aligned internal static options (constant); 6 44 dcl BASIC_ELEMENT_STORAGE_METHOD 6 45 fixed bin init (1) internal static options (constant); 6 46 dcl ORDERED_ELEMENT_STORAGE_METHOD 6 47 fixed bin init (2) internal static options (constant); 6 48 6 49 6 50 /* END INCLUDE FILE dm_esm_info.incl.pl1 */ 227 228 7 1 /* BEGIN INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 7 2 7 3 /* DESCRIPTION: 7 4* This include file contains declarations of all collection_manager_ 7 5* entrypoints. 7 6**/ 7 7 7 8 /* HISTORY: 7 9*Written by Matthew Pierret 7 10*Modified: 7 11*04/14/82 by Lindsey Spratt: Changed the control_interval_id parameter of the 7 12* allocate_control_interval operation to be unaligned, as well as 7 13* unsigned. 7 14*06/17/82 by Matthew Pierret: Added the put_element_portion opertion and 7 15* removed the beginning_location parameter from the put_element 7 16* operation. Added the create_page_file_operation. 7 17*08/09/82 by Matthew Pierret: Changed "fixed bin (17)"s to "bit (36) aligned"s 7 18* wherever collection_id was required. 7 19* Also changed the control_interval_id parameter of the 7 20* allocate_control_interval operation back to be aligned. So there. 7 21*10/20/82 by Matthew Pierret: Changed $create_page_file to $create_file, 7 22* added the argument file_create_info_ptr to $create_file. 7 23*12/13/82 by Lindsey Spratt: Corrected $free_control_interval to 7 24* include the zero_on_free bit. 7 25*12/17/82 by Matthew Pierret: Added cm_$get_id. 7 26*01/07/83 by Matthew Pierret: Added cm_$put_element_buffered, 7 27* cm_$allocate_element_buffered, cm_$free_element_buffered. 7 28*04/27/83 by Matthew Pierret: Added cm_$put_unprotected_element, 7 29* cm_$put_unprotected_header. 7 30*11/07/83 by Matthew Pierret: Added $get_element_portion_buffered, 7 31* $simple_get_buffered_element. 7 32*02/08/84 by Matthew Pierret: Changed $get_id to have only one bit(1)aligned 7 33* parameter for specifying absolute/relative nature of search. 7 34*03/16/84 by Matthew Pierret: Added cm_$get_control_interval_ptr, 7 35* $get_element_ptr, $get_element_portion_ptr, $simple_get_element_ptr 7 36*04/03/84 by Matthew Pierret: Added cm_$compact_control_interval. 7 37*06/06/84 by Matthew Pierret: Re-named free_element* to delete and 7 38* delete_from_ci_buffer. 7 39* Re-named *_buffered_ci to =_ci_buffer. 7 40* get entries. 7 41* modify entries. 7 42* Changed calling sequence of modify entries to have a ptr/length 7 43* instead of length/ptr parameter pair. 7 44*03/11/85 by R. Michael Tague: Added $postcommit_increments. 7 45**/ 7 46 7 47 /* This include file contains declarations of collection_manager_ entrypoints */ 7 48 7 49 /* format: style2,ind3 */ 7 50 dcl collection_manager_$allocate_control_interval 7 51 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, fixed bin (35)); 7 52 dcl collection_manager_$compact_control_interval 7 53 entry (bit (36) aligned, fixed bin (24) uns, fixed bin (35)); 7 54 dcl collection_manager_$create_collection 7 55 entry (bit (36) aligned, ptr, ptr, bit (36) aligned, fixed bin (35)); 7 56 dcl collection_manager_$create_file 7 57 entry (char (*), char (*), ptr, bit (36) aligned, fixed bin (35)); 7 58 dcl collection_manager_$destroy_collection 7 59 entry (bit (36) aligned, bit (36) aligned, fixed bin (35)); 7 60 dcl collection_manager_$free_control_interval 7 61 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, bit (1) aligned, 7 62 fixed bin (35)); 7 63 7 64 dcl collection_manager_$delete 7 65 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 7 66 fixed bin (35)); 7 67 dcl collection_manager_$delete_from_ci_buffer 7 68 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 7 69 fixed bin (35)); 7 70 7 71 dcl collection_manager_$get 7 72 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), ptr, 7 73 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 7 74 dcl collection_manager_$get_control_interval_ptr 7 75 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, ptr, 7 76 fixed bin (35)); 7 77 dcl collection_manager_$get_from_ci_buffer 7 78 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 7 79 ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 7 80 dcl collection_manager_$get_by_ci_ptr 7 81 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 7 82 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), ptr, fixed bin (35)); 7 83 dcl collection_manager_$get_header 7 84 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (17), ptr, bit (1) aligned, 7 85 ptr, fixed bin (35), fixed bin (35)); 7 86 dcl collection_manager_$get_id 7 87 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), 7 88 bit (1) aligned, bit (36) aligned, fixed bin (35)); 7 89 dcl collection_manager_$get_portion 7 90 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 7 91 fixed bin (35), ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, 7 92 fixed bin (35), fixed bin (35)); 7 93 dcl collection_manager_$get_portion_from_ci_buffer 7 94 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 7 95 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 7 96 fixed bin (35)); 7 97 dcl collection_manager_$get_portion_by_ci_ptr 7 98 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 7 99 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 7 100 fixed bin (35)); 7 101 dcl collection_manager_$modify 7 102 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 7 103 fixed bin (35), fixed bin (35)); 7 104 dcl collection_manager_$modify_unprotected 7 105 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 7 106 fixed bin (35), fixed bin (35)); 7 107 dcl collection_manager_$modify_in_ci_buffer 7 108 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 7 109 fixed bin (35), fixed bin (35)); 7 110 dcl collection_manager_$modify_portion 7 111 entry (bit (36) aligned, bit (36) aligned, fixed bin (35), fixed bin (35), ptr, 7 112 fixed bin (35), bit (36) aligned, fixed bin (35), fixed bin (35)); 7 113 dcl collection_manager_$postcommit_increments 7 114 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35)); 7 115 dcl collection_manager_$put 7 116 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 7 117 fixed bin (35), fixed bin (35)); 7 118 dcl collection_manager_$put_in_ci_buffer 7 119 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 7 120 fixed bin (35), fixed bin (35)); 7 121 dcl collection_manager_$put_header 7 122 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 7 123 dcl collection_manager_$put_unprotected_header 7 124 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 7 125 7 126 dcl collection_manager_$replace_ci_buffer 7 127 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 7 128 fixed bin (35)); 7 129 dcl collection_manager_$setup_ci_buffer 7 130 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 7 131 fixed bin (35)); 7 132 dcl collection_manager_$simple_get_by_ci_ptr 7 133 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 7 134 fixed bin (35)); 7 135 dcl collection_manager_$simple_get_from_ci_buffer 7 136 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 7 137 fixed bin (35)); 7 138 7 139 /* END INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 229 230 8 1 /* BEGIN INCLUDE FILE - dm_hdr_collection_id.incl.pl1 */ 8 2 8 3 /* DESCRIPTION: 8 4* 8 5* Contains the identifier of the Header Collection for a file 8 6* managed by the collection_manager_. This is used by callers of 8 7* collection_manager who wish to maintain their own file header or who wish 8 8* to maintain their own collection header information beyond the caller 8 9* collection header provided by colleciton_manager_$(get put)_header. 8 10**/ 8 11 8 12 /* HISTORY: 8 13*Written by Matthew Pierret, 09/24/84. 8 14*Modified: 8 15**/ 8 16 8 17 /* format: style2,ind3,ll79 */ 8 18 8 19 dcl HEADER_COLLECTION_ID init ("000000000001"b3) bit (36) 8 20 aligned internal static options (constant); 8 21 8 22 /* END INCLUDE FILE - dm_hdr_collection_id.incl.pl1 */ 231 232 233 end rcm_create_collection; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0913.6 rcm_create_collection.pl1 >spec>on>7192.pbf-04/04/85>rcm_create_collection.pl1 217 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 219 2 10/14/83 1609.1 vu_typed_vector_array.incl.pl1 >ldd>include>vu_typed_vector_array.incl.pl1 221 3 01/07/85 0901.6 dm_rcm_header.incl.pl1 >ldd>include>dm_rcm_header.incl.pl1 223 4 01/07/85 0858.8 dm_field_table.incl.pl1 >ldd>include>dm_field_table.incl.pl1 225 5 01/07/85 0858.0 dm_cism_info.incl.pl1 >ldd>include>dm_cism_info.incl.pl1 227 6 01/07/85 0858.5 dm_esm_info.incl.pl1 >ldd>include>dm_esm_info.incl.pl1 229 7 04/04/85 0819.0 dm_collmgr_entry_dcls.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_collmgr_entry_dcls.incl.pl1 231 8 01/07/85 0858.8 dm_hdr_collection_id.incl.pl1 >ldd>include>dm_hdr_collection_id.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. ACTION_CANT_RESTART 000025 constant bit(36) initial dcl 1-7 set ref 211* BASIC_ELEMENT_STORAGE_METHOD constant fixed bin(17,0) initial dcl 6-44 ref 73 131 CISM_INFO_VERSION_1 000002 constant char(8) initial dcl 5-37 ref 71 119 ESM_INFO_VERSION_1 000000 constant char(8) initial dcl 6-43 set ref 73 126* 130 FIELD_TABLE_VERSION_3 000004 constant char(8) initial dcl 4-69 set ref 149* HEADER_COLLECTION_ID 000032 constant bit(36) initial dcl 8-19 set ref 162* RECORD_COLLECTION_HEADER_VERSION_2 000006 constant char(8) initial dcl 3-23 ref 69 169 UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD constant fixed bin(17,0) initial dcl 5-40 ref 71 120 addr builtin function dcl 81 ref 118 129 167 basic_esm_info based structure level 1 dcl 6-21 basic_esm_info_ptr 000142 automatic pointer dcl 6-40 set ref 125* 126 129* 130 131 132 133 134 135 151 154 156* cleanup 000122 stack reference condition dcl 86 ref 138 collection_manager_$create_collection 000020 constant entry external dcl 7-54 ref 156 collection_manager_$put 000022 constant entry external dcl 7-115 ref 162 collection_manager_$put_header 000024 constant entry external dcl 7-121 ref 172 data_format_util_$cv_typed_array_to_table 000010 constant entry external dcl 94 ref 144 error_table_$unimplemented_version 000016 external static fixed bin(35,0) dcl 101 set ref 211* field_id based fixed bin(17,0) array level 3 dcl 4-36 ref 151 field_table based structure level 1 dcl 4-36 set ref 162 162 198 field_table_element_id 000102 automatic bit(36) initial dcl 64 in procedure "rcm_create_collection" set ref 64* 162* 170 field_table_element_id 2 based bit(36) initial level 2 in structure "record_collection_header" dcl 3-15 in procedure "rcm_create_collection" set ref 170* field_table_element_id 2 000106 automatic bit(36) initial level 2 in structure "local_record_collection_header" dcl 69 in procedure "rcm_create_collection" set ref 69* field_table_ptr 000134 automatic pointer dcl 4-65 set ref 113* 144* 149 151 162* 162 162 198 198 file_opening_id 000100 automatic bit(36) initial dcl 64 set ref 64* 111* 156* 162* 172* fixed_length 3(01) based bit(1) level 3 packed unaligned dcl 6-21 set ref 133* 151* flags 3 based structure level 2 dcl 6-21 ft_length_of_field_names 000136 automatic fixed bin(17,0) dcl 4-66 set ref 142* ft_number_of_fields 000137 automatic fixed bin(17,0) dcl 4-68 set ref 142* get_dm_free_area_ 000012 constant entry external dcl 96 ref 140 length builtin function dcl 81 ref 162 162 172 172 length_of_field_names 3 based fixed bin(17,0) level 2 dcl 4-36 ref 162 162 198 local_basic_esm_info 000115 automatic structure level 1 dcl 73 set ref 129 local_record_collection_header 000106 automatic structure level 1 dcl 69 set ref 167 local_unblocked_cism_info 000111 automatic structure level 1 dcl 71 set ref 118 maximum_element_length 4 based fixed bin(35,0) level 2 in structure "basic_esm_info" dcl 6-21 in procedure "rcm_create_collection" set ref 135* 154* maximum_element_length 000103 automatic fixed bin(35,0) dcl 66 in procedure "rcm_create_collection" set ref 144* 154 must_be_zero 3 based fixed bin(17,0) level 2 dcl 5-28 set ref 121* myname 000010 constant varying char(32) initial dcl 90 set ref 211* null builtin function dcl 81 ref 67 113 115 123 3-21 198 198 211 211 number_of_fields 2 based fixed bin(17,0) level 2 dcl 4-36 ref 151 162 162 162 162 198 198 p_cism_info_ptr parameter pointer dcl 57 ref 47 115 115 p_code parameter fixed bin(35,0) dcl 60 set ref 47 108* 144* 146 156* 158 162* 164 172* 174 p_esm_info_ptr parameter pointer dcl 58 ref 47 123 125 p_expected_version parameter char(8) dcl 207 set ref 204 211 211* p_file_opening_id parameter bit(36) dcl 54 ref 47 111 p_received_version parameter char(8) dcl 207 set ref 204 211 211* p_record_collection_id parameter bit(36) dcl 59 set ref 47 109* 178* p_structure_name parameter char unaligned dcl 209 set ref 204 211* p_typed_vector_array_ptr parameter pointer dcl 55 ref 47 112 pad 3(02) based bit(34) level 3 packed unaligned dcl 6-21 set ref 134* record_collection_header based structure level 1 dcl 3-15 set ref 172 172 record_collection_header_ptr 000132 automatic pointer initial dcl 3-21 set ref 167* 169 170 172* 172 172 3-21* record_collection_id 000101 automatic bit(36) initial dcl 64 set ref 64* 156* 172* 178 sub_err_ 000014 constant entry external dcl 97 ref 211 threaded 3 based bit(1) level 3 packed unaligned dcl 6-21 set ref 132* type 2 based fixed bin(17,0) initial level 2 in structure "basic_esm_info" dcl 6-21 in procedure "rcm_create_collection" set ref 131* type 2 based fixed bin(17,0) initial level 2 in structure "unblocked_cism_info" dcl 5-28 in procedure "rcm_create_collection" set ref 120* type 2 000115 automatic fixed bin(17,0) initial level 2 in structure "local_basic_esm_info" dcl 73 in procedure "rcm_create_collection" set ref 73* type 2 000111 automatic fixed bin(17,0) initial level 2 in structure "local_unblocked_cism_info" dcl 71 in procedure "rcm_create_collection" set ref 71* typed_vector_array_ptr 000130 automatic pointer dcl 2-43 set ref 112* 144* unblocked_cism_info based structure level 1 dcl 5-28 unblocked_cism_info_ptr 000140 automatic pointer dcl 5-34 set ref 115* 118* 119 120 121 156* unspec builtin function dcl 81 ref 162 162 172 172 varying_field_map based structure array level 2 dcl 4-36 version based char(8) initial level 2 in structure "record_collection_header" dcl 3-15 in procedure "rcm_create_collection" set ref 169* version 000111 automatic char(8) initial level 2 in structure "local_unblocked_cism_info" dcl 71 in procedure "rcm_create_collection" set ref 71* version based char(8) initial level 2 in structure "basic_esm_info" dcl 6-21 in procedure "rcm_create_collection" set ref 126* 130* version 000106 automatic char(8) initial level 2 in structure "local_record_collection_header" dcl 69 in procedure "rcm_create_collection" set ref 69* version based char(8) initial level 2 in structure "field_table" dcl 4-36 in procedure "rcm_create_collection" set ref 149* version 000115 automatic char(8) initial level 2 in structure "local_basic_esm_info" dcl 73 in procedure "rcm_create_collection" set ref 73* version based char(8) initial level 2 in structure "unblocked_cism_info" dcl 5-28 in procedure "rcm_create_collection" set ref 119* work_area based area dcl 77 ref 198 work_area_ptr 000104 automatic pointer initial dcl 67 set ref 67* 140* 144* 198 198 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 1-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 1-7 BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD internal static fixed bin(17,0) initial dcl 5-38 ORDERED_ELEMENT_STORAGE_METHOD internal static fixed bin(17,0) initial dcl 6-46 TYPED_VECTOR_ARRAY_VERSION_2 internal static fixed bin(35,0) initial dcl 2-50 blocked_cism_info based structure level 1 dcl 5-22 blocked_cism_info_ptr automatic pointer dcl 5-33 collection_manager_$allocate_control_interval 000000 constant entry external dcl 7-50 collection_manager_$compact_control_interval 000000 constant entry external dcl 7-52 collection_manager_$create_file 000000 constant entry external dcl 7-56 collection_manager_$delete 000000 constant entry external dcl 7-64 collection_manager_$delete_from_ci_buffer 000000 constant entry external dcl 7-67 collection_manager_$destroy_collection 000000 constant entry external dcl 7-58 collection_manager_$free_control_interval 000000 constant entry external dcl 7-60 collection_manager_$get 000000 constant entry external dcl 7-71 collection_manager_$get_by_ci_ptr 000000 constant entry external dcl 7-80 collection_manager_$get_control_interval_ptr 000000 constant entry external dcl 7-74 collection_manager_$get_from_ci_buffer 000000 constant entry external dcl 7-77 collection_manager_$get_header 000000 constant entry external dcl 7-83 collection_manager_$get_id 000000 constant entry external dcl 7-86 collection_manager_$get_portion 000000 constant entry external dcl 7-89 collection_manager_$get_portion_by_ci_ptr 000000 constant entry external dcl 7-97 collection_manager_$get_portion_from_ci_buffer 000000 constant entry external dcl 7-93 collection_manager_$modify 000000 constant entry external dcl 7-101 collection_manager_$modify_in_ci_buffer 000000 constant entry external dcl 7-107 collection_manager_$modify_portion 000000 constant entry external dcl 7-110 collection_manager_$modify_unprotected 000000 constant entry external dcl 7-104 collection_manager_$postcommit_increments 000000 constant entry external dcl 7-113 collection_manager_$put_in_ci_buffer 000000 constant entry external dcl 7-118 collection_manager_$put_unprotected_header 000000 constant entry external dcl 7-123 collection_manager_$replace_ci_buffer 000000 constant entry external dcl 7-126 collection_manager_$setup_ci_buffer 000000 constant entry external dcl 7-129 collection_manager_$simple_get_by_ci_ptr 000000 constant entry external dcl 7-132 collection_manager_$simple_get_from_ci_buffer 000000 constant entry external dcl 7-135 field_name based char unaligned dcl 4-71 field_name_length automatic fixed bin(17,0) dcl 4-73 field_name_ptr automatic pointer dcl 4-74 ordered_esm_info based structure level 1 dcl 6-31 ordered_esm_info_ptr automatic pointer dcl 6-41 sys_info$max_seg_size external static fixed bin(35,0) dcl 104 tva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 2-48 tva_number_of_dimensions automatic fixed bin(17,0) dcl 2-46 tva_number_of_vector_slots automatic fixed bin(17,0) dcl 2-44 typed_vector_array based structure level 1 dcl 2-21 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION_CHAR 000552 constant entry internal dcl 204 ref 126 149 ERROR_RETURN 000505 constant entry internal dcl 186 ref 146 158 164 174 FINISH 000514 constant entry internal dcl 195 ref 138 180 189 MAIN_RETURN 000504 constant label dcl 182 ref 190 rcm_create_collection 000076 constant entry external dcl 47 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1020 1046 656 1030 Length 1414 656 26 332 142 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcm_create_collection 210 external procedure is an external procedure. on unit on line 138 64 on unit ERROR_RETURN internal procedure shares stack frame of external procedure rcm_create_collection. FINISH 66 internal procedure is called by several nonquick procedures. CHECK_VERSION_CHAR internal procedure shares stack frame of external procedure rcm_create_collection. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcm_create_collection 000100 file_opening_id rcm_create_collection 000101 record_collection_id rcm_create_collection 000102 field_table_element_id rcm_create_collection 000103 maximum_element_length rcm_create_collection 000104 work_area_ptr rcm_create_collection 000106 local_record_collection_header rcm_create_collection 000111 local_unblocked_cism_info rcm_create_collection 000115 local_basic_esm_info rcm_create_collection 000130 typed_vector_array_ptr rcm_create_collection 000132 record_collection_header_ptr rcm_create_collection 000134 field_table_ptr rcm_create_collection 000136 ft_length_of_field_names rcm_create_collection 000137 ft_number_of_fields rcm_create_collection 000140 unblocked_cism_info_ptr rcm_create_collection 000142 basic_esm_info_ptr rcm_create_collection THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry int_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. collection_manager_$create_collection collection_manager_$put collection_manager_$put_header data_format_util_$cv_typed_array_to_table get_dm_free_area_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 47 000070 64 000103 67 000106 69 000110 71 000113 73 000120 3 21 000125 108 000127 109 000131 111 000132 112 000134 113 000137 115 000141 118 000150 119 000152 120 000155 121 000157 123 000160 125 000164 126 000167 127 000207 129 000210 130 000212 131 000215 132 000217 133 000221 134 000223 135 000225 138 000227 140 000251 142 000260 144 000262 146 000302 149 000306 151 000331 154 000341 156 000344 158 000364 162 000370 164 000434 167 000440 169 000442 170 000445 172 000447 174 000471 178 000475 180 000500 182 000504 186 000505 189 000506 190 000512 195 000513 198 000521 202 000551 204 000552 211 000563 215 000653 ----------------------------------------------------------- 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