COMPILATION LISTING OF SEGMENT dm_get_daemon_info_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 0901.0 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 /* format: style4,indattr,ifthenstmt,ifthen,^indcomtxt,idind33 */ 8 9 dm_get_daemon_info_: 10 proc (p_dm_daemon_info_ptr); 11 12 /* DESCRIPTION: 13* 14* This program retrieves from a DMS' dm_system_data_ information about 15* the caretaker Daemon of the DMS. This is because the system data segment 16* for a DM system is not available in any ring other than ring 2, but the 17* data on the caretaker Daemon is needed in ring 4. Currently, this is 18* considered privileged data and wil be called via dm_daemon_gate_. 19**/ 20 21 /* HISTORY: 22* 23*Written by L. A. Newcomb, 03/22/84. 24*Modified: 25**/ 26 27 /* START OF DECLARATIONS */ 28 /* Parameter */ 29 30 dcl p_dm_daemon_info_ptr ptr; /* addr (dm_daemon_info) struct. to be filled in.*/ 31 32 /* Automatic */ 33 /* Based */ 34 /* Builtin */ 35 36 dcl null builtin; 37 38 /* Constant */ 39 40 dcl myname init ("dm_get_daemon_info_") char (32) varying internal static options (constant); 41 42 /* Entry */ 43 44 dcl sub_err_ entry () options (variable); 45 46 /* External */ 47 48 dcl ( 49 dm_system_data_$command_ms_name char (32) aligned, 50 dm_system_data_$initializer_event_chn fixed bin (71), 51 dm_system_data_$initializer_name char (32) aligned, 52 dm_system_data_$initializer_processid bit (36) aligned, 53 dm_system_data_$initializer_wakeup_increment fixed bin 54 ) external static; 55 56 /* Status/Error Codes */ 57 58 dcl error_table_$unimplemented_version fixed bin (35) ext; 59 60 /* END OF DECLARATIONS */ 61 62 dm_daemon_info_ptr = p_dm_daemon_info_ptr; /* get to local storage */ 63 64 /* check version of return structure, passing given version by value to */ 65 /* bypass alignment warning. */ 66 67 call CHECK_VERSION ((dm_daemon_info.version), DM_DAEMON_INFO_VERSION_1, "dm_daemon_info"); 68 69 /* now fill in the return structure */ 70 71 dm_daemon_info.event_channel = dm_system_data_$initializer_event_chn; 72 dm_daemon_info.process_id = dm_system_data_$initializer_processid; 73 dm_daemon_info.wakeup_increment = dm_system_data_$initializer_wakeup_increment; 74 dm_daemon_info.user_id = dm_system_data_$initializer_name; 75 dm_daemon_info.command_ms_name = dm_system_data_$command_ms_name; 76 77 return; 78 79 /* end dm_get_daemon_info_ */ 80 81 CHECK_VERSION: 82 proc (p_received_version, p_expected_version, p_structure_name); 83 dcl p_received_version char (*); 84 dcl p_expected_version char (*); 85 dcl p_structure_name char (*); 86 87 if p_received_version ^= p_expected_version 88 then call 89 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 90 "^/Expected version ^a of the ^a structure. 91 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 92 93 end CHECK_VERSION; 94 /* 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 */ 94 95 /* BEGIN INCLUDE FILE - dm_system_states.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* This include file contains the structure for getting all the 2 6* information from dm_system_data_ about the caretaker Daemon of a DMS. 2 7* The caller recieveing the info from the inner ring routine must set 2 8* version to prevent its storage from being trashed. 2 9**/ 2 10 2 11 /* HISTORY: 2 12* Written by Lee A. Newcomb, 03/22/84. 2 13* Modified: 2 14**/ 2 15 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 2 16 2 17 dcl dm_daemon_info_ptr ptr; 2 18 dcl DM_DAEMON_INFO_VERSION_1 char (8) init ("DMDMNIF1") options (constant) int static; 2 19 2 20 dcl 1 dm_daemon_info aligned based (dm_daemon_info_ptr), 2 21 2 version char (8), 2 22 2 event_channel fixed bin (71), 2 23 2 process_id bit (36), 2 24 2 wakeup_increment fixed bin, 2 25 2 user_id char (32), 2 26 2 command_ms_name char (32); 2 27 2 28 /* END INCLUDE FILE - dm_daemon_info.incl.pl1 */ 95 96 97 98 end dm_get_daemon_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0758.5 dm_get_daemon_info_.pl1 >spec>on>7138.pbf>dm_get_daemon_info_.pl1 94 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 95 2 01/07/85 0858.5 dm_daemon_info.incl.pl1 >ldd>include>dm_daemon_info.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 000002 constant bit(36) initial dcl 1-7 set ref 87* DM_DAEMON_INFO_VERSION_1 000000 constant char(8) initial unaligned dcl 2-18 set ref 67* command_ms_name 16 based char(32) level 2 dcl 2-20 set ref 75* dm_daemon_info based structure level 1 dcl 2-20 dm_daemon_info_ptr 000100 automatic pointer dcl 2-17 set ref 62* 67 71 72 73 74 75 dm_system_data_$command_ms_name 000012 external static char(32) dcl 48 ref 75 dm_system_data_$initializer_event_chn 000014 external static fixed bin(71,0) dcl 48 ref 71 dm_system_data_$initializer_name 000016 external static char(32) dcl 48 ref 74 dm_system_data_$initializer_processid 000020 external static bit(36) dcl 48 ref 72 dm_system_data_$initializer_wakeup_increment 000022 external static fixed bin(17,0) dcl 48 ref 73 error_table_$unimplemented_version 000024 external static fixed bin(35,0) dcl 58 set ref 87* event_channel 2 based fixed bin(71,0) level 2 dcl 2-20 set ref 71* myname 000003 constant varying char(32) initial dcl 40 set ref 87* null builtin function dcl 36 ref 87 87 p_dm_daemon_info_ptr parameter pointer dcl 30 ref 9 62 p_expected_version parameter char unaligned dcl 84 set ref 81 87 87* p_received_version parameter char unaligned dcl 83 set ref 81 87 87* p_structure_name parameter char unaligned dcl 85 set ref 81 87* process_id 4 based bit(36) level 2 dcl 2-20 set ref 72* sub_err_ 000010 constant entry external dcl 44 ref 87 user_id 6 based char(32) level 2 dcl 2-20 set ref 74* version based char(8) level 2 dcl 2-20 ref 67 wakeup_increment 5 based fixed bin(17,0) level 2 dcl 2-20 set ref 73* 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 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000125 constant entry internal dcl 81 ref 67 dm_get_daemon_info_ 000061 constant entry external dcl 9 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 412 440 260 422 Length 650 260 26 174 131 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_get_daemon_info_ 140 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure dm_get_daemon_info_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dm_get_daemon_info_ 000100 dm_daemon_info_ptr dm_get_daemon_info_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_system_data_$command_ms_name dm_system_data_$initializer_event_chn dm_system_data_$initializer_name dm_system_data_$initializer_processid dm_system_data_$initializer_wakeup_increment error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000056 62 000066 67 000072 71 000104 72 000110 73 000112 74 000114 75 000120 77 000124 81 000125 87 000150 93 000241 ----------------------------------------------------------- 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