03/17/88 user_info_ The user_info_ subroutine allows the user to obtain information concerning his login session. All entry points that accept more than one argument count their arguments and only return values for the number of arguments given. Entry points in user_info_: (List is generated by the help command) :Entry: user_info_: 03/08/85 user_info_ Function: The user_info_ entry point returns the user's login name, project name, and account identifier. Syntax: declare user_info_ entry (char(*), char(*), char(*)); call user_info_ (person_id, project_id, acct); Arguments: person_id is the user's name from the login line (maximum of 22 characters). (Output) project_id is the user's project identifier (maximum of 9 characters). (Output) acct is the user's account identifier (maximum of 32 characters). (Output) :Entry: absentee_queue: 03/08/85 user_info_$absentee_queue Function: This entry point returns the queue number of the absentee queue for an absentee process. For an interactive process, the number returned is -1. Syntax: declare user_info_$absentee_queue entry (fixed bin); call user_info_$absentee_queue (queue); Arguments: queue is the number of the absentee queue. (Output) :Entry: absentee_request_id: 03/08/85 user_info_$absentee_request_id Function: This entry point returns the identifier by which the absentee request is known to the absentee user manager. This is the ID which is used by the absentee request commands enter_abs_request, cancel_abs_request and move_abs_request. Syntax: declare user_info_$absentee_request_id entry (fixed bin(71)); call user_info_$absentee_request_id (request_id); Arguments: request_id is the request ID corresponding to this absentee process. (Output) For an interactive or daemon process, the request_id returned is 0. :Entry: absentee_restarted: 03/30/86 user_info_$absentee_restarted Function: This entry point returns a bit indicating whether this absentee process has been restarted after a system crash. Syntax: declare user_info_$absentee_restarted entry (bit (1) aligned); call user_info_$absentee_restarted (restarted_bit); Arguments: restarted_bit is "1"b if this absentee process was restarted after a system crash, "0"b if not. See Notes. (Output). Notes: If this absentee process was restarted after a system crash, and the absout_truncation bit is on, truncation will not be performed. See user_info_$absout_truncation. :Entry: absin: 03/08/85 user_info_$absin Function: This entry point returns the pathname of the absentee input segment for an absentee job. For an interactive user, the pathname is returned as blanks. Syntax: declare user_info_$absin entry (char(*)); call user_info_$absin (path); Arguments: path is the pathname of the absentee input segment (maximum of 168 characters). (Output) :Entry: absout: 03/08/85 user_info_$absout Function: This entry point returns the pathname of the absentee output segment for an absentee job. For an interactive user, the pathname is returned as blanks. Syntax: declare user_info_$absout entry (char(*)); call user_info_$absout (path); Arguments: path is the pathname of the absentee output segment (maximum of 168 characters). (Output) :Entry: absout_truncation: 03/30/86 user_info_$absout_truncation Function: This entry returns a bit indicating whether the absentee process had the -truncate absout file argument requested. Syntax: declare user_info_$absout_truncation entry (bit (1) aligned); call user_info_$absout_truncation (truncate_bit); Arguments: truncate_bit is "1"b if the -truncate argument was used for the request which created this absentee process, or "0"b if not. See Notes. (Output). Notes: If the absentee process has been restarted after a system crash, and the truncate_absout bit is set, truncation will not be peoformed. See user_info_$absentee_restarted. :Entry: attributes: 03/08/85 user_info_$attributes Function: This entry point returns a character string containing the name of the user's attributes, each separated by a comma and a space, and ending in a semicolon. Attributes control such things as the ways in which the user may log in, and the arguments that he is permitted to give when logging in. They are assigned by the project or system administrator. Login attributes are defined in the MAM Project Administrator's manual. Syntax: declare user_info_$attributes entry (char(*) varying); call user_info_$attributes (attr); Arguments: attr is the string containing the names of the user's attributes. (Output) :Entry: authorization_range: 03/08/85 user_info_$authorization_range Function: This entry point returns the range of authorizations at which the calling user may create a process. Syntax: declare user_info_$authorization_range entry ((2) bit (72) aligned); call user_info_$authorization_range (auth_range); Arguments: auth_range represents the range of authorizations at which the user may log in. :Entry: homedir: 03/08/85 user_info_$homedir Function: This entry point returns the pathname of the user's initial working directory. Syntax: declare user_info_$homedir entry (char(*)); call user_info_$homedir (hdir); Arguments: hdir is the pathname of the user's home directory (maximum of 64 characters). (Output) :Entry: limits: 03/08/85 user_info_$limits Function: This entry point returns the limit values established for the user by the project administrator and also returns the user's spending against these limits. If a limit is specified as open, the limit value returned is 1.0e37. Syntax: declare user_info_$limits entry (float bin, float bin, fixed bin(71), fixed bin, (0:7) float bin, float bin, float bin, (0:7) float bin); call user_info_$limits (mlim, clim, cdate, crf, shlim, msp, csp, shsp); Arguments: mlim is the dollar amount the user can spend in the month. (Output) clim is the dollar amount the user can spend (cutoff limit). (Output) cdate is the cutoff date. (Output) crf is the cutoff refresh code. (Output) This indicates what happens at the cutoff date: 0 permanent cutoff 1 add one day 2 add one month 3 add one year 4 add one calendar year 5 add one fiscal year shlim is an array that shows the dollar amount the user can spend per shift. (Output) msp is the month-to-date spending in dollars. (Output) csp is the spending against the cutoff limit in dollars. (Output) shsp is the array of spending against shift limits in dollars. (Output) :Entry: load_ctl_info: 03/08/85 user_info_$load_ctl_info Function: This entry point returns load control information for the user. Syntax: declare user_info_$load_ctl_info entry (char(*), fixed bin, fixed bin(71), fixed bin); call user_info_$load_ctl_info (group, stby, preempt_time, weight); Arguments: group is the name of the load control group. (Output) stby indicates whether a user is a standby user (i.e., one who can be preempted). (Output) 1 can be preempted 0 cannot be preempted preempt_time is the clock time after which the user becomes standby. (Output) weight is 10 times the user's weight. (Output) Weight is a measure of the load placed on the system by the user; most users have a weight of 1. :Entry: login_arg_count: 03/08/85 user_info_$login_arg_count Function: This entry point returns the number of arguments which were provided to the process by the command responsible for the creation of the process. For an absentee process, arguments are given to the enter_abs_request command, using the control argument -arguments. For interactive and daemon processes, arguments are specified on the login command line, also using the control argument -arguments. Syntax: declare user_info_$login_arg_count entry (fixed bin, fixed bin (21), fixed bin (21)); call user_info_$login_arg_count (count, max_length, total_length); Arguments: count is a number representing the number of arguments supplied by the command which caused the process creation. (Output) max_length is the length of the longest login argument. (Output) total_length is the total length of all the login arguments. (Output) :Entry: login_arg_ptr: 03/08/85 user_info_$login_arg_ptr Function: This entry point returns a pointer to the character-string login argument specified by the argument number, and also returns the length of the argument-string. See the description of user_info_$login_arg_count for more information about login arguments. Syntax: declare user_info_$login_arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); call user_info_$login_arg_ptr (arg_no, arg_ptr, arg_len, code); Arguments: arg_no is an integer specifying the number of the desired argument. (Input) arg_ptr is a pointer to the unaligned character-string argument specified by arg_no. (Output) arg_len is the length (in characters) of the argument specified by arg_no. (Output) code is a standard status code. (Output) If the code error_table_$noarg is returned, the values of arg_ptr and arg_len are undefined. :Entry: login_data: 03/08/85 user_info_$login_data Function: This entry point returns useful information about how the user logged in. Syntax: declare user_info_$login_data entry (char(*), char(*), char(*), fixed bin, fixed bin, fixed bin, fixed bin(71), char(*)); call user_info_$login_data (person_id, project_id, acct, anon, stby, weight, time_login, login_word); Arguments: person_id is the user's name from the login line (maximum of 22 characters). (Output) project_id is the user's project identifier (maximum of 9 characters). (Output) acct is the user's account identifier (maximum of 32 characters). (Output) anon indicates whether a user is an anonymous user. (Output) 1 is anonymous 0 is not anonymous stby indicates whether a user is a standby user (i.e., one who can be preempted). (Output) 1 can be preempted 0 cannot be preempted weight is 10 times the user's weight. (Output) See the user_info_$load_ctl_info entry point. time_login is the time the user logged in. (Output) It is expressed as a calendar clock reading in microseconds. login_word is "login" or "enter," depending on which command was used to log in. (Output) :Entry: logout_data: 03/08/85 user_info_$logout_data Function: This entry point returns information about how the user logs out. Syntax: declare user_info_$logout_data entry (fixed bin(71), bit(36) aligned); call user_info_$logout_data (logout_channel, logout_pid); Arguments: logout_channel is the event channel over which logouts are to be signalled. (Output) logout_pid is the process identifier of the answering service. (Output) :Entry: outer_module: 03/08/85 user_info_$outer_module Function: This entry point returns the name of the user's outer module. Syntax: declare user_info_$outer_module entry (char(*)); call user_info_$outer_module (om); Arguments: om is the name of the user's outer module (maximum of 32 characters). (Output) The outer module is the initial I/O module attached to the user_i/o switch. :Entry: process_type: 03/08/85 user_info_$process_type Function: This entry point returns information about the type of the current process. Syntax: declare user_info_$process_type entry (fixed bin (17)); call user_info_$process_type (process_type); Arguments: process_type is the type of the user's current process. (Output) It can be: 1 interactive 2 absentee 3 daemon :Entry: responder: 03/08/85 user_info_$responder Function: The user_info_$responder entry point returns the name of the user's login responder. Syntax: declare user_info_$responder entry (char(*)); call user_info_$responder (resp); Arguments: resp is the name of the user's login responder (maximum of 64 characters). (Output) :Entry: ring_range: 12/07/87 user_info_$ring_range Function: This entry returns the range of the user's authorized login ring level. Syntax: dcl user_info_$ring_range entry ((2) fixed bin); call user_info_$ring_range (ring_range); Arguments: ring_range is the range (1 to 7) of the user's authorized login ring. :Entry: rs_name: 03/08/85 user_info_$rs_name Function: This entry returns the name of the rate structure that is in effect for the process in which the call is made. Syntax: dcl user_info_$rs_name entry (char (*)); call user_info_$rs_name (rs_name); Arguments: rs_name is the name of the rate structure in effect for this process. (Output) (The name may be up to 32 characters long). :Entry: rs_number: 03/08/85 user_info_$rs_number Function: This entry returns the number of the rate structure that is in effect for the process in which the call is made. Syntax: dcl user_info_$rs_number entry (fixed bin (9)); call user_info_$rs_number (rs_number); Arguments: rs_number is the number of the rate structure in effect for this process. (Output) :Entry: service_type: 03/08/85 user_info_$service_type Function: This entry point returns the service type of the terminal on which the user logged in. Syntax: declare user_info_$service_type entry (fixed bin); call user_info_$service_type (type); Arguments: type is a number representing the service type of the user's terminal. (Output) It can be: 1 login type; interactive command level. 2 FTP type; Advanced Research Projects Agency Network (ARPANET) file transfer protocol :Entry: terminal_data: 03/08/85 user_info_$terminal_data Function: This entry point returns information about the terminal on which the user is logged in. Syntax: declare user_info_$terminal_data entry (char(*), char(*), char(*), fixed bin, char(*)); call user_info_$terminal_data (id_code, type, channel, line_type, charge_type); Arguments: id_code is the identifier code of the user's terminal (maximum of 4 characters). (Output) type is the type of terminal as it was at login time. (Output) channel is the channel identification (maximum of 32 characters). (Output) line_type is the line type associated with the channel. (Output) charge_type is the name of the device charge associated with the user's login terminal (maximum of 8 characters). (Output) The rate can be found in the array returned by system_info_$device_prices. :Entry: usage_data: 03/08/85 user_info_$usage_data Function: This entry point returns user usage data. Syntax: declare user_info_$usage_data entry (fixed bin, fixed bin(71), fixed bin(71), fixed bin(71), fixed bin(71), fixed bin(71)); call user_info_$usage_data (nproc, old_cpu, time_login, time_create, old_mem, old_io_ops); Arguments: nproc is the number of processes created for this login session. (Output) old_cpu is the CPU time used by previous processes in the login session. (Output) time_login is the time the user logged in. (Output) It is expressed as a calendar clock reading in microseconds. time_create is the time that the current process was created. (Output) old_mem is the memory usage by previous processes in this login session. (Output) old_io_ops is the number of terminal I/O operations by previous processes in this login session. (Output) :Entry: whoami: 03/08/85 user_info_$whoami Function: The user_info_$whoami entry point is the same as the user_info_ entry point. The name is a mnemonic device added for convenience. Syntax: declare user_info_$whoami entry (char(*), char(*), char(*)); call user_info_$whoami (person_id, project_id, acct); Arguments: person_id is the user's name from the login line (maximum of 22 characters). (Output) project_id is the user's project identifier (maximum of 9 characters). (Output) acct is the user's account identifier (maximum of 32 characters). (Output) ----------------------------------------------------------- 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