/* BEGIN INCLUDE FILE...iodd_static.incl.pl1 */ /****^ HISTORY COMMENTS: 1) change(85-02-14,Homan), approve(87-04-06,MCR7656), audit(87-06-13,Beattie), install(87-08-06,MR12.1-1068): Add support for logout_on_hangup option. 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): Add head/tail_sheet entry variables and paper_type variable. END HISTORY COMMENTS */ /* format: style4 */ dcl stat_p int static ptr; dcl 1 iodd_static based (stat_p) aligned, /* The first part is set only once for a device driver */ 2 ithp ptr, /* pointer to iod tables header */ 2 ltp ptr, /* pointer to line table */ 2 idtp ptr, /* pointer to device tab */ 2 mdtp ptr, /* pointer to minor device table */ 2 qgtp ptr, /* pointer to q_group table */ 2 dev_class_ptr ptr, /* pointer to device class table */ 2 text_strings_ptr ptr, /* pointer to iod tables text strings */ 2 driver_list_ptr ptr, /* pointer to list of driver status seg pointers */ 2 chan_list_ptr ptr, /* pointer to list of event channels for blocking */ 2 sys_dir_ptr ptr, /* ptr to 168 char string defining sys_dir */ 2 coord_proc_id bit (36), /* process id of coordinator for wakeups */ 2 driver_proc_id bit (36), /* process id of driver for locking */ 2 re_init_label label, /* where to go after "re_init" or "slave_logout" */ 2 no_coord_label label, /* where to go for a no_coord condition */ 2 log_stream char (32), /* stream name used for log output */ 2 master_input char (32), /* master console input stream for commands */ 2 master_output char (32), /* master console output stream for messages */ 2 master_out ptr, /* master output iocbp */ 2 master_in ptr, /* master input iocbp */ 2 log_iocbp ptr, /* log output iocbp */ 2 error_io ptr, /* error i/o iocbp */ 2 dev_io_stream char (32), /* stream used to attach the major device */ 2 dev_in_stream char (32), /* input stream if different from dev_io_stream */ 2 dev_out_stream char (32), /* output stream if different from dev_io_stream */ 2 device_dim char (32), /* dim which drives the major device */ 2 attach_name char (32), /* channel or dial id for attaching major device */ 2 attach_type fixed bin, /* what previous is: 1 = iom, 2 = tty, 3 = dial, 4 = variable line */ 2 dev_dial_id char (8), /* non null if device is to be dialed to driver */ 2 line_tab_idx fixed bin, /* for attach type 4, this is the entry index, else 0 */ 2 dial_ev_chan fixed bin (71), /* IPC chan for dial control */ 2 major_device char (32), /* name of the major device */ 2 major_args unaligned like text_offset, /* descriptive string for the major device */ 2 coord_cmd_chan fixed bin (71), /* IPC chan to send commands to coord through coord_comm.ms */ 2 cmd_ack_chan fixed bin (71), /* IPC chan for coord to return command status code */ 2 timer_chan fixed bin (71), /* IPC chan for unblocking if nothing happens */ 2 io_daemon_version char (8), /* current version number of the io daemon driver */ 2 extra_static (8) fixed bin (35), /* unused space - non_dynamic */ 2 dummy_ptr ptr, /* a dummy pointer for the driver module */ /* driver module entrypoints are defined by the following entry variables */ 2 driver_init entry variable options (variable), 2 driver_request entry variable options (variable), 2 driver_command entry variable options (variable), 2 driver_default_handler entry variable options (variable), /* entrypoints for head/tail_sheet_ entries */ 2 print_head_sheet entry (ptr, ptr, ptr, fixed bin (35)) variable, 2 print_head_separator entry (ptr, ptr, char (*), fixed bin (35)) variable, 2 print_tail_sheet entry (ptr, ptr, ptr, fixed bin (35)) variable, 2 paper_type fixed bin, /* type of paper being used */ /* 1 = single sheet */ /* 2 = continuous forms */ /* The remainder of the data may be dynamic during the device driver's existence */ 2 extra_dynamic (14) fixed bin (35), /* unused space - dynamic */ 2 auto_logout_interval fixed bin, /* minutes to wait for inactivity logout */ 2 requests_til_cmd fixed bin, /* number of requests to go before returning to cmd level */ 2 assigned_devices fixed bin, /* number of minor devices assigned to major device */ 2 current_devices fixed bin, /* number of devices currently active in process */ 2 output_device char (32), /* name of minor device currently in use */ 2 wakeup_time fixed bin (71), /* time interval between timer wakeups */ 2 auto_start_delay fixed bin (71), /* time to wait before performing an auto-start after quit */ 2 driver_ptr ptr, /* pointer to driver status seg currently in use */ 2 segptr ptr, /* ptr to current user segment being processed */ 2 flags, /* control flags */ 3 initialized bit (1) unal, /* all driver data bases are initialized */ 3 test_entry bit (1) unal, /* driver test entry was called */ 3 request_in_progress bit (1) unal, /* driver executing a request */ 3 recursion_flag bit (1) unal, /* recursive unclaimed signal */ 3 no_coord_flag bit (1) unal, /* process is ready to accept a no_coord signal */ 3 logout_pending bit (1) unal, /* logout after all pending requests are done */ 3 master_hold bit (1) unal, /* master_hold at command level */ 3 slave_hold bit (1) unal, /* slave hold at command level */ 3 step bit (1) unal, /* run in step mode */ 3 quit_during_request bit (1) unal, /* a quit occured, don't wait for wakeup */ 3 runout_requests bit (1) unal, /* hold after all pending requests are done */ 3 re_init_in_progress bit (1) unal, /* driver processing a re_init signal */ 3 quit_signaled bit (1) unal, /* set to "1"b by quit handler for anyone who is curious */ 3 auto_logout_pending bit (1) unal, /* inactivity limit exceeded, logout after next wakeup */ 3 logout_on_hangup bit (1) unal, /* logout instead of reinit if set */ 3 pad bit (21) unal, /* unused space */ 2 slave, /* slave control device data (ctl term or remote reader) */ 3 slave_input char (32), /* slave input stream name */ 3 slave_output char (32), /* slave output stream name */ 3 slave_pad fixed bin, /* allocation breakage */ 3 slave_in ptr, /* slave input iocbp */ 3 slave_out ptr, /* slave output iocbp */ 3 slave_ev_chan fixed bin (71), /* event channel the slave device blocks on */ 3 active bit (1) unal, /* on if there is a slave */ 3 accept_input bit (1) unal, /* on if commands may come from the slave */ 3 allow_quits bit (1) unal, /* on if we allow slave to send quits */ 3 print_errors bit (1) unal, /* on if errors will be sent to the slave */ 3 log_msg bit (1) unal, /* on if log messages are to be sent to the slave */ 3 priv1 bit (1) unal, /* driver_module defined slave privileges */ 3 priv2 bit (1) unal, 3 priv3 bit (1) unal, 3 echo_cmd bit (1) unal, /* on if each slave cmd should be written back */ 3 slave_bit_pad bit (27) unal, /* unused space */ 2 ctl_term, /* control terminal data */ 3 ctl_attach_name char (32), /* dial id, tty chan, or mrd_ device */ 3 ctl_attach_type fixed bin, /* attach name meaning: 1=line, 2=dial, 3=mrd_source */ 3 ctl_pad fixed bin, /* allocation breakage */ 3 ctl_dial_chan fixed bin (71), /* ipc event channel for dial comm */ 3 ctl_input char (32), /* ctl input stream name */ 3 ctl_output char (32), /* ctl output stream name */ 3 ctl_io char (32), /* ctl i/o stream name */ 3 ctl_dev_dim char (32), /* ctl_io attached with this dim */ 3 ctl_ev_chan fixed bin (71), /* IPC event chan ctl term blocks on */ 3 ctl_device char (32), /* ctl terminal device name */ 3 form_type char (16), /* format type if printing forms */ 3 attached bit (1) unal, /* ctl term attached to process */ 3 forms bit (1) unal, /* on if printing forms */ 3 pad bit (34) unal, 2 admin_ec_name char (32), /* name of the ec to use with the "x" command */ 2 expansion_space (100) fixed bin; /* reserved space...use at your own risk */ /* END INCLUDE FILE ... iodd_static.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 */