/* BEGIN INCLUDE FILE ... tp_master_table.incl.pl1 */ /* Revised 9-Jan-79 by M. N. Davidoff Modified 13-Aug-79 by M. N. Davidoff to add master_table.use_xcn_mode. */ /* automatic */ declare channel_offset offset (master_table.area); declare io_offset offset (master_table.area); declare master_table_ptr pointer; declare worker_offset offset (master_table.area); /* based */ /* master table including the master process entry */ declare 1 master_table aligned based (master_table_ptr), 2 header, 3 alloc_lock bit (36), /* allocation lock */ 3 tp_dir char (168) unaligned, /* TP subsystem's directory */ 3 tp_state fixed binary (17), /* state of the TP subsystem */ 3 tp_start_time fixed binary (71), /* time of last tp_start, 0 if none */ 3 tp_stop_time fixed binary (71), /* time of last tp_stop, 0 if none */ 3 transaction_no_lock bit (36), /* getting next transaction number lock */ 3 transaction_no fixed decimal (30), /* current transaction number */ 3 message_sequence_no_lock bit (36), /* getting next message sequence number lock */ 3 message_sequence_no fixed decimal (30), /* to ensure order of messages within a transaction */ 3 tp_flags unaligned, 4 immediate_shutdown bit (1), /* on if -immediate control argument given to tp_stop */ 4 use_xcn_mode bit (1), /* on to run transactions using vfile_'s transaction mode */ 4 pad bit (34), 3 pad bit (36), 3 master, /* master process information */ 4 user_id char (32) unaligned, /* master process's User_id */ 4 lock_id bit (36), /* master process's lock_id */ 4 process_id bit (36) unaligned, /* master process's process_id */ 4 outer_module char (32) unaligned, /* master process's outer module */ 4 monitor_event_channel fixed binary (71), /* event-call channel for the master process monitor */ 4 worker_error_event_channel fixed binary (71), /* event-call channel for worker errors */ 4 io_error_event_channel fixed binary (71), /* event-call channel for I/O process errors */ 3 worker_process_chain offset (master_table.area), /* start of worker process entry chain */ 3 io_process_chain offset (master_table.area), /* start of I/O process entry chain */ 3 user_wakeup (MAX_TP_USERS), /* signed on user table, parallels person-name table entries */ 4 lock_id bit (36), /* lock_id of I/O process the tp_user is on */ 4 channel_offset offset (master_table.area), /* offset of channel entry the tp_user is on */ 2 area area (sys_info$max_seg_size - divide (length (unspec (master_table.header)), 36, 19)); /* worker process entry */ declare 1 worker aligned based (worker_offset), 2 next_worker offset (master_table.area), /* next worker entry in worker process entry chain */ 2 state fixed binary (17), /* state of the worker process */ 2 name char (32) unaligned, /* worker process's name */ 2 user_id char (32) unaligned, /* worker process's User_id */ 2 lock_id bit (36), /* worker process's lock_id */ 2 process_id bit (36) unaligned, /* worker process's process_id */ 2 flags unaligned, 3 dont_restart bit (1), /* on if master process shouldn't restart this worker process */ 3 pad bit (35), 2 wakeup_lock bit (36), /* locked if wakeup was sent or transaction being run */ 2 event_channel fixed binary (71), /* event-wait channel to wakeup the worker on */ 2 current_transaction, 3 transaction_no fixed decimal (30), /* transaction number */ 3 deadline fixed binary (71), /* transaction's deadline */ 3 tp_user_id char (32) unaligned, /* tp_user who submitted transaction */ 3 user_index fixed binary (17), /* user table index of tp_user_id */ 3 command_name char (32) unaligned; /* command user typed */ /* I/O process entry */ declare 1 io aligned based (io_offset), 2 next_io offset (master_table.area), /* next io in I/O process entry chain */ 2 state fixed binary (17), /* state of the I/O process */ 2 name char (32) unaligned, /* I/O process's name */ 2 user_id char (32) unaligned, /* I/O process's User_id */ 2 lock_id bit (36), /* I/O process's lock_id */ 2 process_id bit (36) unaligned, /* I/O process's process_id */ 2 outer_module char (32) unaligned, /* I/O process's outer module */ 2 pad bit (36), 2 monitor_wakeup_lock bit (36), /* locked if wakeup was sent on monitor_event_channel */ 2 monitor_event_channel fixed binary (71), /* event-call channel for I/O process shutdown */ 2 dial_event_channel fixed binary (71), /* event channel for dialups and dial_manager_ */ 2 dial_id char (12) unaligned, /* dial_id that this process accepts */ 2 channel_chain offset (master_table.area), /* start of channel entry chain */ 2 flags unaligned, 3 registered_dial bit (1), /* on if dial_id is registered */ 3 dont_restart bit (1), /* on if master process shouldn't restart this I/O process */ 3 pad bit (34); /* channel entry of an I/O process */ declare 1 channel aligned based (channel_offset), 2 next_channel offset (master_table.area), /* next channel in channel entry chain */ 2 name char (32) unaligned, /* this channel's name */ 2 type fixed binary (17), /* how this channel is attached */ 2 device, 3 outer_module char (32) unaligned, /* I/O module connected to the channel */ 3 tp_tty_outer_module_index fixed binary (17), /* used by tp_tty_ only */ 3 devx fixed binary (17), /* ring 0 device index */ 2 ipc, 3 wakeup_lock bit (36), /* locked if a wakeup was sent on event_channel */ 3 process_id bit (36) unaligned, /* I/O process's process_id */ 3 event_channel fixed binary (71), /* event-call channel for input/output */ 2 user, /* information about the TP user on this channel */ 3 user_state fixed binary (17), /* what's going on now */ 3 tp_user_id char (32) unaligned, /* what tp_user is signed on */ 3 user_index fixed binary (17), /* user table index of tp_user_id */ 3 flags unaligned, 4 test_mode bit (1), /* on if user is in test mode */ 4 signoff_hold bit (1), /* on for tp_io_signoff -hold */ 4 pad bit (34), 3 pad bit (36), 2 output, /* information about the output being printed on this channel */ 3 transaction_no fixed decimal (30), /* transaction that generated the output */ 3 deadline fixed binary (71), /* original deadline of the transaction */ 3 write_position fixed binary (21), /* position in message of next char, 0 if message finished */ 3 heading_length fixed binary (21), /* length of header message */ 3 heading char (256) unaligned, /* transaction header message */ 3 flags unaligned, 4 user_messages bit (1), /* on if a TP_user_id destination message was found */ 4 shutdown_message_sent bit (1), /* on if the TP shutdown message has been sent */ 4 pad bit (34), 2 terminal_info, /* information about a user's terminal */ 3 id char (4) unaligned, /* terminal id from answerback */ 3 term_type char (32) unaligned, /* terminal type name */ 3 line_type fixed binary (17), /* line type number */ 3 baud_rate fixed binary (17); /* baud rate at which the terminal is running */ /* internal static */ declare INIT_DATABASE_EC char (19) internal static options (constant) initial ("tp_init_database.ec"); declare MASTER_TABLE_NAME char (16) internal static options (constant) initial ("tp_master_table_"); declare MAX_TP_USERS fixed binary internal static options (constant) initial (200); declare TCF_IO_SWITCH_NAME char (4) internal static options (constant) initial ("tcf_"); declare TCF_NAME char (6) internal static options (constant) initial ("tp.tcf"); /* TP subsystem states */ declare TP_DOWN fixed binary internal static options (constant) initial (0); declare TP_UP fixed binary internal static options (constant) initial (1); declare TP_START_SHUTDOWN fixed binary internal static options (constant) initial (2); declare TP_SHUTDOWN fixed binary internal static options (constant) initial (3); /* worker process states */ declare WORKER_RUN fixed binary internal static options (constant) initial (0); declare WORKER_FINISH_CURRENT fixed binary internal static options (constant) initial (1); declare WORKER_FINISH_ALL fixed binary internal static options (constant) initial (2); /* I/O process states */ declare IO_ACCEPT_INPUT fixed binary internal static options (constant) initial (0); declare IO_WAIT_FOR_WORKERS fixed binary internal static options (constant) initial (1); declare IO_LOGOUT_WHEN_DONE fixed binary internal static options (constant) initial (2); /* channel entry channel types */ declare OWN_CHANNEL fixed binary internal static options (constant) initial (1); declare DIALED_CHANNEL fixed binary internal static options (constant) initial (2); declare SLAVE_CHANNEL fixed binary internal static options (constant) initial (3); /* channel entry user_states */ declare SIGNED_OFF fixed binary internal static options (constant) initial (0); declare WAITING_FOR_PASSWORD fixed binary internal static options (constant) initial (1); declare SIGNED_ON fixed binary internal static options (constant) initial (2); declare SIGNING_OFF fixed binary internal static options (constant) initial (3); declare SIGNOFF_OUTPUT_WAIT fixed binary internal static options (constant) initial (4); /* external static */ declare sys_info$max_seg_size fixed binary (19) external static; declare tp_channel_offset_ offset (master_table.area) external static initial (null); declare tp_io_offset_ offset (master_table.area) external static initial (null); declare tp_master_table_ptr_ pointer external static initial (null); declare tp_worker_offset_ offset (master_table.area) external static initial (null); /* END INCLUDE FILE ... tp_master_table.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 */