/* Begin include file as_user_message_system.incl.pl1 BIM 1985-01-11 */ /* format: style4 */ /**** Per-system and per-user information on the as_user_message segments */ /**** Declaration used to construct the name of one of the set of segments */ declare 1 as_user_message_segment_name unaligned, 2 constant char (16), /* as_user_message_ */ 2 index picture "99"; declare AS_USER_MESSAGE_SEGMENT_NAME_CONSTANT char (16) init ("as_user_message_") int static options (constant); /**** as_user_messages (mis)-use the pad bits in a message segment message ID to identify which of one of a series of segments to find the message in. */ declare 1 as_user_message_id aligned, /* use UNSPEC, not based (addr) */ 2 segment_index fixed bin (9) unsigned unaligned, 2 pad bit (11) unaligned, 2 pad_clock bit (52) unaligned; /**** Data stored in the as_user_message_system segment. This is the shared overhead database, including the associative memory of messages and destination processes. */ declare AS_USER_MESSAGE_SYSTEM_NAME char (32) init ("as_user_message_system") int static options (constant); declare as_user_message_system_info_ptr pointer; declare 1 as_user_message_system_info aligned based (as_user_message_system_info_ptr), 2 header aligned, 3 sentinel char (8) aligned, /* Version, but mostly validity check */ 3 time_of_bootload fixed bin (71), /* was this segment initialized in this bootload? */ 3 lock bit (36) aligned, /* on segment creation/deletion */ 3 n_segments fixed bin, /* total created */ 3 highest_in_use fixed bin (35), /* update with stacq */ 2 pad (9) bit (36) aligned, 2 destination_am (16000) aligned, /* each entry is 16 words. Listen UP, compiler */ 3 process_id bit (36) aligned, 3 ring fixed bin (3) unsigned unaligned, 3 reader_deletes bit (1) unaligned, 3 pad bit (32) unaligned, 3 handle bit (72) aligned, 3 message_id bit (72) aligned, 3 group_id char (32) unaligned, 3 access_class bit (72) aligned; declare AS_USER_ANY_PROCESS_ID bit (36) aligned init ("777777777777"b3) int static options (constant); /**** + To look for a message, do the following: initialize the message_id to 72 1's. loop on the process_id_list, setting px as index; if the process_id (px) is ANY_PROCESS_ID or the target process id then do; if handle_list (px) is the desired handle then do; if the process_id match was exact then message_id = min (message_id, message_id (px)); otherwise do; read out the mesage for message_id (px), determine if it is really for target_process. If so, message_id = min (message_id, message_id (px)); end; end; end; If message_id = 72 1's, then there is no message destined for this handle for this process. Otherwise, message_id is the id of the first message for this handle. */ declare AS_USER_MESSAGE_SYSTEM_SENTINEL char (8) aligned init ("asumsys1") int static options (constant); /**** Data for each user process */ /**** *system variable to find this stuff with */ declare as_user_message_perprocess_info_ptr pointer; declare 1 as_user_message_perprocess_info aligned based (as_user_message_perprocess_info_ptr), 2 sentinel char (8) aligned, 2 mseg_ptr (0:99) pointer options (packed); /* for mseg_ */ declare AS_USER_MESSAGE_PROCESS_SENTINEL char (8) aligned init ("asumprc1") int static options (constant); /* End include file as_user_message_system.incl.pl1 */ */ ----------------------------------------------------------- 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 */