/* BEGIN INCLUDE ...............imp_read_write.incl.pl1 .................. */ /* For imp dim. This file describes the structure of read and write link entries. */ dcl 1 link_common aligned, /* Following is common to both read and write links */ 2 event_ch fixed bin (71), /* Event channel over which wakeups are to be sent */ 2 process_id bit (36) aligned, /* Processid of the process */ 2 bufferq aligned, /* header for a chain of buffers */ 3 first bit (18) unaligned, /* If non zero points to first buffer */ 3 last bit (18) unaligned, /* If non zero, points to last buffer */ 2 globalqthread aligned, /* globalqthread goes here. */ 3 forward bit (18) unaligned, /* points to next entry */ 3 backward bit (18) unaligned, /* points to previous entry */ 2 globalqsn fixed bin (34), /* global queue sequence number */ 2 group aligned, /* miscellaneous bits stored here */ 3 in_use bit (1) unaligned, /* If on, this entry is in use. */ 3 link bit (8) unaligned, /* Link number */ 3 link_type bit (1) unaligned, 3 byte_size bit (8) unaligned, /* Byte size of the connection */ 3 index bit (18) unaligned, /* IMP DIM index */ 3 host bit (8) unaligned, /* Number of the foreign host */ 3 imp bit (16) unaligned, /* Number of the foreign IMP */ 3 flags unaligned, 4 host_state bit (1), /* If on, the host is down. */ 4 imp_state bit (1), /* If on, the foreign IMP is down. */ 4 group_id_undefined bit (1), /* If on, process_group_id is unknown */ 4 single_message_mode bit (1), /* If on, only one message per read/write call */ 4 control_link bit (1), /* If on, NCP control link. */ 4 no_ncp bit (1), /* If on, this link is not being used by NCP */ 4 in_globalq bit (1), /* If on, link is in global queue. */ 4 wakeup bit (1), /* If on, user probably is blocked. */ 4 flag_pad bit (4); dcl read_link_p ptr; /* Refer to read entry through this pointer. */ dcl 1 rl aligned based (read_link_p), /* Structure of read link entry */ 2 common_data like link_common; dcl write_link_p ptr; /* Use this pointer to refer to write link entries */ dcl 1 wl aligned based (write_link_p), /* Structure of write link entry */ 2 common_data like link_common, 2 group2 aligned, 3 wfiller10 bit (2) unaligned, 3 in_writeq bit (1) unaligned, /* If on link is in write queue */ 3 wfiller11 bit (2) unaligned, 3 in_rfnmq bit (1) unaligned, /* If on link is in rfnm queue. */ 3 wfiller12 bit (2) unaligned, 3 no_data_for_rfnm bit (1) unaligned, /* If on (only if in rfnm queue) no data corresponds to rfnm */ 3 wfiller13 bit (2) unaligned, 3 block bit (1) unaligned, /* Link has been blocked by an order call */ 3 wfiller14 bit (2) unaligned, 3 pgqlrr bit (1) unaligned, /* If on the link will be put in global queue when the last RFNM has arrived on this link. */ 3 wfiller15 bit (2) unaligned, 3 imp_leader bit (1) unaligned, /* If on, the "for-imp" bit of each message is turned on */ 3 wfiller16 bit (2) unaligned, 3 imp_leader_ascii bit (1) unaligned, /* If on the IMP messages are ascii instead of octal */ 3 wfiller17 bit (2) unaligned, 3 in_buffer_spaceq bit (1) unaligned, 3 wfiller18 bit (2) unaligned, 3 in_large_buffer_spaceq bit (1) unaligned, 3 wfiller19 bit (6) unaligned, 3 write_attempts bit (3) unaligned, /* Number of times current message was transmitted */ 2 writeqthread aligned, /* If this entry is in write queue or RFNM queue then this thread is used. */ 3 forward bit (18) unaligned, 3 backward bit (18) unaligned, 2 bsqthread aligned, /* If this entry is in buffer space quueue the thread goes here. */ 3 forward bit (18) unaligned, /* Points to next entry in the queue */ 3 backward bit (18) unaligned, /* Points to previous entry in the queue */ 2 cur_msg_bits fixed bin, /* Length of current message in bits */ 2 message_allocation fixed bin, /* Allocation for this link */ 2 bit_allocation fixed bin (34), 2 buffer_count fixed bin; /* Number of buffers in the bufferq */ /* CONSTANTS */ dcl (read_link_type init ("0"b), write_link_type init ("1"b)) bit (1) internal static; /* SOME SIMPLE AND USEFUL STRUCTUREs */ dcl link_thread bit (36) aligned based; dcl link_queue_header bit (36) aligned based; dcl (empty_link_queue_header, empty_link_thread) bit (36) aligned init ("0"b) internal static; /* END INCLUDE .......................imp_read.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 */