COMPILATION LISTING OF SEGMENT send_system_message_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/16/88 1308.1 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,^indattr */ 10 11 /****^ HISTORY COMMENTS: 12* 1) change(85-11-27,Herbst), approve(87-07-13,MCR7697), 13* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 14* New program. 15* 2) change(86-01-29,Herbst), approve(87-07-13,MCR7697), 16* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 17* Changed to accept initial ring number as argument. 18* 3) change(87-04-01,Brunelle), approve(87-07-13,MCR7697), 19* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 20* Add inactivity system message to those allowed. 21* 4) change(87-05-31,GDixon), approve(87-07-13,MCR7697), 22* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 23* Set group_id to null string rather than *.*.*, because the message really 24* is not directed to all users. 25* 5) change(88-07-15,Brunelle), approve(88-09-13,MCR7980), 26* audit(88-09-13,Beattie), install(88-09-16,MR12.2-1112): 27* Change calling sequence to take ptr to UTE instead of individual values. 28* Use users process authorization not Initiailizer's when adding message to 29* the mailbox. This way an upgraded user can delete the message when it is 30* received. 31* END HISTORY COMMENTS */ 32 33 send_system_message_: proc (P_utep, P_message_ptr, P_code); 34 35 /* Sends a message to a specified process_id accompanied by a system_message_ 36* IPS signal. The receiving process has a static handler, 37* system_message_handler_, which responds to this signal by reading all the 38* outstanding system messages for that recipient. The message sent by this 39* program must be of one of the types listed in system_message.incl.pl1. 40* The only types currently implemented are 41* . SYSTEM_MESSAGE_TYPE_AS_WARN, which the Answering Service uses to 42* implement the operator "warn" command; and 43* . SYSTEM_MESSAGE_TYPE_AS_INACTIVITY, which the Answering Service uses to 44* implement the inactivity mechanism. 45**/ 46 47 /* Parameters */ 48 49 dcl P_utep ptr parameter; /* UTE ptr for user to warn */ 50 dcl P_message_ptr ptr parameter; /* ptr to message (Input) */ 51 dcl P_code fixed bin (35) parameter; 52 53 /* Automatic */ 54 55 dcl 1 auto_asum_add_info aligned like as_user_message_add_info; 56 dcl message_len fixed bin (18); 57 58 /* External */ 59 60 dcl error_table_$bad_version fixed bin (35) ext; 61 dcl error_table_$badcall fixed bin (35) ext; 62 63 /* Entries */ 64 65 dcl as_user_message_$priv_add_message entry (ptr, fixed bin (35)); 66 dcl hphcs_$ips_wakeup entry (bit (36) aligned, char (*)); 67 68 /* Builtins */ 69 70 dcl (addr, currentsize, null, unspec) builtin; 71 72 if P_message_ptr = null | P_utep = null then do; 73 BAD_CALL: 74 P_code = error_table_$badcall; 75 return; 76 end; 77 78 utep = P_utep; 79 P_code = 0; 80 81 system_message_ptr = P_message_ptr; 82 83 if system_message.version ^= SYSTEM_MESSAGE_VERSION_1 then do; 84 BAD_VERSION: 85 P_code = error_table_$bad_version; 86 return; 87 end; 88 89 if system_message.type = SYSTEM_MESSAGE_TYPE_AS_WARN then do; 90 if system_message.type_version ^= SYSTEM_MESSAGE_AS_WARN_V1 then go to BAD_VERSION; 91 message_len = currentsize (warn_system_message); 92 end; 93 else if system_message.type = SYSTEM_MESSAGE_TYPE_AS_INACTIVITY then do; 94 if system_message.type_version ^= SYSTEM_MESSAGE_AS_INACTIVITY_V1 then go to BAD_VERSION; 95 message_len = currentsize (inactivity_system_message); 96 end; 97 else if system_message.type = SYSTEM_MESSAGE_TYPE_DM_SHUT then do; 98 if system_message.type_version ^= SYSTEM_MESSAGE_DM_SHUT_V1 then go to BAD_VERSION; 99 message_len = currentsize (dm_shut_system_message); 100 end; 101 else go to BAD_CALL; 102 103 unspec (auto_asum_add_info) = "0"b; 104 auto_asum_add_info.version = AS_USER_MESSAGE_ADD_INFO_VERSION_1; 105 auto_asum_add_info.message_ptr = system_message_ptr; 106 auto_asum_add_info.message_length = message_len; 107 auto_asum_add_info.message_access_class = ute.process_authorization; 108 auto_asum_add_info.destination_info.group_id = ""; 109 /* process id is used instead. */ 110 auto_asum_add_info.destination_info.process_id = ute.proc_id; 111 auto_asum_add_info.destination_info.handle = SYSTEM_MESSAGE_HANDLE; 112 auto_asum_add_info.destination_info.ring = ute.initial_ring; 113 auto_asum_add_info.reader_deletes = "1"b; 114 115 call as_user_message_$priv_add_message (addr (auto_asum_add_info), P_code); 116 117 call hphcs_$ips_wakeup (ute.proc_id, "system_message_"); 118 119 return; 120 121 /* format: off */ 122 /* Begin include file as_user_message_add.incl.pl1 BIM 1985-01-12 */ 1 2 /* format: style4 */ 1 3 1 4 declare as_user_message_add_info_ptr pointer; 1 5 declare 1 as_user_message_add_info aligned based (as_user_message_add_info_ptr), 1 6 2 version char (8) aligned, 1 7 2 message_info aligned, 1 8 3 message_ptr pointer, 1 9 3 message_length fixed bin (18), 1 10 3 pad bit (36) aligned, 1 11 3 message_access_class bit (72) aligned, 1 12 3 message_id bit (72) aligned, /* output */ 1 13 2 destination_info aligned, 1 14 3 group_id char (32) unal, /* stars permitted */ 1 15 3 process_id bit (36) aligned, /* (36)"1"b for ANY */ 1 16 3 handle bit (72) aligned, /* may NOT be zero */ 1 17 3 ring fixed bin (3), 1 18 3 reader_deletes bit (1) aligned; 1 19 1 20 declare AS_USER_MESSAGE_ADD_INFO_VERSION_1 1 21 char (8) init ("auma0001") int static options (constant); 1 22 1 23 /* End include file as_user_message_add.incl.pl1 */ 122 123 /* BEGIN INCLUDE FILE system_message.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 2 5* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 6* Moved SYSTEM MESSAGE_HANDLE to user_message_handles.incl.pl1 2 7* 2) change(87-02-24,Brunelle), approve(87-07-20,MCR7697), 2 8* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 9* added INACTIVITY message same as WARN message to be able to tell messages 2 10* apart. 2 11* 3) change(87-05-30,Brunelle), approve(87-07-20,MCR7697), 2 12* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 13* Added SYSTEM_MESSAGE_TYPES array. 2 14* END HISTORY COMMENTS */ 2 15 2 16 dcl system_message_ptr ptr aligned; 2 17 2 18 dcl 1 system_message_header aligned based, 2 19 2 version char (8), /* version of this structure */ 2 20 2 type fixed bin, /* type of message: AS_WARN_.., etc. */ 2 21 2 type_version char (8); /* version of info for this type */ 2 22 2 23 dcl 1 system_message aligned based (system_message_ptr), /* generic */ 2 24 2 header aligned like system_message_header, 2 25 2 contents bit (0); /* types are of different length */ 2 26 2 27 dcl SYSTEM_MESSAGE_VERSION_1 char (8) int static options (constant) init ("SYSMSG01"); 2 28 2 29 dcl system_message_text_len fixed bin; 2 30 2 31 dcl 1 warn_system_message aligned based (system_message_ptr), 2 32 2 header aligned like system_message_header, 2 33 2 caller char (64), 2 34 2 text_len fixed bin (21), 2 35 2 text char (system_message_text_len refer (warn_system_message.text_len)); 2 36 2 37 dcl 1 inactivity_system_message aligned based (system_message_ptr), 2 38 2 header aligned like system_message_header, 2 39 2 caller char (64), 2 40 2 text_len fixed bin (21), 2 41 2 text char (system_message_text_len refer (inactivity_system_message.text_len)); 2 42 2 43 dcl 1 dm_shut_system_message aligned based (system_message_ptr), 2 44 2 header aligned like system_message_header, 2 45 2 caller char (64), 2 46 2 text_len fixed bin (21), 2 47 2 text char (system_message_text_len refer (dm_shut_system_message.text_len)); 2 48 2 49 dcl (ANY_TYPE init (0), 2 50 SYSTEM_MESSAGE_TYPE_AS_WARN init (1), 2 51 SYSTEM_MESSAGE_TYPE_DM_SHUT init (2), 2 52 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY init (3)) 2 53 fixed bin int static options (constant); 2 54 2 55 dcl (SYSTEM_MESSAGE_AS_WARN_V1 init ("SYSASW01"), 2 56 SYSTEM_MESSAGE_DM_SHUT_V1 init ("SYSDMS01"), 2 57 SYSTEM_MESSAGE_AS_INACTIVITY_V1 init ("SYSASI01")) 2 58 char (8) int static options (constant); 2 59 2 60 dcl SYSTEM_MESSAGE_TYPES (0:3) char(12) varying int static options(constant) 2 61 init("unknown type", "AS warning", "DM shutdown", "inactivity"); 2 62 2 63 2 64 /* END INCLUDE FILE system_message.incl.pl1 */ 123 124 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 3 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 3 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 3 8* attribute switches. 3 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 3 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 3 12* be deleted. 3 13* B) Add constants identifying attributes that can be changed by user at 3 14* login, etc. 3 15* END HISTORY COMMENTS */ 3 16 3 17 3 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 3 19 3 20 /* format: style4 */ 3 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 3 22 (2 administrator bit (1), /* 1 system administrator privileges */ 3 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 3 24 2 nobump bit (1), /* 2 user cannot be bumped */ 3 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 3 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 3 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 3 28* . of same project (distinct from "nobump") */ 3 29 2 nolist bit (1), /* 7 don't list user on "who" */ 3 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 3 31 2 multip bit (1), /* 9 user may have several processes */ 3 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 3 33 2 brief bit (1), /* 11 no login or logout message */ 3 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 3 35 2 vhomedir bit (1), /* 13 user may change homedir */ 3 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 3 37 2 sb_ok bit (1), /* 15 user may be standby */ 3 38 2 pm_ok bit (1), /* 16 user may be primary */ 3 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 3 40 2 daemon bit (1), /* 18 user may login as daemon */ 3 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 3 42 2 no_warning bit (1), /* 20 no warning message */ 3 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 3 44* . in PDT: this user has an individual load control group */ 3 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 3 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 3 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 3 48 2 pad bit (12)) unaligned; 3 49 3 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 3 51 ("none", /* 0 */ 3 52 "administrator", /* 1 */ 3 53 "primary_line", /* 2 */ 3 54 "nobump", /* 3 */ 3 55 "guaranteed_login", /* 4 */ 3 56 "anonymous", /* 5 */ 3 57 "nopreempt", /* 6 */ 3 58 "nolist", /* 7 */ 3 59 "dialok", /* 8 */ 3 60 "multip", /* 9 */ 3 61 "bumping", /* 10 */ 3 62 "brief", /* 11 */ 3 63 "vinitproc", /* 12 */ 3 64 "vhomedir", /* 13 */ 3 65 "nostartup", /* 14 */ 3 66 "no_secondary", /* 15 */ 3 67 "no_prime", /* 16 */ 3 68 "no_eo", /* 17 */ 3 69 "daemon", /* 18 */ 3 70 "", /* 19 vdim OBSOLETE */ 3 71 "no_warning", /* 20 */ 3 72 "igroup", /* 21 */ 3 73 "save_pdir", /* 22 */ 3 74 "disconnect_ok", /* 23 */ 3 75 "save_on_disconnect"); /* 24 */ 3 76 3 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 3 78 ("null", /* 0 */ 3 79 "admin", /* 1 */ 3 80 "", "", /* 2 - 3 */ 3 81 "guar", /* 4 */ 3 82 "anon", /* 5 */ 3 83 "", "", /* 6 - 7 */ 3 84 "dial", /* 8 */ 3 85 "multi_login", /* 9 */ 3 86 "preempting", /* 10 */ 3 87 "", /* 11 */ 3 88 "v_process_overseer", /* 12 */ 3 89 "v_home_dir", /* 13 */ 3 90 "no_start_up", /* 14 */ 3 91 "no_sec", /* 15 */ 3 92 "no_primary", /* 16 */ 3 93 "no_edit_only", /* 17 */ 3 94 "op_login", /* 18 */ 3 95 "", /* 19 */ 3 96 "nowarn", /* 20 */ 3 97 "", "", "", /* 21 - 23 */ 3 98 "save"); /* 24 */ 3 99 3 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 3 101 options(constant) init("000000000010000000010000000000000000"b); 3 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 3 103 3 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 3 105 options(constant) init("000000000010000000010000000000000000"b); 3 106 /* PDT value for (brief, no_warning) is default */ 3 107 3 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 3 109 options(constant) init("000100000110010000010000000000000000"b); 3 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 3 111 4 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* This include file describes the attributes of an absentee job. It is */ 4 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 4 7 /* and PIT.incl.pl1. */ 4 8 /* */ 4 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 10 4 11 /****^ HISTORY COMMENTS: 4 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 4 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 14* Separated abs_attributes from the request structure 4 15* (abs_message_format.incl.pl1) so that the identical structure could be 4 16* used in the ute structure (user_table_entry.incl.pl1). 4 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 4 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 19* Added ABS_ATTRIBUTE_NAMES array. 4 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 4 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 4 22* Added the no_start_up flag. SCP6367 4 23* END HISTORY COMMENTS */ 4 24 4 25 dcl 1 user_abs_attributes aligned based, 4 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 4 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 4 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 4 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 4 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 4 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 4 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 4 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 4 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 4 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 4 36 2 attributes_pad bit (26) unaligned; 4 37 4 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 4 39 "restartable", 4 40 "user_deferred_until_time", 4 41 "proxy", 4 42 "set_bit_cnt", 4 43 "time_in_gmt", 4 44 "user_deferred_indefinitely", 4 45 "secondary_ok", 4 46 "truncate_absout", 4 47 "restarted", 4 48 "no_start_up"); 4 49 4 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 51 3 112 3 113 3 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 124 125 /* BEGIN INCLUDE FILE...user_message_handles.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 5 6* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 7* Added SYSTEM_MESSAGE_HANDLE 5 8* 2) change(86-06-30,Coren), approve(86-06-30,MCR7415), 5 9* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 5 10* Added USER_MESSAGE_LS_CONNECTION_INFO_HANDLE and 5 11* USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 for use by login servers. 5 12* END HISTORY COMMENTS */ 5 13 5 14 /* This include file defines "well-known" handles for as_user_messages, 5 15* i.e., each of the handles defined here will be used for a particular purpose, 5 16* and programs that expect to receive such messages will use the appropriate 5 17* handle to read them. 5 18**/ 5 19 5 20 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE initial ("000000000000777777777777"b3) /* connection_info sent by login server to newly created process */ 5 21 bit (72) aligned internal static options (constant); 5 22 5 23 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 initial ("777777"b3) /* allows upper 54 bits to be used for unique identifier */ 5 24 bit (18) aligned internal static options (constant); 5 25 5 26 dcl SYSTEM_MESSAGE_HANDLE initial ("770007700077000770007700"b3) /* for warn and dm_shut messages */ 5 27 bit (72) aligned internal static options (constant); 5 28 5 29 5 30 /* END INCLUDE FILE...user_message_handles.incl.pl1 */ 125 126 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 6 2 6 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 4 /* */ 6 5 /* This include file requires that the user include */ 6 6 /* user_attributes.incl.pl1 as well. It also includes */ 6 7 /* abs_attributes.incl.pl1 itself. */ 6 8 /* */ 6 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 6 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 6 11 /* */ 6 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 13 6 14 /****^ HISTORY COMMENTS: 6 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 6 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 6 17* This comment for hcom. 6 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 6 19* anstbl.incl.pl1, and dutbl.incl.pl1. 6 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 6 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 6 22* 84-07-12 BIM added min_process_authorization 6 23* 84-12-31 Keith Loepere added pdir_dir_quota 6 24* 85-01-16 by E. Swenson to add ute.session_uid 6 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 6 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 6 27* Added fields for DSA login server support. 6 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 6 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 6 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 6 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 6 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 6 33* Added disconnection_rel_minutes. 6 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 6 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 36* Changed structure under ute.abs_attributes to use like structure in 6 37* abs_attributes.incl.pl1. This allows the same attributes to be used 6 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 6 39* file. 6 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 6 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 6 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 6 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 45* A) Global reorganization to locate things by type of data. 6 46* B) Eliminate ute.uflags.logged_in. 6 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 6 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 49* A) Reduced overlength person and project fields to proper length. 6 50* B) Adjusted dialed-console section to begin on even word boundary. 6 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 6 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 53* Add ute.line_type. 6 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 6 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 6 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 6 57* for the storage. SCP6367 6 58* END HISTORY COMMENTS */ 6 59 6 60 /* format: style4 */ 6 61 6 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 63 /* */ 6 64 /* Each of the named sections below defines a type of data. Typing comes */ 6 65 /* from data associated with the ute entry itself, with the person, with */ 6 66 /* login argument data, from the main user of the data (eg, dialup_, */ 6 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 6 68 /* and is an even number of words long. The total structure is 300 decimal */ 6 69 /* words long. */ 6 70 /* */ 6 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 72 6 73 6 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 6 75 6 76 dcl utep pointer automatic init (null); 6 77 6 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 6 79 6 80 /* Variables which give state of this entry */ 6 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 6 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 6 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 6 84 2 next_free fixed bin, /* points to previous free entry */ 6 85 6 86 /* Information user gave about person_id associated with this entry. */ 6 87 2 person char (24) unal, /* user's name */ 6 88 2 project char (12) unal, /* project of absentee user */ 6 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 6 90 2 tag_pad bit (27) unal, 6 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 6 92 2 login_flags, /* flags for login data */ 6 93 3 cpw bit (1) unal, /* flag for wish to change password */ 6 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 6 95 3 special_pw unal, /* dial or slave */ 6 96 4 dial_pw bit (1) unal, /* true if dial -user */ 6 97 4 slave_pw bit (1) unal, /* true if slave -user */ 6 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 6 99 3 cda bit (1) unal, /* flag to change default authorization */ 6 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 6 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 6 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 6 103 3 pw_pad bit (25) unal, /* spare parts */ 6 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 6 105 /* Must remain last in pw_flags so it does not */ 6 106 /* appear in PW_FLAG_VALUES array below. */ 6 107 2 generated_pw char (8) unal, /* user must type this as new password */ 6 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 6 109 2 process_authorization bit (72), /* access_authorization of this process */ 6 110 6 111 /* Information user gave about process associated with this entry. */ 6 112 2 outer_module char (32) unal, /* Name of console dim */ 6 113 2 home_dir char (64) unal, /* initial home directory */ 6 114 2 init_proc char (64) unal, /* name of login responder */ 6 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 6 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 6 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 6 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 6 119 2 initial_ring fixed bin, /* ring process will be started in */ 6 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 6 121 2 ln_args fixed bin, /* length of string containing arguments */ 6 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 6 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 6 124 6 125 /* Most of the following information is relevant only to absentee processes */ 6 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 6 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 6 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 6 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 6 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 6 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 6 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 6 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 6 134* (but see uflags.adjust_abs_q_no). */ 6 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 6 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 6 137 2 abs_flags, 6 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 6 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 6 140 3 abs_flags_pad bit (34) unal, 6 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 6 142 2 sender char (32) unal, /* name of RJE station that job is from */ 6 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 6 144 2 proxy_project char (9) unal, 6 145 2 proxy_project_pad char (3) unal, 6 146 2 abs_pad fixed bin, 6 147 6 148 /* Information about process actually created */ 6 149 2 proc_id bit (36), /* process id of absentee process */ 6 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 6 151 2 process_authorization_range (2) bit (72) aligned, 6 152 2 audit bit (36), /* audit flags for user */ 6 153 2 lot_size fixed bin, /* Size of linkage offset table */ 6 154 2 kst_size fixed bin, /* Size of process known segment table */ 6 155 2 cls_size fixed bin, /* Size of process combined linkage */ 6 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 6 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 6 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 6 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 6 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 6 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 6 162 2 pdir_pad fixed bin(17) unal, 6 163 2 process_pad fixed bin, 6 164 6 165 /* Information about primary terminal associated with this entry */ 6 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 6 167 2 terminal_type char (32) unaligned, /* terminal type */ 6 168 2 line_type fixed bin, /* line type */ 6 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 6 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 6 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 6 172 6 173 /* Variables useful for dialed terminals */ 6 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 6 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 6 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 6 177 2 dial_server_flags, 6 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 6 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 6 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 6 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 6 182 6 183 /* Information about usage/accounting. Device usage meters are in a 6 184* separate segment, "devtab" */ 6 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 6 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 6 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 6 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 6 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 6 190 2 last_update_time fixed bin (71), /* time of last account update */ 6 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 6 192 2 ndevices fixed bin, /* Count of attached devices */ 6 193 2 device_head fixed bin, /* Table index of head of device chain */ 6 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 6 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 6 196 2 rs_number_pad bit(30) unal, 6 197 2 usage_pad fixed bin, 6 198 6 199 /* Information for dialup_ (control variables). */ 6 200 2 event fixed bin (71), /* event associated with channel or user manager */ 6 201 2 uprojp ptr, /* ptr to user project sat entry */ 6 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 6 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 6 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 6 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 6 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 6 207 2 count fixed bin, /* counter for logins and dialups */ 6 208 2 n_processes fixed bin, /* number of processes created in this session */ 6 209 2 lock_value fixed bin, /* number of locks set for this entry */ 6 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 6 211 2 login_code char (8) unal, /* login command from LOGIN line */ 6 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 6 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 6 214 2 logout_type char (4) unal, /* type of logout */ 6 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 6 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 6 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 6 218 2 work_class fixed bin, /* work class used by priority scheduler */ 6 219 2 group char (8) unal, /* party group identifier */ 6 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 6 221 6 222 2 uflags, /* Miscellaneous flags */ 6 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 6 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 6 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 6 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 6 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 6 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 6 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 6 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 6 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 6 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 6 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 6 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 6 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 6 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 6 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 6 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 6 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 6 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 6 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 6 242 3 uflags_pad bit (17) unal, 6 243 6 244 /* Information used by load_ctl_ for the process */ 6 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 6 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 6 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 6 248 6 249 6 250 /* Information for login server */ 6 251 2 login_server_info, 6 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 6 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 6 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 6 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 6 256 3 process_id bit (36) aligned, /* process_id of login server */ 6 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 6 258 6 259 /* values for ute.process_type */ 6 260 6 261 dcl (PT_INTERACTIVE initial (1), 6 262 PT_ABSENTEE initial (2), 6 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 6 264 6 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 6 266 "INVALID-TYPE", 6 267 "interactive", 6 268 "absentee", 6 269 "daemon"); 6 270 6 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 6 272 "UNKNOWN-TABLE", 6 273 "answer_table", 6 274 "absentee_user_table", 6 275 "daemon_user_table"); 6 276 6 277 6 278 /* values for ute.pw_flags.mask_ctl */ 6 279 6 280 dcl (DO_MASK init ("00"b), 6 281 DONT_MASK init ("01"b), 6 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 6 283 6 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 6 285 "do_mask", "dont_mask", "derive_mask", ""); 6 286 6 287 6 288 /* names for ute.pw_flags */ 6 289 6 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 6 291 "cpw", 6 292 "generate_pw", 6 293 "dial_pw", 6 294 "slave_pw", 6 295 "cdp", 6 296 "cda", 6 297 "auth_given", 6 298 "noprint", 6 299 "operator"); 6 300 6 301 /* names for ute.uflags */ 6 302 6 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 6 304 "dont_call_init_admin", 6 305 "ip_given", 6 306 "ss_given", 6 307 "lvs_attached", 6 308 "send_initial_string", 6 309 "adjust_abs_q_no", 6 310 "foreground_secondary_ok", 6 311 "foreground_job", 6 312 "sus_sent", 6 313 "suspended", 6 314 "ignore_cpulimit", 6 315 "deferral_logged", 6 316 "save_if_disconnected", 6 317 "disconnected", 6 318 "disconnected_list", 6 319 "proc_create_ok", 6 320 "activity_can_unbump", 6 321 "fpe_causes_logout", 6 322 "user_specified_immediate"); 6 323 6 324 /* names for ute.abs_flags */ 6 325 6 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 6 327 "abs_run", 6 328 "notify"); 6 329 6 330 /* names of ute.dial_server_flags */ 6 331 6 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 6 333 "registered", 6 334 "privileged"); 6 335 6 336 /* values of ute.login_result */ 6 337 6 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 6 339 "logged in", 6 340 "login failed, hangup", 6 341 "login failed, try again"); 6 342 6 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 126 127 128 end send_system_message_; 129 130 131 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/16/88 1308.2 send_system_message_.pl1 >spec>install>1112>send_system_message_.pl1 122 1 03/08/85 0852.7 as_user_message_add.incl.pl1 >ldd>include>as_user_message_add.incl.pl1 123 2 08/06/87 0913.5 system_message.incl.pl1 >ldd>include>system_message.incl.pl1 124 3 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 3-112 4 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 125 5 08/06/87 0913.6 user_message_handles.incl.pl1 >ldd>include>user_message_handles.incl.pl1 126 6 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.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. AS_USER_MESSAGE_ADD_INFO_VERSION_1 000012 constant char(8) initial packed unaligned dcl 1-20 ref 104 P_code parameter fixed bin(35,0) dcl 51 set ref 33 73* 79* 84* 115* P_message_ptr parameter pointer dcl 50 ref 33 72 81 P_utep parameter pointer dcl 49 ref 33 72 78 SYSTEM_MESSAGE_AS_INACTIVITY_V1 000002 constant char(8) initial packed unaligned dcl 2-55 ref 94 SYSTEM_MESSAGE_AS_WARN_V1 000006 constant char(8) initial packed unaligned dcl 2-55 ref 90 SYSTEM_MESSAGE_DM_SHUT_V1 000004 constant char(8) initial packed unaligned dcl 2-55 ref 98 SYSTEM_MESSAGE_HANDLE 000000 constant bit(72) initial dcl 5-26 ref 111 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY constant fixed bin(17,0) initial dcl 2-49 ref 93 SYSTEM_MESSAGE_TYPE_AS_WARN constant fixed bin(17,0) initial dcl 2-49 ref 89 SYSTEM_MESSAGE_TYPE_DM_SHUT constant fixed bin(17,0) initial dcl 2-49 ref 97 SYSTEM_MESSAGE_VERSION_1 000010 constant char(8) initial packed unaligned dcl 2-27 ref 83 addr builtin function dcl 70 ref 115 115 as_user_message_$priv_add_message 000014 constant entry external dcl 65 ref 115 as_user_message_add_info based structure level 1 dcl 1-5 auto_asum_add_info 000100 automatic structure level 1 dcl 55 set ref 103* 115 115 currentsize builtin function dcl 70 ref 91 95 99 destination_info 12 000100 automatic structure level 2 dcl 55 dm_shut_system_message based structure level 1 dcl 2-43 ref 99 error_table_$bad_version 000010 external static fixed bin(35,0) dcl 60 ref 84 error_table_$badcall 000012 external static fixed bin(35,0) dcl 61 ref 73 group_id 12 000100 automatic char(32) level 3 packed packed unaligned dcl 55 set ref 108* handle 23 000100 automatic bit(72) level 3 dcl 55 set ref 111* header based structure level 2 dcl 2-23 hphcs_$ips_wakeup 000016 constant entry external dcl 66 ref 117 inactivity_system_message based structure level 1 dcl 2-37 ref 95 initial_ring 101 based fixed bin(17,0) level 2 dcl 6-78 ref 112 message_access_class 6 000100 automatic bit(72) level 3 dcl 55 set ref 107* message_info 2 000100 automatic structure level 2 dcl 55 message_len 000127 automatic fixed bin(18,0) dcl 56 set ref 91* 95* 99* 106 message_length 4 000100 automatic fixed bin(18,0) level 3 dcl 55 set ref 106* message_ptr 2 000100 automatic pointer level 3 dcl 55 set ref 105* null builtin function dcl 70 ref 72 72 6-76 proc_id 276 based bit(36) level 2 dcl 6-78 set ref 110 117* process_authorization 24 based bit(72) level 2 dcl 6-78 ref 107 process_id 22 000100 automatic bit(36) level 3 dcl 55 set ref 110* reader_deletes 26 000100 automatic bit(1) level 3 dcl 55 set ref 113* ring 25 000100 automatic fixed bin(3,0) level 3 dcl 55 set ref 112* system_message based structure level 1 dcl 2-23 system_message_header based structure level 1 dcl 2-18 system_message_ptr 000130 automatic pointer dcl 2-16 set ref 81* 83 89 90 91 93 94 95 97 98 99 105 text_len 25 based fixed bin(21,0) level 2 in structure "dm_shut_system_message" dcl 2-43 in procedure "send_system_message_" ref 99 text_len 25 based fixed bin(21,0) level 2 in structure "inactivity_system_message" dcl 2-37 in procedure "send_system_message_" ref 95 text_len 25 based fixed bin(21,0) level 2 in structure "warn_system_message" dcl 2-31 in procedure "send_system_message_" ref 91 type 2 based fixed bin(17,0) level 3 dcl 2-23 ref 89 93 97 type_version 3 based char(8) level 3 dcl 2-23 ref 90 94 98 unspec builtin function dcl 70 set ref 103* user_abs_attributes based structure level 1 dcl 4-25 user_attributes based structure level 1 dcl 3-21 ute based structure level 1 dcl 6-78 utep 000132 automatic pointer initial dcl 6-76 set ref 78* 107 110 112 117 6-76* version 000100 automatic char(8) level 2 in structure "auto_asum_add_info" dcl 55 in procedure "send_system_message_" set ref 104* version based char(8) level 3 in structure "system_message" dcl 2-23 in procedure "send_system_message_" ref 83 warn_system_message based structure level 1 dcl 2-31 ref 91 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 4-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 6-326 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 3-77 ANY_TYPE internal static fixed bin(17,0) initial dcl 2-49 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 6-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 6-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 6-280 DO_MASK internal static bit(2) initial packed unaligned dcl 6-280 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 6-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 6-284 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 6-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 6-261 PT_DAEMON internal static fixed bin(17,0) initial dcl 6-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 6-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 6-290 SYSTEM_MESSAGE_TYPES internal static varying char(12) initial array dcl 2-60 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 6-271 UFLAG_NAMES internal static varying char(24) initial array dcl 6-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 3-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 3-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 3-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 3-50 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE internal static bit(72) initial dcl 5-20 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 internal static bit(18) initial dcl 5-23 UTE_version_4 internal static fixed bin(17,0) initial dcl 6-74 as_user_message_add_info_ptr automatic pointer dcl 1-4 system_message_text_len automatic fixed bin(17,0) dcl 2-29 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_CALL 000051 constant label dcl 73 ref 97 BAD_VERSION 000071 constant label dcl 84 ref 90 94 98 send_system_message_ 000032 constant entry external dcl 33 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 322 342 226 332 Length 642 226 20 264 73 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME send_system_message_ 110 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME send_system_message_ 000100 auto_asum_add_info send_system_message_ 000127 message_len send_system_message_ 000130 system_message_ptr send_system_message_ 000132 utep send_system_message_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_user_message_$priv_add_message hphcs_$ips_wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_version error_table_$badcall LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 000026 6 76 000037 72 000041 73 000051 75 000055 78 000056 79 000061 81 000062 83 000065 84 000071 86 000075 89 000076 90 000101 91 000105 92 000112 93 000113 94 000115 95 000121 96 000126 97 000127 98 000131 99 000135 103 000142 104 000145 105 000147 106 000150 107 000152 108 000155 110 000160 111 000162 112 000165 113 000167 115 000171 117 000203 119 000225 ----------------------------------------------------------- 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