/* BEGIN INCLUDE................... imp_wired_buffers ........... */ /* FOR IMP DIM */ /* This file defines the structure of wired buffers to be used by IMP DIM for sending messages out. */ /* Structure maintained in imp_data so that it remains wired all the time. It is needed by the interrupt side to determine whether or not a page is wired before touching the page */ dcl imp_data$wbuf ext aligned; dcl 1 wbuf based aligned, 2 swb_pages fixed bin, /* number of pages in use for small wired buffers */ 2 lwb_pages fixed bin, /* number of pages in use for large wired buffers */ 2 total_pages fixed bin, /* = swb_pages + lwb_pages + 1 (for emergency) */ 2 page_wired (0:35) bit (1) unaligned, /* If on corresponding page _m_u_s_t be wired */ 2 page_tobe_unwired (0:35) bit (1) unaligned; /* If on corresponding page _m_a_y be unwired. */ dcl (buffers_wired, buffers_tobe_unwired) bit (36) aligned based; /* Structure for examining entire array */ /* Actual buffers are in the segment imp_wired_buffers$. This segment consists of pages. Each page has a page header at the beginning followed by buffers. A page contains either small or large buffers but not both kinds. The page header for both the large and small buffer pages are identical except except for one bit which is on in the small buffer pages and off in the large buffer pages. */ dcl imp_wired_buffers$ ext aligned; /* Structure of the wired buffer segment */ dcl 1 iwb based aligned, 2 pages (0:255) bit (36*1024) aligned; /* It is a sequence of pages */ /* Structure of (buffer) pages */ dcl 1 swbpage aligned based, /* small wired buffer page */ 2 header like wbp_header, /* It is a page header followed by ... */ 2 buffer (0:30) like swbuffer; /* an array of small wired buffers */ dcl 1 lwbpage based aligned, /* large wired buffer page */ 2 header like wbp_header, /* It is a page header followed by ... */ 2 buffer (0:3) like lwbuffer; /* an array of large wired buffers */ /* Structure of buffer page header (common to small and large) */ dcl 1 wbp_header based aligned, /* _wired _buffer _page header */ 2 small_buffers bit (1) aligned, /* On if page contains small buffers */ 2 wiring_needed fixed bin, /* Number of buffers that are wired in this page */ 2 times_unwired fixed bin, /* Number of times this page has been unwired. */ 2 filler1 fixed bin, 2 total_time_wired fixed bin (71), 2 time_last_wired fixed bin (71), 2 filler2 (24) bit (36) aligned; /* Page header is 32 words long */ /* Structure of small and large buffers and a structure common to both */ dcl 1 swbuffer aligned based, /* Structure of _small _wired buffer */ 2 header like wbheader, /* It is buffer header followed by .... */ 2 text bit (936); /* the text. */ dcl 1 lwbuffer aligned based, /* Structure of _large _wired buffer */ 2 header like wbheader, /* It is buffer header followed by .... */ 2 text bit (8040), /* the text, followed by .... */ 2 filler bit (648); /* the filler */ dcl 1 wbuffer aligned based, /* Structure common to small and large buffers */ 2 header like wbheader, 2 text bit (4096); dcl wbufferp pointer; /* Pointer used to reference a wired buffer */ /* Structure of buffer header */ dcl 1 wbheader aligned based, 2 misc aligned, 3 filler1 bit (2) unaligned, 3 in_use bit (1) unaligned, 3 page bit (9) unaligned, /* The page number where this page belongs */ 3 filler bit (24) unaligned, 2 thread aligned, /* bufferq thread */ 3 (forward, backward) bit (18) unaligned, 2 (max_bits, bit_offset, bit_length) fixed bin, 2 filler bit (36); /* Wired buffer header is six words long */ /* The foolowing structure represents user supplied area in which wired buffer page headers may be copied. */ dcl 1 wbp_header_array (0:255) aligned based, 2 wbp_header like wbp_header; /* END INCLUDE.................... imp_wired_buffers............ */ */ ----------------------------------------------------------- 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 */