COMPILATION LISTING OF SEGMENT io_daemon_account_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1338.9 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /****^ HISTORY COMMENTS: 13* 1) change(88-08-19,Brunelle), approve(88-08-19,MCR7911), 14* audit(88-10-21,Wallman), install(88-10-28,MR12.2-1199): 15* Ancient History 16* Modified in March 1975 by J. C. Whitmore for driver restructure 17* Modified June 1976 by J. L. Homan to charge by line count instead of block count. 18* Modified Sept. 1977 by J. C. Whitmore to pass ordatap to user accounting proc (MCR 2934) 19* Modified by J. C. Whitmore, 5/78, to use new per rqt per queue price names 20* Modified by J. C. Whitmore, 8/78, to separate the charge queue from the request queue 21* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 22* Modified by R. McDonald May 1980 to include page charges. (UNCA) 23* Modified by E. N. Kittlitz June 1981 for UNCA page charges 24* Modified by E. N. Kittlitz January 1982 to change null accounting pointer to 25* indicate accounting: nothing; and use a valid pointer for accounting: system; 26* Modified by C. Marker February 23, 1985 to use version 5 message segments 27* 2) change(88-08-19,Brunelle), approve(88-08-19,MCR7911), 28* audit(88-10-18,Wallman), install(88-10-28,MR12.2-1199): 29* Upgraded to version 5 iod tables. Changed to use entry variable to 30* accounting routine, not pointer. 31* END HISTORY COMMENTS */ 32 33 /* format: style4 */ 34 35 io_daemon_account_: proc (account_entry, argp); 36 37 /* Accounting routine for I/O daemon, which will put appropriate a values in a 38* dummy pdt entry and call the routine pointed to by account_entry. 39**/ 40 41 /* Parameters */ 42 43 dcl account_entry entry (char (*), char (*), ptr, fixed bin (35)) variable; /* entry variable to accounting routine */ 44 dcl argp ptr; 45 46 /* External Procedures & Variables */ 47 48 dcl continue_to_signal_ entry (fixed bin (35)); 49 dcl error_table_$action_not_performed fixed bin (35) ext static; 50 dcl error_table_$noentry fixed bin (35) ext static; 51 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 52 dcl iodd_msg_ entry options (variable); 53 dcl iodd_stat_p ptr ext; /* an easy way to get the value for stat_p */ 54 dcl search_sat_$rs_number entry (char (*), fixed bin, fixed bin (35)); 55 dcl system_info_$io_prices_rs entry (fixed bin, (4) float bin); 56 dcl system_info_$max_rs_number entry (fixed bin); 57 dcl system_info_$resource_price_rs entry (fixed bin, char (*) aligned, float bin, fixed bin (35)); 58 59 dcl (addr, before, after, null, hbound, unspec) builtin; 60 61 dcl (any_other, cleanup) condition; 62 63 /* Internal Static */ 64 65 dcl both fixed bin int static options (constant) init (0); 66 dcl default_prices (0:9, 4) float bin aligned int static; /* one set for each rate structure for efficiency */ 67 dcl error fixed bin int static options (constant) init (2); 68 dcl max_rs_number fixed bin static init (0); 69 dcl not_initialized bit (1) aligned int static init ("1"b); 70 dcl whoami char (32) int static options (constant) init ("io_daemon_account_"); 71 72 dcl 1 lines_price (0:9) aligned int static, /* ditto */ 73 2 driver (30), 74 3 q (4) float bin; 75 76 dcl 1 pages_price (0:9) aligned int static, /* one set for each rate structure for effieiency */ 77 2 driver (30), 78 3 q (4) float bin; 79 80 /* Automatic */ 81 82 dcl code fixed bin (35); 83 dcl driver_index fixed bin; /* index of logical driver in driver_ptr_list */ 84 dcl (i, j) fixed bin; 85 dcl old_mask bit (36) aligned; 86 dcl pdtp ptr; /* this is just to make this thing compile */ 87 dcl pdtep ptr; 88 dcl pers char (32); 89 dcl proj char (12); 90 dcl q fixed bin; 91 dcl rs_number fixed bin; /* rate structure number */ 92 93 dcl 1 dummy aligned like user; /* place to hold template user PDT entry */ 94 95 stat_p = iodd_stat_p; /* just to be sure */ 96 pdtp = null; /* makes compiler happy */ 97 98 if not_initialized then do; 99 call system_info_$max_rs_number (max_rs_number); 100 do j = 0 to hbound (lines_price, 1); /* this should never be necessary any more */ 101 if j > max_rs_number then 102 rs_number = 0; 103 else rs_number = j; 104 call system_info_$io_prices_rs (rs_number, default_prices (j, *)); 105 do i = 1 to hbound (lines_price.driver, 2); /* set all lines prices to the default */ 106 lines_price (j).driver (i).q (*) = default_prices (j, *); 107 end; 108 end; 109 call iodd_msg_ (error, both, 0, whoami, "Initialization error. Using io_prices rather than resource_prices."); 110 not_initialized = "0"b; 111 end; 112 113 ordatap = argp; 114 ordata.charge = 0e0; /* show no charge in case of error */ 115 q = ordata.charge_queue; /* the driver_index and q define the price */ 116 driver_index = iodd_static.driver_ptr -> driver_status.list_index; /* see which driver this is */ 117 if driver_index < 1 | driver_index > iodd_static.assigned_devices then do; /* got clobbered? */ 118 iodd_static.master_hold = "1"b; /* force command level */ 119 call iodd_msg_ (error, both, 0, whoami, "Invalid driver index. Check with administrator before continuing."); 120 return; 121 end; 122 123 /* mask interrupts, and set default handler to unmask them */ 124 125 old_mask = ""b; /* initialize the old mask to null */ 126 on any_other call unmask; 127 on cleanup call unmask; 128 call hcs_$set_ips_mask (""b, old_mask); /* save the old mask and restore it later */ 129 130 pers = before (ordata.requestor, "."); /* get person and project we will charge */ 131 proj = before (after (ordata.requestor, "."), "."); 132 if pers = "anonymous" then pers = "*"; /* special case the anonymous user name */ 133 134 135 ordata.rs_unavailable, ordata.no_accounting = "0"b; 136 if max_rs_number = 0 then 137 rs_number = 0; 138 else do; 139 call search_sat_$rs_number ((proj), rs_number, code); /* get rate index */ 140 if code ^= 0 then do; 141 if code = error_table_$noentry then 142 call iodd_msg_ (error, both, code, whoami, 143 "Trying to locate project ""^a"". Default rates will be used.", proj); 144 else call iodd_msg_ (error, both, code, whoami, "Accessing the sat. Default rates will be used"); 145 rs_number = 0; 146 ordata.rs_unavailable = "1"b; /* remember that we faked this */ 147 end; 148 end; 149 ordata.price_per_n_lines = lines_price (rs_number).driver (driver_index).q (q); /* how we computed the charge */ 150 ordata.rs_number = rs_number; /* remember which rate_structure */ 151 ordata.n_lines_for_price = 1000; 152 ordata.price_per_n_pages = pages_price (rs_number).driver (driver_index).q (q); /* how we conputed the charge */ 153 ordata.n_pages_for_price = 1000; 154 155 ordata.charge = ordata.price_per_n_lines * ordata.line_count / ordata.n_lines_for_price; 156 ordata.charge = ordata.charge + ordata.price_per_n_pages * ordata.page_count / ordata.n_pages_for_price; 157 158 /* put values in pdt template entry for updating */ 159 160 unspec (dummy) = ""b; /* be sure there is no garbage */ 161 pdtep = addr (dummy); 162 q = ordata.queue; /* this is the queue request came from */ 163 user.iod (q).charge, 164 user.dollar_charge, 165 user.absolute_spent = ordata.charge; 166 167 user.iod (q).pieces = 1; 168 user.iod (q).lines = ordata.line_count; 169 user.iod (q).pages = ordata.page_count; 170 171 code = 0; /* set to zero in case user proc just returns */ 172 173 call account_entry (pers, proj, pdtep, code); 174 175 call unmask; /* now we can allow ips signals */ 176 if code ^= 0 then call iodd_msg_ (error, both, code, whoami, "From accounting for ^a.^a", pers, proj); 177 return; 178 179 set_line_prices: entry (a_driver_index, qgtep, a_code); 180 181 dcl a_code fixed bin (35); /* error code */ 182 dcl a_driver_index fixed bin; 183 184 a_code = 0; 185 driver_index = a_driver_index; /* copy the index */ 186 if driver_index < 0 | driver_index > hbound (lines_price.driver, 2) then do; /* out of range ? */ 187 a_code = error_table_$action_not_performed; 188 return; 189 end; 190 191 if not_initialized | driver_index = 0 then do; 192 call system_info_$max_rs_number (max_rs_number); 193 stat_p = iodd_stat_p; /* set this only once, we hope */ 194 do j = 0 to hbound (lines_price, 1); 195 if j > max_rs_number then rs_number = 0;/* use the default */ 196 else rs_number = j; 197 call system_info_$io_prices_rs (rs_number, default_prices (j, *)); 198 do i = 1 to hbound (lines_price.driver, 2); /* set all lines prices to the default */ 199 lines_price (j).driver (i).q (*) = default_prices (j, *); 200 end; 201 end; 202 not_initialized = "0"b; 203 if driver_index = 0 then return; /* don't assume index is good further on */ 204 end; 205 206 lines_price (*).driver (driver_index).q (*) = 0.0e0; /* clear old prices */ 207 if qgtep = null | qgte.line_charge.queue (1) = "" 208 then do rs_number = 0 to hbound (lines_price, 1); /* use default prices if there are no names */ 209 lines_price (rs_number).driver (driver_index).q (*) = default_prices (rs_number, *); 210 end; 211 else do i = 1 to qgte.max_queues; /* get the price for each possible queue */ 212 do j = 0 to hbound (lines_price, 1); /* all rates */ 213 if j > max_rs_number then rs_number = 0;/* use the default */ 214 else rs_number = j; 215 call system_info_$resource_price_rs (rs_number, qgte.line_charge.queue (i), 216 lines_price (j).driver (driver_index).q (i), a_code); 217 if a_code ^= 0 then return; 218 end; 219 end; 220 221 222 pages_price (*).driver (driver_index).q (*) = 0.0e0; /* clear old prices */ 223 if qgtep = null | qgte.page_charge.queue (1) = "" then ; /* uses zero default prices if there are no names */ 224 else do i = 1 to qgte.max_queues; /* get the price for each possible queue */ 225 do j = 0 to hbound (pages_price, 1); /* all rates */ 226 if j > max_rs_number then rs_number = 0;/* use the default */ 227 else rs_number = j; 228 call system_info_$resource_price_rs (rs_number, qgte.page_charge.queue (i), 229 pages_price (j).driver (driver_index).q (i), a_code); 230 if a_code ^= 0 then return; 231 end; 232 end; 233 234 return; 235 236 237 unmask: proc; 238 239 if old_mask then do; /* if the old mask had some bits on, restore it */ 240 call hcs_$set_ips_mask (old_mask, (""b)); 241 old_mask = ""b; 242 end; 243 244 call continue_to_signal_ ((0)); /* in case this was from a handler */ 245 246 return; 247 248 end unmask; 249 /* BEGIN INCLUDE FILE...driver_status.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 1 7* Ancient History 1 8* Coded by Robert S. Coren August 1973 1 9* Modified by J. Whitmore to structure data for the Access Isolation Mechanism 1 10* Modified by J. C. Whitmore, 5/78, for IO Daemon extensions 1 11* Modified by J. C. Whitmore, 8/79, to add the generic_type variable 1 12* 2) change(88-08-19,Brunelle), approve(88-08-19,MCR7911), 1 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 14* Upgraded for version 5 iod tables. Changed the minor_args ftom string to 1 15* text_offset. Changed acct_ptr to acct_entry. Added have_accounting bit 1 16* to denote accounting ^= nothing. 1 17* END HISTORY COMMENTS */ 1 18 1 19 1 20 /* status data for a logical device driver */ 1 21 1 22 /* format: style4 */ 1 23 1 24 dcl driver_status_ptr ptr; 1 25 dcl 1 driver_status aligned based (driver_status_ptr), 1 26 2 req_type_label char (32), /* string to describe the request type */ 1 27 2 dev_name_label char (32), /* string to describe the device */ 1 28 2 device_id char (32), /* minor device name used by this logical driver */ 1 29 2 device_class_id char (32), /* device class name used by this logical driver */ 1 30 2 coord_chan fixed bin (71), /* ipc event channel for signals to coord. */ 1 31 2 driver_chan fixed bin (71), /* ipc event channel for signals from coord. */ 1 32 2 last_wake_time fixed bin (71), /* time last wakeup sent to coord */ 1 33 2 request_pending bit (36), /* locking word for communication with coord */ 1 34 /* 0 = ready for a request */ 1 35 /* driver pid = don't bug me */ 1 36 /* coord pid = got a request */ 1 37 2 status_flags, 1 38 3 attached bit (1) unal, /* minor device is attached for i/o */ 1 39 3 busy bit (1) unal, /* driver doing request..tell coord when done */ 1 40 3 ready bit (1) unal, /* driver is ready to handle requests */ 1 41 3 acknowledge bit (1) unal, /* coordinator must reply to all wakeups */ 1 42 3 have_accounting bit (1) unal, /* ON if accounting ^= nothing */ 1 43 3 pad bit (31) unal, 1 44 2 list_index fixed bin, /* index of this driver in the driver ptr list */ 1 45 2 dev_index fixed bin, /* index in iod_device_tab of this minor device */ 1 46 2 maj_index fixed bin, /* index in iod_device_tab of the corresponding major device */ 1 47 2 dev_class_index fixed bin, /* index of device_class entry */ 1 48 2 minor_args unaligned like text_offset, /* descriptive string for this minor device */ 1 49 2 min_banner bit (72) aligned, /* min banner access class for marking output */ 1 50 2 acct_entry entry (char (*), char (*), ptr, fixed bin (35)) variable, /* entry variable to accounting procedure */ 1 51 /* for this logical driver */ 1 52 2 rqti_ptr ptr, /* pointer to the request type info seg */ 1 53 2 dev_out_iocbp ptr, /* iocb pointer for dev_out_stream */ 1 54 2 dev_in_iocbp ptr, /* iocb pointer for dev_in_stream */ 1 55 2 dev_out_stream char (32), /* output stream for minor device */ 1 56 2 dev_in_stream char (32), /* input stream for minor device */ 1 57 2 elem_size fixed bin, /* element size for the stream */ 1 58 2 message_type fixed bin, /* expected format of user request */ 1 59 2 form_wait_time fixed bin (71), /* average time needed to write ctl term msg */ 1 60 2 forms_validation_ptr ptr, /* forms validation data */ 1 61 2 dev_ptr1 ptr, /* another one */ 1 62 2 dev_fb1 fixed bin, /* a spare fixed bin variable for the driver */ 1 63 2 dev_fb2 fixed bin, /* and another */ 1 64 2 dev_fb3 fixed bin, /* and another */ 1 65 2 dev_fb4 fixed bin, /* and the last spare fixed bin */ 1 66 2 dev_fb71 fixed bin (71), /* a spare fixed bin 71 variable */ 1 67 2 dev_ctl_ptr ptr, /* pointer to control structure for this device */ 1 68 2 bit_rate_est fixed bin (35), /* output rate estimate - bits per second */ 1 69 2 defer_time_limit fixed bin (35), /* max time allowed for a request - in seconds (0 = no limit) */ 1 70 2 generic_type char (32), /* generic type of this minor device */ 1 71 2 status_pad (2) fixed bin (35), /* save some room for later */ 1 72 2 descriptor like request_descriptor, /* copy of request descriptor */ 1 73 2 desc_pad (13) fixed bin, 1 74 2 message fixed bin; /* place-holder for copy of request message */ 1 75 1 76 1 77 /* END INCLUDE FILE...driver_status.incl.pl1 */ 249 250 /* BEGIN INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 2 7* Ancient History 2 8* Created by J. Stern, 1/20/75 2 9* Modified by J. C. Whitmore April 1978 for enhancements 2 10* Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 2 11* Modified by E. N. Kittlitz, 6/81, for version 4 iod_tables with expanded 2 12* q_group_tab 2 13* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 2 14* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 2 15* Change version number to reflect changes in q_group_tab and 2 16* iod_device_tab for laser printer support. Added font tables. 2 17* END HISTORY COMMENTS */ 2 18 2 19 2 20 /* format: style4 */ 2 21 2 22 dcl ithp ptr; /* ptr to io daemon dables and it's header */ 2 23 dcl 1 iod_tables_hdr aligned based (ithp), /* header of data segment compiled by iod_table_compiler */ 2 24 2 version char (8), /* version of this structure */ 2 25 2 date_time_compiled fixed bin (71), 2 26 2 grace_time fixed bin (71), /* grace time before deleting finished segment */ 2 27 2 max_queues fixed bin (17), /* default number of priority queues per queue group */ 2 28 2 line_tab_offset fixed bin (18), /* offset of line id table */ 2 29 2 device_tab_offset fixed bin (18), /* offset of device table */ 2 30 2 minor_device_tab_offset fixed bin (18), /* offset of minor device table */ 2 31 2 dev_class_tab_offset fixed bin (18), /* offset of device class table */ 2 32 2 q_group_tab_offset fixed bin (18), /* offset of queue group table */ 2 33 2 forms_info_tab_offset fixed bin (18), /* offset of forms info tables */ 2 34 2 text_strings_offset fixed bin (18), 2 35 2 start_of_tables fixed bin; /* beginning of above tables, MUST start on even word boundry */ 2 36 2 37 /* Defines common text block to store virtually all text in the I/O daemon tables */ 2 38 dcl text_strings_ptr ptr; 2 39 dcl 1 text_strings aligned based (text_strings_ptr), 2 40 2 length fixed bin, 2 41 2 chars char (1 refer (text_strings.length)) unaligned; 2 42 2 43 /* this defines text offsets used to locate i/o daemon tables strings in 2 44* the text_strings structure */ 2 45 dcl 1 text_offset based, 2 46 2 first_char fixed bin (18) unsigned unaligned, 2 47 2 total_chars fixed bin (18) unsigned unaligned; 2 48 2 49 dcl IODT_VERSION_5 char (8) int static options (constant) init ("IODT0005"); /* current version number */ 2 50 2 51 2 52 /* END INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 250 251 /* BEGIN INCLUDE FILE...iodd_static.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(85-02-14,Homan), approve(87-04-06,MCR7656), 3 6* audit(87-06-13,Beattie), install(87-08-06,MR12.1-1068): 3 7* Add support for logout_on_hangup option. 3 8* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 3 9* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 3 10* Add head/tail_sheet entry variables and paper_type variable. 3 11* END HISTORY COMMENTS */ 3 12 3 13 /* format: style4 */ 3 14 3 15 dcl stat_p int static ptr; 3 16 3 17 dcl 1 iodd_static based (stat_p) aligned, 3 18 3 19 /* The first part is set only once for a device driver */ 3 20 3 21 2 ithp ptr, /* pointer to iod tables header */ 3 22 2 ltp ptr, /* pointer to line table */ 3 23 2 idtp ptr, /* pointer to device tab */ 3 24 2 mdtp ptr, /* pointer to minor device table */ 3 25 2 qgtp ptr, /* pointer to q_group table */ 3 26 2 dev_class_ptr ptr, /* pointer to device class table */ 3 27 2 text_strings_ptr ptr, /* pointer to iod tables text strings */ 3 28 2 driver_list_ptr ptr, /* pointer to list of driver status seg pointers */ 3 29 2 chan_list_ptr ptr, /* pointer to list of event channels for blocking */ 3 30 2 sys_dir_ptr ptr, /* ptr to 168 char string defining sys_dir */ 3 31 2 coord_proc_id bit (36), /* process id of coordinator for wakeups */ 3 32 2 driver_proc_id bit (36), /* process id of driver for locking */ 3 33 2 re_init_label label, /* where to go after "re_init" or "slave_logout" */ 3 34 2 no_coord_label label, /* where to go for a no_coord condition */ 3 35 2 log_stream char (32), /* stream name used for log output */ 3 36 2 master_input char (32), /* master console input stream for commands */ 3 37 2 master_output char (32), /* master console output stream for messages */ 3 38 2 master_out ptr, /* master output iocbp */ 3 39 2 master_in ptr, /* master input iocbp */ 3 40 2 log_iocbp ptr, /* log output iocbp */ 3 41 2 error_io ptr, /* error i/o iocbp */ 3 42 2 dev_io_stream char (32), /* stream used to attach the major device */ 3 43 2 dev_in_stream char (32), /* input stream if different from dev_io_stream */ 3 44 2 dev_out_stream char (32), /* output stream if different from dev_io_stream */ 3 45 2 device_dim char (32), /* dim which drives the major device */ 3 46 2 attach_name char (32), /* channel or dial id for attaching major device */ 3 47 2 attach_type fixed bin, /* what previous is: 1 = iom, 2 = tty, 3 = dial, 4 = variable line */ 3 48 2 dev_dial_id char (8), /* non null if device is to be dialed to driver */ 3 49 2 line_tab_idx fixed bin, /* for attach type 4, this is the entry index, else 0 */ 3 50 2 dial_ev_chan fixed bin (71), /* IPC chan for dial control */ 3 51 2 major_device char (32), /* name of the major device */ 3 52 2 major_args unaligned like text_offset, /* descriptive string for the major device */ 3 53 2 coord_cmd_chan fixed bin (71), /* IPC chan to send commands to coord through coord_comm.ms */ 3 54 2 cmd_ack_chan fixed bin (71), /* IPC chan for coord to return command status code */ 3 55 2 timer_chan fixed bin (71), /* IPC chan for unblocking if nothing happens */ 3 56 2 io_daemon_version char (8), /* current version number of the io daemon driver */ 3 57 2 extra_static (8) fixed bin (35), /* unused space - non_dynamic */ 3 58 2 dummy_ptr ptr, /* a dummy pointer for the driver module */ 3 59 3 60 /* driver module entrypoints are defined by the following entry variables */ 3 61 3 62 2 driver_init entry variable options (variable), 3 63 2 driver_request entry variable options (variable), 3 64 2 driver_command entry variable options (variable), 3 65 2 driver_default_handler entry variable options (variable), 3 66 3 67 /* entrypoints for head/tail_sheet_ entries */ 3 68 2 print_head_sheet entry (ptr, ptr, ptr, fixed bin (35)) variable, 3 69 2 print_head_separator entry (ptr, ptr, char (*), fixed bin (35)) variable, 3 70 2 print_tail_sheet entry (ptr, ptr, ptr, fixed bin (35)) variable, 3 71 3 72 2 paper_type fixed bin, /* type of paper being used */ 3 73 /* 1 = single sheet */ 3 74 /* 2 = continuous forms */ 3 75 3 76 /* The remainder of the data may be dynamic during the device driver's existence */ 3 77 3 78 2 extra_dynamic (14) fixed bin (35), /* unused space - dynamic */ 3 79 2 auto_logout_interval fixed bin, /* minutes to wait for inactivity logout */ 3 80 2 requests_til_cmd fixed bin, /* number of requests to go before returning to cmd level */ 3 81 2 assigned_devices fixed bin, /* number of minor devices assigned to major device */ 3 82 2 current_devices fixed bin, /* number of devices currently active in process */ 3 83 2 output_device char (32), /* name of minor device currently in use */ 3 84 2 wakeup_time fixed bin (71), /* time interval between timer wakeups */ 3 85 2 auto_start_delay fixed bin (71), /* time to wait before performing an auto-start after quit */ 3 86 2 driver_ptr ptr, /* pointer to driver status seg currently in use */ 3 87 2 segptr ptr, /* ptr to current user segment being processed */ 3 88 2 flags, /* control flags */ 3 89 3 initialized bit (1) unal, /* all driver data bases are initialized */ 3 90 3 test_entry bit (1) unal, /* driver test entry was called */ 3 91 3 request_in_progress bit (1) unal, /* driver executing a request */ 3 92 3 recursion_flag bit (1) unal, /* recursive unclaimed signal */ 3 93 3 no_coord_flag bit (1) unal, /* process is ready to accept a no_coord signal */ 3 94 3 logout_pending bit (1) unal, /* logout after all pending requests are done */ 3 95 3 master_hold bit (1) unal, /* master_hold at command level */ 3 96 3 slave_hold bit (1) unal, /* slave hold at command level */ 3 97 3 step bit (1) unal, /* run in step mode */ 3 98 3 quit_during_request bit (1) unal, /* a quit occured, don't wait for wakeup */ 3 99 3 runout_requests bit (1) unal, /* hold after all pending requests are done */ 3 100 3 re_init_in_progress bit (1) unal, /* driver processing a re_init signal */ 3 101 3 quit_signaled bit (1) unal, /* set to "1"b by quit handler for anyone who is curious */ 3 102 3 auto_logout_pending bit (1) unal, /* inactivity limit exceeded, logout after next wakeup */ 3 103 3 logout_on_hangup bit (1) unal, /* logout instead of reinit if set */ 3 104 3 pad bit (21) unal, /* unused space */ 3 105 2 slave, /* slave control device data (ctl term or remote reader) */ 3 106 3 slave_input char (32), /* slave input stream name */ 3 107 3 slave_output char (32), /* slave output stream name */ 3 108 3 slave_pad fixed bin, /* allocation breakage */ 3 109 3 slave_in ptr, /* slave input iocbp */ 3 110 3 slave_out ptr, /* slave output iocbp */ 3 111 3 slave_ev_chan fixed bin (71), /* event channel the slave device blocks on */ 3 112 3 active bit (1) unal, /* on if there is a slave */ 3 113 3 accept_input bit (1) unal, /* on if commands may come from the slave */ 3 114 3 allow_quits bit (1) unal, /* on if we allow slave to send quits */ 3 115 3 print_errors bit (1) unal, /* on if errors will be sent to the slave */ 3 116 3 log_msg bit (1) unal, /* on if log messages are to be sent to the slave */ 3 117 3 priv1 bit (1) unal, /* driver_module defined slave privileges */ 3 118 3 priv2 bit (1) unal, 3 119 3 priv3 bit (1) unal, 3 120 3 echo_cmd bit (1) unal, /* on if each slave cmd should be written back */ 3 121 3 slave_bit_pad bit (27) unal, /* unused space */ 3 122 2 ctl_term, /* control terminal data */ 3 123 3 ctl_attach_name char (32), /* dial id, tty chan, or mrd_ device */ 3 124 3 ctl_attach_type fixed bin, /* attach name meaning: 1=line, 2=dial, 3=mrd_source */ 3 125 3 ctl_pad fixed bin, /* allocation breakage */ 3 126 3 ctl_dial_chan fixed bin (71), /* ipc event channel for dial comm */ 3 127 3 ctl_input char (32), /* ctl input stream name */ 3 128 3 ctl_output char (32), /* ctl output stream name */ 3 129 3 ctl_io char (32), /* ctl i/o stream name */ 3 130 3 ctl_dev_dim char (32), /* ctl_io attached with this dim */ 3 131 3 ctl_ev_chan fixed bin (71), /* IPC event chan ctl term blocks on */ 3 132 3 ctl_device char (32), /* ctl terminal device name */ 3 133 3 form_type char (16), /* format type if printing forms */ 3 134 3 attached bit (1) unal, /* ctl term attached to process */ 3 135 3 forms bit (1) unal, /* on if printing forms */ 3 136 3 pad bit (34) unal, 3 137 2 admin_ec_name char (32), /* name of the ec to use with the "x" command */ 3 138 2 expansion_space (100) fixed bin; /* reserved space...use at your own risk */ 3 139 3 140 /* END INCLUDE FILE ... iodd_static.incl.pl1 */ 251 252 /* BEGIN INCLUDE FILE . . . mseg_message_info.incl.pl1 BIM 1984-10-10 */ 4 2 /* format: style3,idind30 */ 4 3 4 4 /* structure returned when message is read from a message segment */ 4 5 4 6 4 7 dcl mseg_message_info_ptr pointer; 4 8 4 9 dcl 1 mseg_message_info based (mseg_message_info_ptr) aligned, 4 10 2 version char (8) aligned, 4 11 2 message_code fixed bin, 4 12 2 control_flags unaligned, 4 13 3 own bit (1), 4 14 3 delete bit (1), 4 15 3 pad bit (34), 4 16 2 ms_ptr ptr, /* pointer to message */ 4 17 2 ms_len fixed bin (24), /* length of message in bits */ 4 18 2 ms_id bit (72), /* unique ID of message */ 4 19 /* input in some cases */ 4 20 2 ms_access_class bit (72), /* message access class */ 4 21 2 sender_id char (32) unaligned,/* process-group ID of sender */ 4 22 2 sender_process_id bit (36) aligned, /* if nonzero, process that sent */ 4 23 2 sender_level fixed bin, /* validation level of sender */ 4 24 2 sender_authorization bit (72), /* access authorization of message sender */ 4 25 2 sender_max_authorization bit (72), /* max authorization of sending process */ 4 26 2 sender_audit bit (36) aligned; /* audit flags */ 4 27 4 28 declare MSEG_MESSAGE_INFO_V1 char (8) aligned init ("msegmi01") int static options (constant); 4 29 4 30 declare ( 4 31 MSEG_READ_FIRST init (1), 4 32 MSEG_READ_LAST init (2), 4 33 MSEG_READ_SPECIFIED init (3), 4 34 MSEG_READ_BEFORE_SPECIFIED init (4), 4 35 MSEG_READ_AFTER_SPECIFIED init (5)) 4 36 fixed bin int static options (constant); 4 37 4 38 declare (MSEG_READ_OWN init ("1"b), 4 39 MSEG_READ_DELETE init ("01"b) 4 40 ) bit (36) aligned internal static options (constant); 4 41 4 42 /* END INCLUDE FILE . . . mseg_message_info.incl.pl1 */ 252 253 /* BEGIN INCLUDE FILE ... output_request_data.incl.pl1 */ 5 2 5 3 /* Modified by R. McDonald May 1980 to include page charges (UNCA) */ 5 4 /* Modified by C. Marker October 1983 added no_separator */ 5 5 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(87-05-10,Gilcrease), approve(87-05-13,MCR7686), 5 9* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 5 10* Add the line_nbrs bit for line-numbered output. 5 11* 2) change(88-08-19,Brunelle), approve(88-08-19,MCR7911), 5 12* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 5 13* Added single_sheet bit to denote if continuous paper. 5 14* END HISTORY COMMENTS */ 5 15 5 16 5 17 dcl 1 ordata based (ordatap) aligned, 5 18 2 dpmp ptr, /* Ptr to dprint_msg */ 5 19 2 requestor char (32), /* Person.Proj.tag requesting */ 5 20 2 full_path char (168), /* source of the output */ 5 21 2 queue fixed bin, /* Queue requested. */ 5 22 2 copies fixed bin, /* Copies requested. */ 5 23 2 copy_no fixed bin, /* Number this copy */ 5 24 2 request_no fixed bin (35), /* Number request assigned by coord */ 5 25 2 restart_no fixed bin (35), /* old number of restarted request (0 = not restarted) */ 5 26 2 request_type char (32), /* Name of device class wanted. */ 5 27 2 access_class_string char (280), /* Access class - size limit for two printer lines */ 5 28 2 punsw fixed bin, /* 0 = print, 1= punch */ 5 29 2 delete fixed bin, /* 1= delete, 0= don't */ 5 30 2 device_name char (32), /* Name of physical device used */ 5 31 2 output_mode char (128), /* user's mode string for ios_$changemode */ 5 32 2 time_start_request fixed bin (71), /* Clock time when picked request */ 5 33 2 date_time_start_request char (24), /* .. in chars too */ 5 34 2 line_count fixed bin (24), /* Line count returned by DIM */ 5 35 2 page_count fixed bin, /* Page count returned by DIM */ 5 36 2 cpu_time fixed bin (71), /* Total CPU usage while printing */ 5 37 2 real_time fixed bin (71), /* Total realtime while printing */ 5 38 2 page_waits fixed bin, /* Total page-waits while printing */ 5 39 2 pre_pages fixed bin, /* Total pre-pages (???) .. */ 5 40 2 bit_count fixed bin (24), /* Number of bits transmitted. */ 5 41 2 charge float bin, /* What the thing cost. */ 5 42 2 control_flags, 5 43 3 continued bit (1) unal, /* request started by one driver and given to another */ 5 44 3 restarted bit (1) unal, /* request is restarted */ 5 45 3 separator bit (1) unal, /* used to determine necessity of a separator page */ 5 46 3 notify bit (1) unal, /* if should confirm to user */ 5 47 3 saved bit (1) unal, /* request was suspended by operator, we'll save it */ 5 48 3 priority_request bit (1) unal, /* operator said run now!! */ 5 49 3 no_separator bit (1) unal, /* suppress inner head and tail sheets when printing multiple copies */ 5 50 3 line_nbrs bit (1) unal, /* if line-numbered output requested */ 5 51 3 single_sheet bit (1) unal, /* ON if single_sheet output */ 5 52 3 padding bit (27) unal, /* not used */ 5 53 2 contd_no fixed bin (35), /* old number of continued request (0 = not continued) */ 5 54 2 total_charge float bin, /* total charge for all copies */ 5 55 2 price_per_n_lines float bin, /* line price rate used to compute charge */ 5 56 2 n_lines_for_price fixed bin, /* number of lines price is based on */ 5 57 2 charge_queue fixed bin, /* base charge rate on this queue */ 5 58 2 price_per_n_pages float bin, /* page charge rate used to compute charge */ 5 59 2 n_pages_for_price fixed bin, /* number of pages price is based on */ 5 60 2 rs_number fixed bin (9) unsigned unaligned, /* rate_structure number used */ 5 61 2 rs_unavailable bit (1) unaligned, /* 1=>couldn't read SAT */ 5 62 2 no_accounting bit (1) unaligned, /* 1=>accounting:nothing in iod_tables */ 5 63 2 pad_bits bit (25) unaligned, 5 64 2 line_nbr fixed bin (35), /* current line number */ 5 65 2 pad_space (6) fixed bin (35); /* save some room to grow */ 5 66 5 67 dcl ordatap ptr; /* Ptr to above structure */ 5 68 5 69 dcl 1 REQUEST like ordata aligned; /* If wanted, a place to put the above thing */ 5 70 5 71 /* END INCLUDE FILE ... output_request_data.incl.pl1 */ 253 254 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 6 2 /* Requires user_attributes.incl.pl1 */ 6 3 6 4 /* Modified 740723 by PG to add AIM info */ 6 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 6 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 6 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 6 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 6 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 6 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 6 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 6 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 6 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 6 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 6 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 6 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 6 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 6 18 6 19 dcl (PDT_version init (4), /* version of this declaration */ 6 20 PDT_header_lth init (256), /* length in words of PDT head */ 6 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 6 22 6 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 6 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 6 25 ) fixed bin internal static options (constant); 6 26 6 27 dcl 1 pdt based (pdtp) aligned, 6 28 7 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 7 2 7 3 /* the "author" items must always be the first ones in the table. The 7 4* module which moves the converted table to the System Control process 7 5* fills in these data items and assumes them to be at the head of the segment 7 6* regardless of the specific table's actual declaration. The variables 7 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 7 8* respectively. For tables installed in multiple processes, these 7 9* are to be used to lock out multiple installations. */ 7 10 7 11 /* Lock should be used as a modification lock. Since, in general, 7 12* entries may not be moved in system tables, even by installations, 7 13* it is sufficient for only installers and programs that change threads 7 14* to set or respect the lock. Simply updating data in an entry 7 15* requires no such protection. 7 16* 7 17* Last_install_time is used by readers of system tables to detect 7 18* installations or other serious modifications. By checking it before 7 19* and after copying a block of data, they can be protected against 7 20* modifications. 7 21* 7 22* Modules that set the lock should save proc_group_id, and then 7 23* put their group id there for the time they hold the lock. 7 24* if they do not actually install the, they should restore the group id. 7 25**/ 7 26 7 27 2 author aligned, /* validation data about table's author */ 7 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 7 29 3 lock bit (36), /* installation lock */ 7 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 7 31 3 update_authorization bit (1) unal, /* update only authorizations */ 7 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 7 33 3 pad bit (33) unaligned, 7 34 3 last_install_time fixed bin (71), 7 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 7 36 3 w_dir char (64), /* author's working directory */ 7 37 7 38 /* END INCLUDE FILE author.incl.pl1 */ 6 29 6 30 2 max_size fixed bin, /* max number of entries table can grow */ 6 31 2 current_size fixed bin, /* current size of table (in entries) */ 6 32 2 version fixed bin, /* table version */ 6 33 2 freep fixed bin, /* relptr to begin of free chain */ 6 34 2 n_users fixed bin, /* number of entries actually used */ 6 35 2 project_name char (28), /* name of project */ 6 36 2 project_dir char (64), /* treename of project's directory */ 6 37 2 projfile_version fixed bin, 6 38 2 projentry bit (66*36), 6 39 2 pad3 (5) bit (36) aligned, 6 40 2 reqfile_version fixed bin, 6 41 2 reqentry bit (40*36), 6 42 2 pad4 (9) fixed bin, 6 43 2 sat_version fixed bin, 6 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 6 45 2 pad5 (4) bit (36) aligned, 6 46 2 date_reqfile_copied fixed bin (71), 6 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 6 48 2 pad2l bit (27) unaligned, 6 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 6 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 6 51 2 user (1019) aligned, /* the project definition table entries */ 6 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 6 53 6 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 6 55 6 56 6 57 6 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 6 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 6 60 2 lock bit (36), /* update lock */ 6 61 2 person_id char (24) aligned, /* login name of user */ 6 62 2 now_in fixed bin, /* count of users logged in on this entry */ 6 63 2 password char (8) aligned, /* password for anonymous user */ 6 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 6 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 6 66 2 home_dir char (64) aligned, /* user's default working directory */ 6 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 6 68 2 high_ring fixed bin, /* highest ring user may use */ 6 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 6 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 6 71 2 outer_module char (32), /* outer module used if user is interactive */ 6 72 2 lot_size fixed bin, /* size of linkage offset table */ 6 73 2 kst_size fixed bin, /* size of known segment table */ 6 74 2 cls_size fixed bin, /* size of combined linkage */ 6 75 2 uflags, /* various flags */ 6 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 6 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 6 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 6 79 3 flagpad bit (33) unal, 6 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 6 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 6 82 2 dollar_limit float bin, 6 83 2 dollar_charge float bin, /* total dollars spent this month */ 6 84 2 shift_limit (0: 7) float bin, 6 85 2 daton fixed bin (71), /* date user added to system */ 6 86 2 datof fixed bin (71), /* date user deleted */ 6 87 2 last_login_time fixed bin (71), /* time of last login */ 6 88 2 last_login_unit char (4), /* terminal id last used */ 6 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 6 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 6 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 6 92 2 last_update fixed bin (71), /* time of last transaction */ 6 93 2 logins fixed bin, /* number of logins */ 6 94 2 crashes fixed bin, /* sessions abnormally terminated */ 6 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 6 96 3 charge float bin, /* total dollar charge this shift */ 6 97 3 xxx fixed bin, 6 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 6 99 3 core fixed bin (71), /* core demand in page-microseconds */ 6 100 3 connect fixed bin (71), /* total console time in microseconds */ 6 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 6 102 2 absentee (4), /* absentee use, queues 1-4 */ 6 103 3 charge float bin, /* dollar charge this queue */ 6 104 3 jobs fixed bin, /* number of jobs submitted */ 6 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 6 106 3 memory fixed bin (71), /* total memory demand */ 6 107 2 iod (4), /* io daemon use, queues 1-4 */ 6 108 3 charge float bin, /* dollar charge this queue */ 6 109 3 pieces fixed bin, /* pieces of output requested */ 6 110 3 pad fixed bin (35), 6 111 3 pages fixed bin (35), /* number of pages output */ 6 112 3 lines fixed bin (71), /* total record count of output */ 6 113 2 devices (16) float bin, /* device charges */ 6 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 6 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 6 116 2 absolute_spent float bin, /* Spending against this */ 6 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 6 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 6 119 2 pad_was_authorization bit (72) aligned, 6 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 6 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 6 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 6 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 6 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 6 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 6 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 6 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 6 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 6 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 6 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 6 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 6 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 6 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 6 134 2 user_authorization (2) bit (72) aligned, /* range */ 6 135 2 pdtupad (5) fixed bin, 6 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 6 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 6 138 2 chain fixed bin; /* free chain */ 6 139 6 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 254 255 /* BEGIN INCLUDE FILE...q_group_tab.incl.pl1 */ 8 2 8 3 8 4 8 5 /****^ HISTORY COMMENTS: 8 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 8 7* Ancient History 8 8* Created by J. Stern, December 1974 8 9* Modified by J. Whitmore April 1978 8 10* Modified by R. McDonald May 1980 to include page charges (UNCA) 8 11* Modified by E. N. Kittlitz June 1981 for UNCA changes 8 12* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 8 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 8 14* Add forms_validation, default_form and font_dir variables for laser 8 15* printer support. 8 16* END HISTORY COMMENTS */ 8 17 8 18 8 19 /* format: style4 */ 8 20 8 21 dcl qgtp ptr; /* ptr to queue group table */ 8 22 dcl 1 q_group_tab aligned based (qgtp), 8 23 2 n_q_groups fixed bin, /* number of queue groups */ 8 24 2 pad fixed bin, 8 25 2 entries (1 refer (q_group_tab.n_q_groups)) like qgte; /* entries of queue group table */ 8 26 8 27 dcl qgtep ptr; /* queue group table entry pointer */ 8 28 dcl 1 qgte aligned based (qgtep), /* queue group table entry */ 8 29 8 30 /* static info from the parms file */ 8 31 8 32 2 name char (24), /* queue group name */ 8 33 2 comment unaligned like text_offset, /* comment to apply to the request_type */ 8 34 2 driver_id char (32), /* person.project name of drivers for this q group */ 8 35 2 accounting unaligned like text_offset, /* offset to accounting routine pathname, "system" => charge_user_ */ 8 36 2 generic_type char (32), /* generic type of requests in this queue */ 8 37 2 default_generic_queue fixed bin (1), /* 1 if this is default queue for above generic type, else 0 */ 8 38 2 rqti_seg_name char (32), /* name of rqti seg, if required, else blank */ 8 39 2 max_queues fixed bin, /* number of queues for this request type */ 8 40 2 default_queue fixed bin, /* number of the default queue */ 8 41 2 line_charge, /* price names for line charges */ 8 42 3 queue (4) char (32), /* one name for each queue */ 8 43 2 page_charge, /* price names for page charges */ 8 44 3 queue (4) char (32), /* one name for each queue */ 8 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 8 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 8 47 2 default_form unaligned like text_offset, /* offset to default -form string if none given */ 8 48 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 8 49 2 first_dev_class fixed bin, /* index of first device class entry of queue group */ 8 50 2 last_dev_class fixed bin, /* index of last device class entry of queue group */ 8 51 8 52 /* dynamic info reflecting current status of queues */ 8 53 8 54 2 open fixed bin, /* 1 if queues have been opened, else 0 */ 8 55 2 per_queue_info (4), 8 56 3 last_read bit (72), /* ID of last message read */ 8 57 3 mseg_index fixed bin, /* message segment index */ 8 58 3 pad fixed bin; /* pad to even word boundary */ 8 59 8 60 /* END INCLUDE FILE...q_group_tab.incl.pl1 */ 255 256 /* BEGIN INCLUDE FILE...request_descriptor.incl.pl1 */ 9 2 9 3 /* Descriptor associated with an I/O daemon request */ 9 4 /* Coded August 1973 by Robert S. Coren */ 9 5 /* Modified by J. C. Whitmore, 5/78, to extend driver_data to 7 words */ 9 6 /* Modified by C. Marker, 2/23/85, changed to use mseg_message_info */ 9 7 9 8 dcl 1 request_descriptor based aligned, 9 9 2 mseg_message_info_copy like mseg_message_info, 9 10 2 seq_id fixed bin(35), /* sequential number assigned by coordinator */ 9 11 2 q fixed bin, /* priority queue in which request was submitted */ 9 12 2 contd_seq_id fixed bin(35), /* if nonzero, this is previous seq_id of continued request */ 9 13 2 prev_seq_id fixed bin(35), /* if nonzero, this is previous seq_id of restarted request */ 9 14 2 dev_class_index fixed bin, /* index of device_class entry */ 9 15 2 spare_fb fixed bin (17) unal, /* save half a word for later */ 9 16 2 charge_q fixed bin (17) unal, /* priority to use for charging */ 9 17 2 time_done fixed bin(71), /* clock time when request was completed */ 9 18 2 prev_done fixed bin(18), /* descriptor threaded ahead of this one in saved list */ 9 19 2 next_done fixed bin(18), /* " " behind " " " */ 9 20 2 driver_data bit(252), /* driver maintained data */ 9 21 2 flags, 9 22 (3 continued, /* unfinished by one driver and given to another */ 9 23 3 finished, 9 24 3 restarted, 9 25 3 cancelled, 9 26 3 dont_delete, 9 27 3 saved, /* not to be freed */ 9 28 3 keep_in_queue, /* keep request in queue */ 9 29 3 series_restart, /* this request is part of restarted series */ 9 30 3 priority_request) bit (1) unal, /* this request was given extra priority */ 9 31 3 pad bit(27) unal, 9 32 2 next_pending fixed bin(18); /* thread to next pending descriptor */ 9 33 9 34 /* END INCLUDE FILE...request_descriptor.incl.pl1 */ 256 257 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 10 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 10 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 10 8* attribute switches. 10 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 10 12* be deleted. 10 13* B) Add constants identifying attributes that can be changed by user at 10 14* login, etc. 10 15* END HISTORY COMMENTS */ 10 16 10 17 10 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 10 19 10 20 /* format: style4 */ 10 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 10 22 (2 administrator bit (1), /* 1 system administrator privileges */ 10 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 10 24 2 nobump bit (1), /* 2 user cannot be bumped */ 10 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 10 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 10 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 10 28* . of same project (distinct from "nobump") */ 10 29 2 nolist bit (1), /* 7 don't list user on "who" */ 10 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 10 31 2 multip bit (1), /* 9 user may have several processes */ 10 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 10 33 2 brief bit (1), /* 11 no login or logout message */ 10 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 10 35 2 vhomedir bit (1), /* 13 user may change homedir */ 10 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 10 37 2 sb_ok bit (1), /* 15 user may be standby */ 10 38 2 pm_ok bit (1), /* 16 user may be primary */ 10 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 10 40 2 daemon bit (1), /* 18 user may login as daemon */ 10 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 10 42 2 no_warning bit (1), /* 20 no warning message */ 10 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 10 44* . in PDT: this user has an individual load control group */ 10 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 10 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 10 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 10 48 2 pad bit (12)) unaligned; 10 49 10 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 51 ("none", /* 0 */ 10 52 "administrator", /* 1 */ 10 53 "primary_line", /* 2 */ 10 54 "nobump", /* 3 */ 10 55 "guaranteed_login", /* 4 */ 10 56 "anonymous", /* 5 */ 10 57 "nopreempt", /* 6 */ 10 58 "nolist", /* 7 */ 10 59 "dialok", /* 8 */ 10 60 "multip", /* 9 */ 10 61 "bumping", /* 10 */ 10 62 "brief", /* 11 */ 10 63 "vinitproc", /* 12 */ 10 64 "vhomedir", /* 13 */ 10 65 "nostartup", /* 14 */ 10 66 "no_secondary", /* 15 */ 10 67 "no_prime", /* 16 */ 10 68 "no_eo", /* 17 */ 10 69 "daemon", /* 18 */ 10 70 "", /* 19 vdim OBSOLETE */ 10 71 "no_warning", /* 20 */ 10 72 "igroup", /* 21 */ 10 73 "save_pdir", /* 22 */ 10 74 "disconnect_ok", /* 23 */ 10 75 "save_on_disconnect"); /* 24 */ 10 76 10 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 78 ("null", /* 0 */ 10 79 "admin", /* 1 */ 10 80 "", "", /* 2 - 3 */ 10 81 "guar", /* 4 */ 10 82 "anon", /* 5 */ 10 83 "", "", /* 6 - 7 */ 10 84 "dial", /* 8 */ 10 85 "multi_login", /* 9 */ 10 86 "preempting", /* 10 */ 10 87 "", /* 11 */ 10 88 "v_process_overseer", /* 12 */ 10 89 "v_home_dir", /* 13 */ 10 90 "no_start_up", /* 14 */ 10 91 "no_sec", /* 15 */ 10 92 "no_primary", /* 16 */ 10 93 "no_edit_only", /* 17 */ 10 94 "op_login", /* 18 */ 10 95 "", /* 19 */ 10 96 "nowarn", /* 20 */ 10 97 "", "", "", /* 21 - 23 */ 10 98 "save"); /* 24 */ 10 99 10 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 10 101 options(constant) init("000000000010000000010000000000000000"b); 10 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 10 103 10 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 10 105 options(constant) init("000000000010000000010000000000000000"b); 10 106 /* PDT value for (brief, no_warning) is default */ 10 107 10 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 10 109 options(constant) init("000100000110010000010000000000000000"b); 10 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 10 111 11 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file describes the attributes of an absentee job. It is */ 11 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 11 7 /* and PIT.incl.pl1. */ 11 8 /* */ 11 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 11 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 14* Separated abs_attributes from the request structure 11 15* (abs_message_format.incl.pl1) so that the identical structure could be 11 16* used in the ute structure (user_table_entry.incl.pl1). 11 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 11 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 19* Added ABS_ATTRIBUTE_NAMES array. 11 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 11 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 11 22* Added the no_start_up flag. SCP6367 11 23* END HISTORY COMMENTS */ 11 24 11 25 dcl 1 user_abs_attributes aligned based, 11 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 11 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 11 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 11 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 11 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 11 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 11 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 11 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 11 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 11 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 11 36 2 attributes_pad bit (26) unaligned; 11 37 11 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 11 39 "restartable", 11 40 "user_deferred_until_time", 11 41 "proxy", 11 42 "set_bit_cnt", 11 43 "time_in_gmt", 11 44 "user_deferred_indefinitely", 11 45 "secondary_ok", 11 46 "truncate_absout", 11 47 "restarted", 11 48 "no_start_up"); 11 49 11 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 51 10 112 10 113 10 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 257 258 259 end io_daemon_account_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1248.2 io_daemon_account_.pl1 >special_ldd>install>MR12.2-1199>io_daemon_account_.pl1 249 1 10/28/88 1226.9 driver_status.incl.pl1 >special_ldd>install>MR12.2-1199>driver_status.incl.pl1 250 2 10/28/88 1227.4 iod_tables_hdr.incl.pl1 >special_ldd>install>MR12.2-1199>iod_tables_hdr.incl.pl1 251 3 10/28/88 1227.2 iodd_static.incl.pl1 >special_ldd>install>MR12.2-1199>iodd_static.incl.pl1 252 4 01/10/85 2002.8 mseg_message_info.incl.pl1 >ldd>include>mseg_message_info.incl.pl1 253 5 10/28/88 1226.4 output_request_data.incl.pl1 >special_ldd>install>MR12.2-1199>output_request_data.incl.pl1 254 6 09/13/84 0921.6 pdt.incl.pl1 >ldd>include>pdt.incl.pl1 6-29 7 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 255 8 10/28/88 1227.2 q_group_tab.incl.pl1 >special_ldd>install>MR12.2-1199>q_group_tab.incl.pl1 256 9 03/15/85 0953.1 request_descriptor.incl.pl1 >ldd>include>request_descriptor.incl.pl1 257 10 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 10-112 11 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. a_code parameter fixed bin(35,0) dcl 181 set ref 179 184* 187* 215* 217 228* 230 a_driver_index parameter fixed bin(17,0) dcl 182 ref 179 185 absolute_spent 347 based float bin(27) level 2 dcl 6-58 set ref 163* account_entry parameter entry variable dcl 43 ref 35 173 addr builtin function dcl 59 ref 161 after builtin function dcl 59 ref 131 any_other 000100 stack reference condition dcl 61 ref 126 argp parameter pointer dcl 44 ref 35 113 assigned_devices 265 based fixed bin(17,0) level 2 dcl 3-17 ref 117 before builtin function dcl 59 ref 130 131 both 000024 constant fixed bin(17,0) initial dcl 65 set ref 109* 119* 141* 144* 176* charge 274 based float bin(27) array level 3 in structure "user" dcl 6-58 in procedure "io_daemon_account_" set ref 163* charge 303 based float bin(27) level 2 in structure "ordata" dcl 5-17 in procedure "io_daemon_account_" set ref 114* 155* 156* 156 163 charge_queue 311 based fixed bin(17,0) level 2 dcl 5-17 ref 115 cleanup 000106 stack reference condition dcl 61 ref 127 code 000114 automatic fixed bin(35,0) dcl 82 set ref 139* 140 141 141* 144* 171* 173* 176 176* continue_to_signal_ 004624 constant entry external dcl 48 ref 244 default_prices 000010 internal static float bin(27) array dcl 66 set ref 104* 106 197* 199 209 dollar_charge 75 based float bin(27) level 2 dcl 6-58 set ref 163* driver 000062 internal static structure array level 2 in structure "lines_price" dcl 72 in procedure "io_daemon_account_" set ref 105 186 198 driver 002342 internal static structure array level 2 in structure "pages_price" dcl 76 in procedure "io_daemon_account_" driver_index 000115 automatic fixed bin(17,0) dcl 83 set ref 116* 117 117 149 152 185* 186 186 191 203 206 209 215 222 228 driver_ptr 304 based pointer level 2 dcl 3-17 ref 116 driver_status based structure level 1 dcl 1-25 dummy 000144 automatic structure level 1 dcl 93 set ref 160* 161 error 000027 constant fixed bin(17,0) initial dcl 67 set ref 109* 119* 141* 144* 176* error_table_$action_not_performed 004626 external static fixed bin(35,0) dcl 49 ref 187 error_table_$noentry 004630 external static fixed bin(35,0) dcl 50 ref 141 flags 310 based structure level 2 dcl 3-17 hbound builtin function dcl 59 ref 100 105 186 194 198 207 212 225 hcs_$set_ips_mask 004632 constant entry external dcl 51 ref 128 240 i 000116 automatic fixed bin(17,0) dcl 84 set ref 105* 106* 198* 199* 211* 215 215* 224* 228 228* iod 274 based structure array level 2 dcl 6-58 iodd_msg_ 004634 constant entry external dcl 52 ref 109 119 141 144 176 iodd_stat_p 004636 external static pointer dcl 53 ref 95 193 iodd_static based structure level 1 dcl 3-17 j 000117 automatic fixed bin(17,0) dcl 84 set ref 100* 101 103 104 106 106* 194* 195 196 197 199 199* 212* 213 214 215* 225* 226 227 228* line_charge 43 based structure level 2 dcl 8-28 line_count 272 based fixed bin(24,0) level 2 dcl 5-17 ref 155 168 lines 300 based fixed bin(71,0) array level 3 dcl 6-58 set ref 168* lines_price 000062 internal static structure array level 1 dcl 72 set ref 100 194 207 212 list_index 50 based fixed bin(17,0) level 2 dcl 1-25 ref 116 master_hold 310(06) based bit(1) level 3 packed packed unaligned dcl 3-17 set ref 118* max_queues 41 based fixed bin(17,0) level 2 dcl 8-28 ref 211 224 max_rs_number 000060 internal static fixed bin(17,0) initial dcl 68 set ref 99* 101 136 192* 195 213 226 mseg_message_info based structure level 1 dcl 4-9 n_lines_for_price 310 based fixed bin(17,0) level 2 dcl 5-17 set ref 151* 155 n_pages_for_price 313 based fixed bin(17,0) level 2 dcl 5-17 set ref 153* 156 no_accounting 314(10) based bit(1) level 2 packed packed unaligned dcl 5-17 set ref 135* not_initialized 000061 internal static bit(1) initial dcl 69 set ref 98 110* 191 202* null builtin function dcl 59 ref 96 207 223 old_mask 000120 automatic bit(36) dcl 85 set ref 125* 128* 239 240* 241* ordata based structure level 1 dcl 5-17 ordatap 000544 automatic pointer dcl 5-67 set ref 113* 114 115 130 131 135 135 146 149 150 151 152 153 155 155 155 155 156 156 156 156 156 162 163 168 169 page_charge 103 based structure level 2 dcl 8-28 page_count 273 based fixed bin(17,0) level 2 dcl 5-17 ref 156 169 pages 277 based fixed bin(35,0) array level 3 dcl 6-58 set ref 169* pages_price 002342 internal static structure array level 1 dcl 76 set ref 225 pdtep 000124 automatic pointer dcl 87 set ref 161* 163 163 163 167 168 169 173* pdtp 000122 automatic pointer dcl 86 set ref 96* pers 000126 automatic char(32) packed unaligned dcl 88 set ref 130* 132 132* 173* 176* pieces 275 based fixed bin(17,0) array level 3 dcl 6-58 set ref 167* price_per_n_lines 307 based float bin(27) level 2 dcl 5-17 set ref 149* 155 price_per_n_pages 312 based float bin(27) level 2 dcl 5-17 set ref 152* 156 proj 000136 automatic char(12) packed unaligned dcl 89 set ref 131* 139 141* 173* 176* q 000062 internal static float bin(27) array level 3 in structure "lines_price" dcl 72 in procedure "io_daemon_account_" set ref 106* 149 199* 206* 209* 215* q 000141 automatic fixed bin(17,0) dcl 90 in procedure "io_daemon_account_" set ref 115* 149 152 162* 163 167 168 169 q 002342 internal static float bin(27) array level 3 in structure "pages_price" dcl 76 in procedure "io_daemon_account_" set ref 152 222* 228* qgte based structure level 1 dcl 8-28 qgtep parameter pointer dcl 8-27 ref 179 207 207 211 215 223 223 224 228 queue 64 based fixed bin(17,0) level 2 in structure "ordata" dcl 5-17 in procedure "io_daemon_account_" ref 162 queue 43 based char(32) array level 3 in structure "qgte" dcl 8-28 in procedure "io_daemon_account_" set ref 207 215* queue 103 based char(32) array level 3 in structure "qgte" dcl 8-28 in procedure "io_daemon_account_" set ref 223 228* request_descriptor based structure level 1 dcl 9-8 requestor 2 based char(32) level 2 dcl 5-17 ref 130 131 rs_number 314 based fixed bin(9,0) level 2 in structure "ordata" packed packed unsigned unaligned dcl 5-17 in procedure "io_daemon_account_" set ref 150* rs_number 000142 automatic fixed bin(17,0) dcl 91 in procedure "io_daemon_account_" set ref 101* 103* 104* 136* 139* 145* 149 150 152 195* 196* 197* 207* 209 209* 213* 214* 215* 226* 227* 228* rs_unavailable 314(09) based bit(1) level 2 packed packed unaligned dcl 5-17 set ref 135* 146* search_sat_$rs_number 004640 constant entry external dcl 54 ref 139 stat_p 004622 internal static pointer dcl 3-15 set ref 95* 116 117 118 193* system_info_$io_prices_rs 004642 constant entry external dcl 55 ref 104 197 system_info_$max_rs_number 004644 constant entry external dcl 56 ref 99 192 system_info_$resource_price_rs 004646 constant entry external dcl 57 ref 215 228 text_offset based structure level 1 packed packed unaligned dcl 2-45 unspec builtin function dcl 59 set ref 160* user based structure level 1 dcl 6-58 user_attributes based structure level 1 dcl 10-21 whoami 000000 constant char(32) initial packed unaligned dcl 70 set ref 109* 119* 141* 144* 176* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 11-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-77 IODT_VERSION_5 internal static char(8) initial packed unaligned dcl 2-49 MSEG_MESSAGE_INFO_V1 internal static char(8) initial dcl 4-28 MSEG_READ_AFTER_SPECIFIED internal static fixed bin(17,0) initial dcl 4-30 MSEG_READ_BEFORE_SPECIFIED internal static fixed bin(17,0) initial dcl 4-30 MSEG_READ_DELETE internal static bit(36) initial dcl 4-38 MSEG_READ_FIRST internal static fixed bin(17,0) initial dcl 4-30 MSEG_READ_LAST internal static fixed bin(17,0) initial dcl 4-30 MSEG_READ_OWN internal static bit(36) initial dcl 4-38 MSEG_READ_SPECIFIED internal static fixed bin(17,0) initial dcl 4-30 PDT_entry_lth internal static fixed bin(17,0) initial dcl 6-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 6-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 6-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 6-19 PDT_version internal static fixed bin(17,0) initial dcl 6-19 REQUEST automatic structure level 1 dcl 5-69 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 10-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 10-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 10-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-50 driver_status_ptr automatic pointer dcl 1-24 iod_tables_hdr based structure level 1 dcl 2-23 ithp automatic pointer dcl 2-22 mseg_message_info_ptr automatic pointer dcl 4-7 pdt based structure level 1 dcl 6-27 q_group_tab based structure level 1 dcl 8-22 qgtp automatic pointer dcl 8-21 text_strings based structure level 1 dcl 2-39 text_strings_ptr automatic pointer dcl 2-38 user_abs_attributes based structure level 1 dcl 11-25 NAMES DECLARED BY EXPLICIT CONTEXT. io_daemon_account_ 000154 constant entry external dcl 35 set_line_prices 001056 constant entry external dcl 179 unmask 001533 constant entry internal dcl 237 ref 126 127 175 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1776 6646 1573 2006 Length 7340 1573 4650 456 202 4614 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME io_daemon_account_ 470 external procedure is an external procedure. on unit on line 126 64 on unit on unit on line 127 64 on unit unmask 72 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 default_prices io_daemon_account_ 000060 max_rs_number io_daemon_account_ 000061 not_initialized io_daemon_account_ 000062 lines_price io_daemon_account_ 002342 pages_price io_daemon_account_ 004622 stat_p io_daemon_account_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME io_daemon_account_ 000114 code io_daemon_account_ 000115 driver_index io_daemon_account_ 000116 i io_daemon_account_ 000117 j io_daemon_account_ 000120 old_mask io_daemon_account_ 000122 pdtp io_daemon_account_ 000124 pdtep io_daemon_account_ 000126 pers io_daemon_account_ 000136 proj io_daemon_account_ 000141 q io_daemon_account_ 000142 rs_number io_daemon_account_ 000144 dummy io_daemon_account_ 000544 ordatap io_daemon_account_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ent_var_desc call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ hcs_$set_ips_mask iodd_msg_ search_sat_$rs_number system_info_$io_prices_rs system_info_$max_rs_number system_info_$resource_price_rs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$noentry iodd_stat_p LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000150 95 000161 96 000164 98 000166 99 000170 100 000176 101 000203 103 000210 104 000211 105 000222 106 000227 107 000254 108 000256 109 000260 110 000314 113 000316 114 000322 115 000324 116 000326 117 000332 118 000336 119 000340 120 000373 125 000374 126 000375 127 000417 128 000441 130 000454 131 000465 132 000510 135 000517 136 000523 139 000530 140 000554 141 000556 144 000620 145 000652 146 000653 149 000656 150 000672 151 000675 152 000677 153 000701 155 000703 156 000713 160 000724 161 000727 162 000731 163 000733 167 000744 168 000746 169 000751 171 000753 173 000754 175 001001 176 001005 177 001051 179 001052 184 001063 185 001065 186 001067 187 001072 188 001075 191 001076 192 001103 193 001111 194 001115 195 001121 196 001126 197 001127 198 001140 199 001145 200 001172 201 001174 202 001176 203 001200 206 001202 207 001232 209 001251 210 001276 211 001301 212 001311 213 001315 214 001322 215 001323 217 001364 218 001367 219 001371 222 001373 223 001424 224 001440 225 001447 226 001453 227 001460 228 001461 230 001522 231 001525 232 001527 234 001531 237 001532 239 001540 240 001543 241 001555 244 001557 246 001567 ----------------------------------------------------------- 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