/* ****************************************************** * * * * * Copyright (c) 1972 by Massachusetts Institute of * * Technology and Honeywell Information Systems, Inc. * * * * * ****************************************************** */ lss_login_responder_: proc; /* This login responder initializes the Limited Service System. It sets up the command limitation by calling command_processor_$setup_lss, and the governing of cpu usage by calling start_governor_. Coded Nov 1970 by Dan Bricklin */ /* last modified 3 May 1971 by Dan B */ /* Modified 750422 by PG to call logout properly & use iox_ */ /* Modified 751124 by L Hazelton to call listen_ correctly and to allow the "brief" option to be used during login. */ /* Modified 751128 by L Hazelton to execute a start_up.ec if it exists and the user does not specify not to do so. */ /* builtins */ dcl (addr, divide, null, index) builtin; dcl user_info_ entry (char (*), char (*)), user_info_$usage_data ext entry (fixed bin), user_info_$attributes entry (char (300) var), user_info_$homedir entry (char (*)), nproc fixed bin, hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)), hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (1), ptr, fixed bin), hcs_$initiate_search_rules entry (ptr, fixed bin), iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin), iox_$user_output external static ptr, hcs_$terminate_noname ext entry (ptr, fixed bin), motd_len fixed bin (24), motd_ptr ptr, hcs_$initiate entry (char (*), char (*), char (*), fixed bin (2), fixed bin (1), ptr, fixed bin), start_governor_ ext entry (fixed bin (17), fixed bin (17)), error_table_$segknown ext fixed bin (17), ioa_ entry options (variable), logout entry options (variable), command_processor_$setup_lss entry (ptr), listen_ entry (char (*) var), condition_ entry (char (*), entry), standard_default_handler_ ext entry, attr char (300) var, person char (22), project char (9), hdir char (64), standard bit (1) aligned, 1 info based (command_table) aligned, 2 ratio fixed bin (17), 2 interval_length fixed bin (17), 1 search_rules aligned int static, 2 num fixed bin init (5), 2 names (5) char (168) aligned init ("initiated_segments", "referencing_dir", ">system_library_standard", ">system_library_1", ">system_library_unbundled"), entry_type fixed bin (2), bit_cnt fixed bin (24), mcode fixed bin (35), code fixed bin (17), command_table ptr; /* Standard entry point */ standard = "1"b; go to common; /* Limited Command System entry point - means look in >udd>project before system's for lss_commands */ limited_command_system_: entry; standard = "0"b; /* Set up condition handlers */ /* and initiate the search rules we want */ common: call hcs_$initiate_search_rules (addr (search_rules), code); if code ^= 0 then go to error; call condition_ ("any_other", standard_default_handler_); /* Initiate data segment for ratio, interval_length and transform_command_ table */ if ^standard then do; /* LCS search for >udd>project>lss_command_list_ */ call user_info_ (person, project); call hcs_$initiate (">user_dir_dir>"|| project, "lss_command_list_", "", 0b, 0b, command_table, code); /* look for >udd>project>lss_command_list_ */ if code = 0 then go to got_ptr; if code = error_table_$segknown then go to got_ptr; end; /* Look for standard table */ call hcs_$initiate (">system_library_standard", "lss_command_list_", "", 0b, 0b, command_table, code); if code ^= 0 then if code ^= error_table_$segknown then do; /* If segment not found */ error: call ioa_ ("The system is currently unavailable"); call logout ("-hold"); end; /* Start transforming of commands */ got_ptr: call command_processor_$setup_lss (command_table); /* Print message of the day if first process and user did not login with the "brief" option. */ call user_info_$attributes (attr); call user_info_$usage_data (nproc); if index (attr, "brief") = 0 then do; if nproc = 1 then do; call hcs_$initiate_count (">system_control_1", "message_of_the_day", "", motd_len, 1, motd_ptr, code); if motd_ptr ^= null then do; call iox_$put_chars (iox_$user_output, motd_ptr, divide (motd_len + 8, 9, 24, 0), code); call hcs_$terminate_noname (motd_ptr, code); end; end; end; /* Start governing of cpu usage */ call start_governor_ (ratio, interval_length); /* If the user has a start_up.ec and has not logged in with the "-nostartup" or "ns" option, start the listener and execute the start_up.ec */ if index (attr, "nostartup") ^= 0 then go to no_init_com_line; call user_info_$homedir (hdir); /*start_up.ec or link should be in user's homedir. */ /* Find out if the start_up.ec exists and if we have access to it. */ call hcs_$status_minf (hdir, "start_up.ec", 1, entry_type, bit_cnt, mcode); if nproc = 1 & mcode = 0 & entry_type = 1 then do; call listen_ ("exec_com start_up login interactive"); go to all_set; end; /* Otherwise, just start the listener. */ no_init_com_line: call listen_ (""); all_set: ; end lss_login_responder_; */ ----------------------------------------------------------- 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 */