COMPILATION LISTING OF SEGMENT amu_return_val_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/19/84 1138.6 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 amu_return_val_: proc; 7 return; 8 9 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend,ifthendo,ifthen,^thendo */ 10 11 /* This proc will get the miscellaneous values for FDUMPS */ 12 13 /* cpu_tag_from_idx 14* dbr_from_idx 15* idx_from_dbr 16* cpu_tag_from_dbr 17* 18* BITS: 19* per_process 20**/ 21 22 23 24 dcl P_amu_info_ptr ptr; 25 dcl P_dbr fixed bin (24); 26 dcl P_idx fixed bin; 27 dcl P_segno fixed bin; 28 29 30 dcl i fixed bin (17); 31 dcl search_dbr fixed bin (24); 32 dcl segment fixed bin; 33 34 dcl hcs_$fs_get_mode entry (ptr, fixed bin (5), fixed bin (35)), 35 hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 36 37 38 dcl (bit, null) builtin; 39 40 41 cpu_tag_from_idx: 42 entry (P_amu_info_ptr, P_idx) returns (char (1)); 43 amu_info_ptr = P_amu_info_ptr; 44 i = P_idx; 45 return (fdump_process_table.array (i).cpu_name); 46 47 /* end cpu_tag_from_idx */ 48 49 dbr_from_idx: 50 entry (P_amu_info_ptr, P_idx) returns (fixed bin (24)); 51 amu_info_ptr = P_amu_info_ptr; 52 i = P_idx; 53 return (fdump_process_table.array (i).dbr); 54 55 idx_from_dbr: 56 entry (P_amu_info_ptr, P_dbr) returns (fixed bin (17)); 57 amu_info_ptr = P_amu_info_ptr; 58 search_dbr = P_dbr; 59 do i = 0 to fdump_process_table.size; 60 if search_dbr = fdump_process_table.array (i).dbr then return (i); 61 end; 62 return (-1); /* process not dumped */ 63 64 /* end of idx_from_dbr */ 65 66 67 cpu_tag_from_dbr: 68 entry (P_amu_info_ptr, P_dbr) returns (char (1)); 69 amu_info_ptr = P_amu_info_ptr; 70 search_dbr = P_dbr; 71 do i = 0 to fdump_process_table.size; 72 if search_dbr = fdump_process_table.array (i).dbr then return (fdump_process_table.array (i).cpu_name); 73 end; 74 return (""); /* returnn null if not found */ 75 /* end of cpu_tag_from_dbr */ 76 77 78 per_process: 79 entry (P_amu_info_ptr, P_segno) returns (bit (1)); 80 segment = P_segno; 81 amu_info_ptr = P_amu_info_ptr; 82 if segment <= hardcore_info.hcs_count then do; 83 if segment ^= hardcore_info.segno.prds then 84 if segment ^= hardcore_info.segno.dseg then 85 if segment ^= hardcore_info.segno.pds then 86 if segment ^= hardcore_info.segno.kst then 87 return ("0"b); 88 else ; 89 else ; 90 else ; 91 else ; 92 return ("1"b); 93 end; 94 return ("1"b); 95 96 amu_return_val_$phcs_ok: 97 entry () returns (bit (1)); 98 dcl rs_mode fixed bin (5); 99 dcl execute bit (5) init ("00100"b); 100 dcl phcsp ptr; 101 dcl code fixed bin (35); 102 call hcs_$initiate (">system_library_1", "phcs_", "", 0, 0, phcsp, code); 103 if phcsp ^= null then do; /* if can be initiated */ 104 call hcs_$fs_get_mode (phcsp, rs_mode, code);/* check caller's access */ 105 if code = 0 then 106 if bit (rs_mode) & execute then /* if execute, then priv. process */ return ("1"b); 107 /* user has access to phcs_, set switch */ 108 end; 109 return ("0"b); 110 111 /* end phcs_ok entry */ 112 113 1 1 /* BEGIN INCLUDE FILE amu_info.incl.pl1 */ 1 2 1 3 dcl 1 amu_info aligned based (amu_info_ptr), 1 4 2 version char (8) aligned, /* AMU_INFO_VERSION */ 1 5 2 flags aligned, 1 6 3 early_dump bit(1) unal, 1 7 3 pad bit(35) unal, 1 8 2 type fixed bin unal, /* One of the types below */ 1 9 2 time_created fixed bin (71) aligned, /* time created -- for debugging purposes */ 1 10 2 chain, /* a chain of all the amu_info's which exist */ 1 11 3 prev pointer unaligned, 1 12 3 next pointer unaligned, 1 13 1 14 2 area_ptr pointer, /* pointer to area used for allocating things */ 1 15 1 16 2 translation_table_ptr pointer, /* pointer to address map -- always present */ 1 17 /* SEE: amu_translation.incl.pl1 */ 1 18 2 fdump_info_ptr pointer, 1 19 /* pointer to FDUMP info, present if looking at an FDUMP */ 1 20 /* SEE: amu_fdump_info.incl.pl1 */ 1 21 /* old_uid_table pointer if looking at a SAVED PROC. */ 1 22 /* See: amu_old_uid_table */ 1 23 1 24 1 25 2 hardcore_info_ptr pointer, /* pointer to hardcore information -- always present */ 1 26 /* SEE: amu_hardcore_info.incl.pl1 */ 1 27 2 copy_chain pointer, /* pointer to info about segment copies */ 1 28 /* SEE: amu_copy_info.incl.pl1 */ 1 29 2 process_info_ptr pointer, /* pointer to process info for this translation */ 1 30 /* SEE: amu_process_info.incl.pl1 */ 1 31 2 process_idx fixed bin, /* index of process in translation-specifc process table */ 1 32 1 33 2 proc_idx_hold fixed bin, /* a place to keep the index when a changing to another proc */ 1 34 1 35 2 error_info, /* various info about how amu_error_ is to behave */ 1 36 3 error_flags aligned, 1 37 4 handler_exists bit (1) unaligned, /* set to indicate existence of an amu_error handler */ 1 38 4 in_subsystem bit (1) unaligned, /* This amu_info belongs to an ssu_ maintained subsystem */ 1 39 4 pad bit (34) unaligned, 1 40 3 sci_ptr pointer, /* sci_ptr for subsystem, if in_subsystem = "1"b */ 1 41 2 definitions_info_ptr ptr; 1 42 1 43 dcl amu_area area based (amu_info.area_ptr); 1 44 1 45 dcl amu_info_ptr pointer; 1 46 1 47 dcl (FDUMP_TYPE init (1037), /* the various legitimate types of amu_info's */ 1 48 FDUMP_PROCESS_TYPE init (1038), 1 49 ONLINE_TYPE init (1039), 1 50 ONLINE_PROCESS_TYPE init (1040), 1 51 NETWORK_FDUMP_TYPE init (1041), 1 52 NETWORK_ONLINE_TYPE init (1042), 1 53 SAVED_PROC_TYPE init (1043), 1 54 INDIRECT_TYPE init (1044)) fixed bin internal static options (constant); 1 55 1 56 dcl AMU_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_v1"); 1 57 dcl AMU_INFO_VERSION char (8) internal static options (constant) init ("amu_v1"); 1 58 dcl AMU_INFO_VERSION_2 char (8) internal static options (constant) init ("amu_v2"); 1 59 1 60 dcl PDIR_SUFFIX char(4) init("pdir") int static options(constant); 1 61 1 62 /* END INCLUDE FILE amu_info.incl.pl1 */ 114 115 2 1 /* BEGIN INCLUDE FILE amu_fdump_info.incl.pl1 */ 2 2 2 3 dcl 1 fdump_info aligned based (amu_info.fdump_info_ptr), 2 4 2 version char (8), 2 5 2 ref_count fixed bin, /* number of initiations */ 2 6 2 7 2 erf_name char (32), /* ERF name for this dump */ 2 8 2 dump_dname char (168), /* location of the dump */ 2 9 2 dump_ename char (32), /* ename of component zero */ 2 10 2 system_id char (8), /* the system_id of this erf */ 2 11 2 version_id char (8), /* the version id of this erf */ 2 12 2 dump_seg_0_uid bit (36) aligned, /* for determining EQ-ness and gullibility checking */ 2 13 2 14 2 n_dump_segs fixed bin, /* number of real segs in the dump */ 2 15 2 copy_block_ptr pointer, /* pointer to chain of temp segment blocks */ 2 16 2 17 2 dump_seg_ptr (0:31) pointer, /* pointer and length arrays */ 2 18 2 dump_seg_lth (0:31) fixed bin (18), 2 19 2 20 2 fdump_process_table_ptr pointer; /* pointer to array describing processes */ 2 21 2 22 2 23 dcl 1 fdump_process_table aligned based (fdump_info.fdump_process_table_ptr), 2 24 2 size fixed bin, /* number of entries */ 2 25 2 26 2 array (0:alloc_fdump_process_table_size - 1 refer (fdump_process_table.size)) like fp_table; 2 27 2 28 dcl 1 fp_table based (fp_table_ptr), 2 29 2 first_seg fixed bin, 2 30 2 last_seg fixed bin, 2 31 2 process_info_ptr pointer unaligned, /* pointer to process_info structure, if filled in */ 2 32 2 dmp_seg_indx fixed bin, /* dump seg index where process can be found */ 2 33 2 dmp_seg_offset fixed bin (24), /* offset in the segment refered to by dmp_seg_indx where process starts */ 2 34 2 cpu_name char (1), 2 35 2 dbr fixed bin (24), /* address portion of DBR */ 2 36 2 apte_offset fixed bin (18); 2 37 2 38 dcl fp_table_ptr ptr; 2 39 2 40 dcl alloc_fdump_process_table_size fixed bin; 2 41 2 42 dcl AMU_FDUMP_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_erf1"); 2 43 dcl AMU_FDUMP_INFO_VERSION char (8) internal static options (constant) init ("amu_erf1"); 2 44 2 45 /* END INCLUDE FILE amu_fdump_info.incl.pl1 */ 116 117 3 1 /* BEGIN INCLUDE FILE amu_hardcore_info.incl.pl1 */ 3 2 3 3 /* This structure contains information about the hardcore supervisor address 3 4* space for an address translation. */ 3 5 3 6 dcl 1 hardcore_info aligned based (amu_info.hardcore_info_ptr), 3 7 3 8 2 pointers, /* assorted pointers to various useful items */ 3 9 3 slt aligned, /* SLT */ 3 10 4 fptr pointer unaligned, /* address in foreign address space */ 3 11 4 lptr pointer unaligned, /* location in local address space */ 3 12 3 sltnt aligned like hardcore_info.slt, /* SLT names segment */ 3 13 3 definitions aligned like hardcore_info.slt, /* hardcore definitions_ segment */ 3 14 3 15 3 sst aligned like hardcore_info.slt, /* SST */ 3 16 3 tc_data aligned like hardcore_info.slt, /* TC_DATA */ 3 17 3 sstnt aligned like hardcore_info.slt, /* SSTNT (if any -- foreign_ptr = null if not) */ 3 18 3 upt aligned like hardcore_info.slt, /* unpaged_page_tables (if any -- foreign_ptr = null if not) */ 3 19 3 20 2 segno, /* segment numbers of various per-process/per-processor segs */ 3 21 3 prds fixed bin (15), /* segno of PRDS */ 3 22 3 dseg fixed bin (15), /* DSEG */ 3 23 3 pds fixed bin (15), /* PDS */ 3 24 3 kst fixed bin (15), /* KST */ 3 25 3 stack_0 fixed bin (15), /* segno of stack_0 -- first one in stack group */ 3 26 3 unpaged_page_tables fixed bin(15), /* segno of unpaged_page_tables if it exists */ 3 27 3 28 2 apt, /* information about the APT */ 3 29 3 foreign_ptr pointer unaligned, /* foreign and local pointers to tcm.apt */ 3 30 3 local_ptr pointer unaligned, 3 31 3 count fixed bin, /* number of APTEs */ 3 32 3 size fixed bin, /* size of a single APTE */ 3 33 3 34 2 hcs_count fixed bin, /* highest hardcore segno */ 3 35 3 36 2 pad1 fixed bin; 3 37 3 38 dcl hardcore_cur_ptr ptr; 3 39 3 40 dcl 1 hardcore_cur based (hardcore_cur_ptr), 3 41 2 sltp ptr, 3 42 2 sltntp ptr, 3 43 2 defp ptr, 3 44 2 sstp ptr, 3 45 2 tc_datap ptr, 3 46 2 sstntp ptr, 3 47 2 uptp ptr; 3 48 3 49 3 50 3 51 3 52 /* END INCLUDE FILE amu_hardcore_info.incl.pl1 */ 118 119 4 1 /* BEGIN INCLUDE FILE amu_process_info.incl.pl1 */ 4 2 4 3 /* This structure describes information about a single process in an address 4 4* translation. It is only relevant for translations involving the online system 4 5* or an FDUMP. */ 4 6 4 7 dcl 1 process_info aligned based (amu_info.process_info_ptr), /* information about a single process */ 4 8 2 pid bit (36) aligned, /* process_id of this process */ 4 9 2 address_map_ptr pointer unaligned, /* pointer to address map */ 4 10 2 idx fixed bin, /* index of process in FDUMP, or apte index if online */ 4 11 2 state fixed bin, /* state, from the APTE -- only good for FDUMP */ 4 12 4 13 2 dbr fixed bin (71), /* DBR of this process */ 4 14 4 15 2 apte aligned, /* pointer to this process's APTE */ 4 16 3 foreign_ptr pointer unaligned, 4 17 3 local_ptr pointer unaligned, 4 18 2 prds aligned like process_info.apte, /* and PRDS, IFF it has one (is running) -- volatile */ 4 19 2 dseg aligned like process_info.apte, /* DSEG -- These values must be constantly recalculated */ 4 20 2 pds aligned like process_info.apte, /* PDS --- for an online process, if phcs transparency */ 4 21 2 kst aligned like process_info.apte, /* KST --- is not in use. */ 4 22 4 23 2 dump_segx, /* index of first and last seg belonging to this */ 4 24 3 first fixed bin, /* process in bos_dump.seg_array, or zero if none */ 4 25 3 last fixed bin, /* this information is only valid for a process in a dump */ 4 26 4 27 2 pad1 fixed bin; 4 28 4 29 /* END INCLUDE FILE amu_process_info.incl.pl1 */ 120 121 5 1 /* Begin amu_definitions.incl.pl1 */ 5 2 /* This is a place to keep the definitions for a translation */ 5 3 5 4 dcl 1 definitions_info based (amu_info.definitions_info_ptr), 5 5 2 hash_buckets (127) pointer unaligned, 5 6 2 t_ptrs (0:9), 5 7 3 name char (4), 5 8 3 val ptr unal, 5 9 2 pad fixed bin; 5 10 5 11 dcl t_ptr_indx fixed bin; 5 12 dcl init_ptr_names (0:9) char (4) init ("ap", "ab", "bp", "bb", "lp", "lb", "sp", "sb", "prfr", "prmc"); 5 13 5 14 5 15 /* End amu_definitions_info.incl.pl1 */ 122 123 end amu_return_val_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/84 1445.4 amu_return_val_.pl1 >special_ldd>online>6897-11/15/84>amu_return_val_.pl1 114 1 11/15/84 1524.3 amu_info.incl.pl1 >special_ldd>online>6897-11/15/84>amu_info.incl.pl1 116 2 09/22/83 1102.5 amu_fdump_info.incl.pl1 >ldd>include>amu_fdump_info.incl.pl1 118 3 11/15/84 1437.4 amu_hardcore_info.incl.pl1 >special_ldd>online>6897-11/15/84>amu_hardcore_info.incl.pl1 120 4 11/15/84 1524.3 amu_process_info.incl.pl1 >special_ldd>online>6897-11/15/84>amu_process_info.incl.pl1 122 5 09/22/83 1102.5 amu_definitions.incl.pl1 >ldd>include>amu_definitions.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. P_amu_info_ptr parameter pointer dcl 24 ref 41 43 49 51 55 57 67 69 78 81 P_dbr parameter fixed bin(24,0) dcl 25 ref 55 58 67 70 P_idx parameter fixed bin(17,0) dcl 26 ref 41 44 49 52 P_segno parameter fixed bin(17,0) dcl 27 ref 78 80 amu_info based structure level 1 dcl 1-3 amu_info_ptr 000112 automatic pointer dcl 1-45 set ref 43* 45 51* 53 57* 59 60 69* 71 72 72 81* 82 83 83 83 83 apte 6 based structure level 2 dcl 4-7 array 1 based structure array level 2 dcl 2-23 bit builtin function dcl 38 ref 105 code 000110 automatic fixed bin(35,0) dcl 101 set ref 102* 104* 105 cpu_name 6 based char(1) array level 3 dcl 2-23 ref 45 72 dbr 7 based fixed bin(24,0) array level 3 dcl 2-23 ref 53 60 72 dseg 17 based fixed bin(15,0) level 3 dcl 3-6 ref 83 execute 000104 automatic bit(5) initial unaligned dcl 99 set ref 99* 105 fdump_info based structure level 1 dcl 2-3 fdump_info_ptr 14 based pointer level 2 dcl 1-3 ref 45 53 59 60 71 72 72 fdump_process_table based structure level 1 dcl 2-23 fdump_process_table_ptr 246 based pointer level 2 dcl 2-3 ref 45 53 59 60 71 72 72 fp_table based structure level 1 unaligned dcl 2-28 hardcore_info based structure level 1 dcl 3-6 hardcore_info_ptr 16 based pointer level 2 dcl 1-3 ref 82 83 83 83 83 hcs_$fs_get_mode 000010 constant entry external dcl 34 ref 104 hcs_$initiate 000012 constant entry external dcl 34 ref 102 hcs_count 30 based fixed bin(17,0) level 2 dcl 3-6 ref 82 i 000100 automatic fixed bin(17,0) dcl 30 set ref 44* 45 52* 53 59* 60 60* 71* 72 72* init_ptr_names 000114 automatic char(4) initial array unaligned dcl 5-12 set ref 5-12* 5-12* 5-12* 5-12* 5-12* 5-12* 5-12* 5-12* 5-12* 5-12* kst 21 based fixed bin(15,0) level 3 dcl 3-6 ref 83 null builtin function dcl 38 ref 103 pds 20 based fixed bin(15,0) level 3 dcl 3-6 ref 83 phcsp 000106 automatic pointer dcl 100 set ref 102* 103 104* pointers based structure level 2 dcl 3-6 prds 16 based fixed bin(15,0) level 3 dcl 3-6 ref 83 process_info based structure level 1 dcl 4-7 rs_mode 000103 automatic fixed bin(5,0) dcl 98 set ref 104* 105 search_dbr 000101 automatic fixed bin(24,0) dcl 31 set ref 58* 60 70* 72 segment 000102 automatic fixed bin(17,0) dcl 32 set ref 80* 82 83 83 83 83 segno 16 based structure level 2 dcl 3-6 size based fixed bin(17,0) level 2 dcl 2-23 ref 59 71 slt based structure level 3 dcl 3-6 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AMU_FDUMP_INFO_VERSION internal static char(8) initial unaligned dcl 2-43 AMU_FDUMP_INFO_VERSION_1 internal static char(8) initial unaligned dcl 2-42 AMU_INFO_VERSION internal static char(8) initial unaligned dcl 1-57 AMU_INFO_VERSION_1 internal static char(8) initial unaligned dcl 1-56 AMU_INFO_VERSION_2 internal static char(8) initial unaligned dcl 1-58 FDUMP_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 1-47 FDUMP_TYPE internal static fixed bin(17,0) initial dcl 1-47 INDIRECT_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_FDUMP_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 PDIR_SUFFIX internal static char(4) initial unaligned dcl 1-60 SAVED_PROC_TYPE internal static fixed bin(17,0) initial dcl 1-47 alloc_fdump_process_table_size automatic fixed bin(17,0) dcl 2-40 amu_area based area(1024) dcl 1-43 definitions_info based structure level 1 unaligned dcl 5-4 fp_table_ptr automatic pointer dcl 2-38 hardcore_cur based structure level 1 unaligned dcl 3-40 hardcore_cur_ptr automatic pointer dcl 3-38 t_ptr_indx automatic fixed bin(17,0) dcl 5-11 NAMES DECLARED BY EXPLICIT CONTEXT. amu_return_val_ 000125 constant entry external dcl 6 amu_return_val_$phcs_ok 001127 constant entry external dcl 96 cpu_tag_from_dbr 000565 constant entry external dcl 67 cpu_tag_from_idx 000161 constant entry external dcl 41 dbr_from_idx 000276 constant entry external dcl 49 idx_from_dbr 000407 constant entry external dcl 55 per_process 000747 constant entry external dcl 78 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1472 1506 1344 1502 Length 2016 1344 14 274 125 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME amu_return_val_ 290 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME amu_return_val_ 000100 i amu_return_val_ 000101 search_dbr amu_return_val_ 000102 segment amu_return_val_ 000103 rs_mode amu_return_val_ 000104 execute amu_return_val_ 000106 phcsp amu_return_val_ 000110 code amu_return_val_ 000112 amu_info_ptr amu_return_val_ 000114 init_ptr_names amu_return_val_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return signal ext_entry any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hcs_$fs_get_mode hcs_$initiate NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 99 000046 5 12 000050 6 000124 7 000135 41 000155 43 000171 44 000175 45 000177 49 000272 51 000306 52 000312 53 000314 55 000403 57 000417 58 000423 59 000425 60 000435 61 000520 62 000522 67 000561 69 000575 70 000601 71 000603 72 000613 73 000704 74 000706 78 000743 80 000761 81 000764 82 000767 83 000772 92 001034 94 001070 96 001124 102 001141 103 001214 104 001220 105 001233 109 001302 ----------------------------------------------------------- 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