COMPILATION LISTING OF SEGMENT dbr_util_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1028.7 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 dbr_util_: proc; 9 10 /* Routine to take apart (and assemble?) dbr (descriptor segment base register) 11*values. Initially coded by Keith Loepere, October 1983. */ 12 13 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 14 15 dcl dbr_ptr ptr parameter; 16 dcl p_dbr_info_ptr ptr parameter; 17 dcl sys_info$system_type fixed bin external static; 18 19 dissect: entry (dbr_ptr, p_dbr_info_ptr); 20 21 dbr_info_ptr = p_dbr_info_ptr; 22 if sys_info$system_type = ADP_SYSTEM then do; 23 dbr_info.address = bin (dbr_ptr -> adp_dbr.add, 26); 24 dbr_info.bound = (bin (dbr_ptr -> adp_dbr.bound, 14) + 1) * 16; 25 dbr_info.stack_base_segnum = dbr_ptr -> adp_dbr.stack_base_segno * 8; 26 dbr_info.paged = ^ dbr_ptr -> adp_dbr.unpaged; 27 end; 28 else do; 29 dbr_info.address = bin (dbr_ptr -> l68_dbr.add, 24); 30 dbr_info.bound = (bin (dbr_ptr -> l68_dbr.bound, 14) + 1) * 16; 31 dbr_info.stack_base_segnum = dbr_ptr -> l68_dbr.stack_base_segno * 8; 32 dbr_info.paged = ^ dbr_ptr -> l68_dbr.unpaged; 33 end; 34 return; 35 /* BEGIN INCLUDE FILE ... dbr.adp.incl.pl1 ... Created July, 1981 */ 1 2 1 3 dcl 1 adp_dbr aligned based, /* ADP Descriptor Base Register */ 1 4 1 5 (2 add bit (26), /* Page table address */ 1 6 2 pad1 bit (1), /* overlays adp_sdw.valid */ 1 7 2 pad2 bit (9), /* overlays adp_sdw.rungs */ 1 8 1 9 2 bound bit (14), /* Bound of segment, in 16 word blocks */ 1 10 2 pad3 bit (2), 1 11 2 stack_base_segno fixed bin (14) unsigned, /* overlays ad_sdw.entry_bound */ 1 12 2 pad4 bit (4), /* overlays adp_sdw.access */ 1 13 2 unpaged bit (1), /* "1"b => segment is unpaged */ 1 14 2 pad5 bit (1)) unaligned; /* overlays adp_sdw.not_a_gate */ 1 15 1 16 /* END INCLUDE FILE dbr.adp.incl.pl1 */ 35 36 /* BEGIN INCLUDE FILE ... dbr.l68.incl.pl1 ... Created July, 1981 */ 2 2 2 3 dcl 1 l68_dbr aligned based, /* Level 68 Descriptor Base Register */ 2 4 2 5 (2 add bit (24), /* main memory address of page table */ 2 6 2 pad1 bit (9), /* overlays l68_sdw.rings */ 2 7 2 pad2 bit (3), /* overlays l68_sdw.valid & df_no */ 2 8 2 9 2 pad3 bit (1), 2 10 2 bound bit (14), /* boundary field (in 16 word blocks) */ 2 11 2 pad4 bit (4), /* overlays l68_sdw.access */ 2 12 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 2 13 2 pad5 bit (1), /* overlays l68_sdw.not_a_gate */ 2 14 2 pad6 bit (1), /* overlays l68_sdw.cache */ 2 15 2 stack_base_segno fixed bin (14) unsigned) unaligned; /* overlays l68_sdw.entry_bound */ 2 16 2 17 /* END INCLUDE FILE ... dbr.l68.incl.pl1 */ 36 37 /* BEGIN include file dbr_info.incl.pl1 */ 3 2 3 3 /* This include file describes the structure returned by dbr_util_$dissect. 3 4*Keith Loepere, October 1983. */ 3 5 3 6 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 3 7 3 8 dcl dbr_info_ptr ptr; 3 9 3 10 dcl 1 dbr_info aligned based (dbr_info_ptr), 3 11 2 address fixed bin (26), /* of dseg or dseg page table */ 3 12 2 bound fixed bin (18), /* length of dseg in words */ 3 13 2 stack_base_segnum fixed bin (15), /* segment number of ring 0 stack */ 3 14 2 paged bit (1); /* is dseg paged? */ 3 15 3 16 /* END include file dbr_info.incl.pl1 */ 37 38 /* BEGIN INCLUDE FILE ... system_types.incl.pl1 ... 03/23/81 ... W. Olin Sibert */ 4 2 4 3 dcl L68_SYSTEM fixed bin (17) internal static options (constant) init (1); 4 4 dcl ADP_SYSTEM fixed bin (17) internal static options (constant) init (2); 4 5 4 6 dcl SYSTEM_TYPE_NAME (2) char (8) internal static options (constant) init 4 7 ("Level68", "ADP"); 4 8 4 9 /* END INCLUDE FILE ... system_types.incl.pl1 */ 38 39 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0825.5 dbr_util_.pl1 >special_ldd>install>MR12.3-1114>dbr_util_.pl1 35 1 03/27/82 0430.3 dbr.adp.incl.pl1 >ldd>include>dbr.adp.incl.pl1 36 2 03/27/82 0430.3 dbr.l68.incl.pl1 >ldd>include>dbr.l68.incl.pl1 37 3 07/11/84 0937.3 dbr_info.incl.pl1 >ldd>include>dbr_info.incl.pl1 38 4 06/19/81 2115.0 system_types.incl.pl1 >ldd>include>system_types.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. ADP_SYSTEM constant fixed bin(17,0) initial dcl 4-4 ref 22 add based bit(24) level 2 in structure "l68_dbr" packed packed unaligned dcl 2-3 in procedure "dbr_util_" ref 29 add based bit(26) level 2 in structure "adp_dbr" packed packed unaligned dcl 1-3 in procedure "dbr_util_" ref 23 address based fixed bin(26,0) level 2 dcl 3-10 set ref 23* 29* adp_dbr based structure level 1 dcl 1-3 bound 1(01) based bit(14) level 2 in structure "l68_dbr" packed packed unaligned dcl 2-3 in procedure "dbr_util_" ref 30 bound 1 based bit(14) level 2 in structure "adp_dbr" packed packed unaligned dcl 1-3 in procedure "dbr_util_" ref 24 bound 1 based fixed bin(18,0) level 2 in structure "dbr_info" dcl 3-10 in procedure "dbr_util_" set ref 24* 30* dbr_info based structure level 1 dcl 3-10 dbr_info_ptr 000100 automatic pointer dcl 3-8 set ref 21* 23 24 25 26 29 30 31 32 dbr_ptr parameter pointer dcl 15 ref 19 23 24 25 26 29 30 31 32 l68_dbr based structure level 1 dcl 2-3 p_dbr_info_ptr parameter pointer dcl 16 ref 19 21 paged 3 based bit(1) level 2 dcl 3-10 set ref 26* 32* stack_base_segno 1(16) based fixed bin(14,0) level 2 in structure "adp_dbr" packed packed unsigned unaligned dcl 1-3 in procedure "dbr_util_" ref 25 stack_base_segno 1(22) based fixed bin(14,0) level 2 in structure "l68_dbr" packed packed unsigned unaligned dcl 2-3 in procedure "dbr_util_" ref 31 stack_base_segnum 2 based fixed bin(15,0) level 2 dcl 3-10 set ref 25* 31* sys_info$system_type 000010 external static fixed bin(17,0) dcl 17 ref 22 unpaged 1(34) based bit(1) level 2 in structure "adp_dbr" packed packed unaligned dcl 1-3 in procedure "dbr_util_" ref 26 unpaged 1(19) based bit(1) level 2 in structure "l68_dbr" packed packed unaligned dcl 2-3 in procedure "dbr_util_" ref 32 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. L68_SYSTEM internal static fixed bin(17,0) initial dcl 4-3 SYSTEM_TYPE_NAME internal static char(8) initial array packed unaligned dcl 4-6 NAMES DECLARED BY EXPLICIT CONTEXT. dbr_util_ 000002 constant entry external dcl 8 dissect 000014 constant entry external dcl 19 NAME DECLARED BY CONTEXT OR IMPLICATION. bin builtin function ref 23 24 29 30 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 144 156 102 154 Length 404 102 12 212 42 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dbr_util_ 66 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dbr_util_ 000100 dbr_info_ptr dbr_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return_mac ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$system_type LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 000001 19 000007 21 000021 22 000025 23 000030 24 000034 25 000042 26 000047 27 000054 29 000055 30 000061 31 000070 32 000074 34 000101 ----------------------------------------------------------- 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