COMPILATION LISTING OF SEGMENT print_devices Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1339.4 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 print_devices: proc; 13 14 /* This command prints a list of devices for each request type 15* handled by the IO daemon as determined by inspecting the 16* iod_working_tables segment. If more than one device class 17* is defined for a request type, then the device classes 18* are treated separately. For each request type, the 19* associated driver access name and authorization is 20* printed. An asterisk is placed immediately before a device 21* name if the corresponding request type (device class) is 22* the default for the device. 23**/ 24 25 /* Written by J. Stern, 5/9/75 */ 26 /* Modified by J. C. Whitmore, 4/78, for new iod_tables format */ 27 /* Modified by J. C. Whitmore, 10/78, to use version 3 iod_tables */ 28 /* Modified by E. N. Kittlitz, 6/81, to use version 4 iod_tables */ 29 30 31 /****^ HISTORY COMMENTS: 32* 1) change(88-06-03,Brunelle), approve(88-06-03,MCR7911), 33* audit(88-10-18,Wallman), install(88-10-28,MR12.2-1199): 34* Upgraded to handle version 5 I/O daemon tables. Also displays comments 35* store in the major and minor device entries. Display columns are based 36* on length of longest entry for each column. 37* END HISTORY COMMENTS */ 38 39 40 dcl argp ptr; /* ptr to arg */ 41 dcl arglen fixed bin; /* length of arg */ 42 dcl arg char (arglen) based (argp); /* command argument */ 43 44 dcl bfsw bit (1) aligned; /* ON for brief option */ 45 dcl rqt_found bit (1) aligned; /* ON if desired request type found */ 46 dcl an_found bit (1) aligned; /* ON if desired access name found */ 47 dcl select bit (1) aligned; /* ON if selecting subset of request types */ 48 dcl match bit (1) aligned; /* ON if request type or access name matched */ 49 dcl accname char (32) aligned; /* access name */ 50 dcl req_type char (32) aligned; /* request type name */ 51 dcl rqt_name char (32) aligned; /* request type name */ 52 dcl dev_name char (32) aligned; /* device name */ 53 dcl sysdir char (168) aligned;/* directory containing iod_working_tables */ 54 dcl ent_name char (32) aligned; 55 56 dcl (i, j, k) fixed bin; 57 dcl did_len fixed bin; /* driver id length */ 58 dcl code fixed bin (35); /* error code */ 59 dcl star char (1) aligned; /* to indicate default request type for device */ 60 dcl count fixed bin; /* count of queue groups printed */ 61 dcl nargs fixed bin; 62 63 dcl system_high bit (72) aligned; /* system high access authorization */ 64 dcl auth_string char (170); /* authorization string */ 65 66 dcl whoami char (13) aligned int static init ("print_devices"); 67 68 dcl error_table_$badopt fixed bin (35) ext; 69 70 dcl (addr, substr, ptr, null, before, rtrim, length) builtin; 71 72 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 73 dcl cu_$arg_count entry (fixed bin); 74 dcl com_err_ entry options (variable); 75 dcl expand_pathname_ entry (char (*), char (*) aligned, char (*) aligned, fixed bin (35)); 76 dcl hcs_$initiate entry (char (*) aligned, char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 77 dcl ioa_ entry options (variable); 78 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 79 dcl convert_authorization_$to_string_short entry (bit (72) aligned, char (*), fixed bin (35)); 80 dcl system_info_$access_ceiling entry (bit (72) aligned); 81 82 83 /* initialize control argument defaults */ 84 85 bfsw = "0"b; 86 an_found, rqt_found = "1"b; 87 accname, req_type = ""; 88 sysdir = ">daemon_dir_dir>io_daemon_dir"; 89 90 /* look for arguments */ 91 92 call cu_$arg_count (nargs); 93 94 do i = 1 to nargs; 95 call cu_$arg_ptr (i, argp, arglen, code); 96 if code ^= 0 then go to noarg; 97 if arg = "-bf" | arg = "-brief" then bfsw = "1"b; 98 else if arg = "-an" | arg = "-access_name" then do; 99 i = i + 1; 100 call cu_$arg_ptr (i, argp, arglen, code); 101 if code ^= 0 then do; 102 noarg: call com_err_ (code, whoami); 103 return; 104 end; 105 accname = arg; 106 an_found = "0"b; 107 end; 108 else if arg = "-rqt" | arg = "-request_type" then do; 109 i = i + 1; 110 call cu_$arg_ptr (i, argp, arglen, code); 111 if code ^= 0 then go to noarg; 112 req_type = arg; 113 rqt_found = "0"b; 114 end; 115 else if arg = "-dir" | arg = "-directory" then do; 116 i = i + 1; 117 call cu_$arg_ptr (i, argp, arglen, code); 118 if code ^= 0 then go to noarg; 119 call expand_pathname_ (arg, sysdir, ent_name, code); /* take apart and put it back together */ 120 if code ^= 0 then do; 121 call com_err_ (code, whoami, arg); 122 return; 123 end; 124 if sysdir = ">" then sysdir = ">" || ent_name; 125 else sysdir = rtrim (sysdir) || ">" || ent_name; 126 end; 127 else do; 128 call com_err_ (error_table_$badopt, whoami, arg); 129 return; 130 end; 131 end; 132 133 select = ^(an_found & rqt_found); 134 135 /* get a pointer to the iod_working_tables */ 136 137 call hcs_$initiate (sysdir, "iod_working_tables", "", 0, 1, ithp, code); 138 if ithp = null then do; 139 call com_err_ (code, whoami, "^a>iod_working_tables", sysdir); 140 return; 141 end; 142 143 if iod_tables_hdr.version ^= IODT_VERSION_5 then do; 144 call com_err_ (0, whoami, "Wrong version number for iod_working_tables."); 145 return; 146 end; 147 148 idtp = ptr (ithp, iod_tables_hdr.device_tab_offset); 149 mdtp = ptr (ithp, iod_tables_hdr.minor_device_tab_offset); 150 dctp = ptr (ithp, iod_tables_hdr.dev_class_tab_offset); 151 qgtp = ptr (ithp, iod_tables_hdr.q_group_tab_offset); 152 153 /* print the table */ 154 155 call system_info_$access_ceiling (system_high); 156 count = 0; 157 158 do i = 1 to q_group_tab.n_q_groups; 159 qgtep = addr (q_group_tab.entries (i)); 160 did_len = length (before (qgte.driver_id, ".*")); /* compiler ensures it ends with ".*" */ 161 162 if select then do; 163 match = "1"b; 164 if req_type ^= "" then 165 if req_type = qgte.name then rqt_found = "1"b; 166 else match = "0"b; 167 if accname ^= "" then 168 if accname = substr (qgte.driver_id, 1, did_len) then an_found = "1"b; 169 else match = "0"b; 170 if ^match then go to next; 171 end; 172 173 do j = qgte.first_dev_class to qgte.last_dev_class; 174 dctep = addr (dev_class_tab.entries (j)); 175 176 do k = 1 to minor_device_tab.n_minor; 177 count = count + 1; 178 if substr (dcte.device_list, k, 1) then do; 179 mdtep = addr (minor_device_tab.entries (k)); 180 idtep = addr (iod_device_tab.entries (mdte.major_index)); 181 dev_name = idte.dev_id; 182 if idte.last_minor > idte.first_minor 183 | dev_name ^= mdte.dev_id then 184 dev_name = rtrim (dev_name) || "." || mdte.dev_id; 185 if mdte.default_dev_class = j then star = "*"; 186 else star = " "; 187 188 if count = 1 then 189 if ^bfsw then call ioa_ ("^/ Device^-^-Request type^-Access name^/"); 190 191 if substr (dcte.device_list, 1, k - 1) = ""b then do; 192 rqt_name = qgte.name; 193 if qgte.last_dev_class > qgte.first_dev_class 194 | rqt_name ^= dcte.id then 195 rqt_name = rtrim (rqt_name) || "." || dcte.id; 196 197 auth_string = ""; 198 call convert_authorization_$to_string_short (dcte.max_access, auth_string, code); 199 if auth_string ^= "" then 200 if dcte.max_access = system_high then auth_string = "system_high"; 201 202 call ioa_ ("^1a ^18a^20a^20a^a", star, dev_name, rqt_name, 203 substr (qgte.driver_id, 1, did_len), auth_string); 204 end; 205 else call ioa_ ("^1a ^a", star, dev_name); 206 end; 207 end; 208 end; 209 next: end; 210 211 if ^rqt_found then call com_err_ (0, whoami, "Request type not found: ^a", req_type); 212 if ^an_found then call com_err_ (0, whoami, "Access name not found: ^a", accname); 213 if rqt_found & an_found then 214 if count = 0 then call com_err_ (0, whoami, "No devices."); 215 else call ioa_ (""); /* throw in an extra blank line */ 216 217 call hcs_$terminate_noname (ithp, code); 218 /* BEGIN INCLUDE FILE...device_class.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 R.S.Coren August 1973 1 9* Modified by J. Stern, 1/8/75 1 10* Modified by J. C. Whitmore, 5/78, to extent the size of the device list 1 11* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 1 12* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 13* Added comment field in dcte. 1 14* END HISTORY COMMENTS */ 1 15 1 16 1 17 /* format: style4 */ 1 18 1 19 dcl dctp ptr; /* ptr to device class table */ 1 20 dcl 1 dev_class_tab aligned based (dctp), /* the device class table */ 1 21 2 n_classes fixed bin, /* number of device classes */ 1 22 2 pad fixed bin, 1 23 2 entries (1 refer (dev_class_tab.n_classes)) like dcte; 1 24 1 25 dcl dctep ptr; /* device class table entry ptr */ 1 26 1 27 dcl 1 dcte aligned based (dctep), /* device class table entry */ 1 28 1 29 /* following items are initialized before daemon is run */ 1 30 1 31 2 id char (32), /* device class name for this entry */ 1 32 2 comment unaligned like text_offset, /* comment to apply to the device class */ 1 33 2 qgte_index fixed bin, /* index of queue group table entry */ 1 34 2 pad1 fixed bin, 1 35 2 max_access bit (72), /* max request access class */ 1 36 2 min_access bit (72), /* min request access class */ 1 37 2 min_banner bit (72), /* min access class to be placed on output banner */ 1 38 2 device_list bit (360), /* bit _i ON => minor device _i is valid for device class */ 1 39 1 40 /* remaining info is dynamic */ 1 41 1 42 2 pending_request fixed bin (18), /* descriptor offset for allocated but unassigned request */ 1 43 2 restart_req fixed bin (18), /* offset of next (or last) descriptor to be restarted */ 1 44 2 pad2 (3) fixed bin, 1 45 2 n_waiting fixed bin, /* number of waiting requests for device class */ 1 46 2 per_queue_info (4), /* one copy of this for each queue */ 1 47 3 first_waiting fixed bin, /* index of first waiting list entry */ 1 48 3 last_waiting fixed bin; /* index of last waiting list entry */ 1 49 1 50 1 51 /* END INCLUDE FILE...device_class.incl.pl1 */ 218 219 /* BEGIN INCLUDE FILE...iod_device_tab.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, January 1975 2 9* Modified by J. C. Whitmore April 1978 2 10* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 2 11* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 2 12* Added comment, head_sheet, tail_sheet, paper_type, forms_table, 2 13* forms_validation, font_dir variables to device entries in support of laser 2 14* printers. Changed driver_module, args to text_offset instead of strings. 2 15* Added comment, default_form to minor device entries. Changed args in 2 16* minor device entry to text_offset instead of string. 2 17* END HISTORY COMMENTS */ 2 18 2 19 2 20 /* format: style4 */ 2 21 2 22 dcl idtp ptr; /* ptr to device table */ 2 23 dcl 1 iod_device_tab aligned based (idtp), /* IO daemon device table */ 2 24 2 n_devices fixed bin, /* number of major devices */ 2 25 2 pad fixed bin, 2 26 2 entries (1 refer (iod_device_tab.n_devices)) like idte; /* entries for major devices */ 2 27 2 28 dcl idtep ptr; /* major device entry pointer */ 2 29 dcl 1 idte aligned based (idtep), /* major device entry */ 2 30 2 31 /* static info associated with device from the parms file */ 2 32 2 33 2 dev_id char (24), /* major device name */ 2 34 2 comment unaligned like text_offset, /* comment to apply to the major device */ 2 35 2 attach_name char (32), /* channel name or dial id for device attachment */ 2 36 2 attach_type fixed bin, /* indicates meaning of attach_name */ 2 37 /* see ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 2 38 2 ctl_attach_name char (32), /* channel, dial id, or source for control terminal attachment */ 2 39 2 ctl_attach_type fixed bin, /* indicates meaning of ctl_attach_name */ 2 40 /* see CTL_ATTACH_TYPE_XX in iod_constants.incl.pl1 */ 2 41 2 driver_module unaligned like text_offset, /* offset to pathname of program to drive device */ 2 42 2 head_sheet unaligned like text_offset, /* offset to name of head_sheet program to use */ 2 43 2 tail_sheet unaligned like text_offset, /* offset to name of tail_sheet program to use */ 2 44 2 paper_type fixed bin, /* -1=default , 1=continuous form, 2=single sheet */ 2 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 2 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 2 47 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 2 48 2 args unaligned like text_offset, /* offset to arguments to driver program */ 2 49 2 first_minor fixed bin, /* index of first minor device for this major device */ 2 50 2 last_minor fixed bin, /* index of last minor device for this major device */ 2 51 2 52 /* dynamic info associated with driver of this device */ 2 53 2 54 2 lock bit (36), /* lock id of current driver */ 2 55 2 process_id bit (36); /* process id of current driver */ 2 56 2 57 dcl mdtp ptr; 2 58 dcl 1 minor_device_tab aligned based (mdtp), 2 59 2 n_minor fixed bin, /* number of minor devices */ 2 60 2 pad fixed bin, 2 61 2 entries (1 refer (minor_device_tab.n_minor)) like mdte; 2 62 2 63 dcl mdtep ptr; /* minor device entry pointer */ 2 64 dcl 1 mdte aligned based (mdtep), /* minor device entry */ 2 65 2 66 /* static info associated with device from the parms file */ 2 67 2 68 2 dev_id char (24), /* minor device name */ 2 69 2 comment unaligned like text_offset, /* comment to apply to the minor device */ 2 70 2 default_form unaligned like text_offset, /* offset to default -form string for minor device */ 2 71 2 default_dev_class fixed bin, /* default device class index */ 2 72 2 major_index fixed bin, /* subscript of corresponding major device entry */ 2 73 2 args unaligned like text_offset, /* offset to arguments to driver program */ 2 74 2 75 /* dynamic info associated with driver of this device */ 2 76 2 77 2 dev_class_index fixed bin, /* index of device class table entry */ 2 78 2 current_request fixed bin (18), /* offset of current request descriptor */ 2 79 2 driver_ptr ptr, /* ptr to driver status segment */ 2 80 2 active fixed bin, /* 1 if active, 0 if not active */ 2 81 2 seq_id fixed bin (35); /* sequence number of last request */ 2 82 2 83 /* named constants for attach_type, ctl_attach_type and paper_type are found 2 84* in iod_constants.incl.pl1 */ 2 85 2 86 /* END INCLUDE FILE...iod_device_tab.incl.pl1 */ 219 220 /* BEGIN INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 3 7* Ancient History 3 8* Created by J. Stern, 1/20/75 3 9* Modified by J. C. Whitmore April 1978 for enhancements 3 10* Modified by J. C. Whitmore, 10/78, for version 3 iod_tables format. 3 11* Modified by E. N. Kittlitz, 6/81, for version 4 iod_tables with expanded 3 12* q_group_tab 3 13* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 3 14* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 3 15* Change version number to reflect changes in q_group_tab and 3 16* iod_device_tab for laser printer support. Added font tables. 3 17* END HISTORY COMMENTS */ 3 18 3 19 3 20 /* format: style4 */ 3 21 3 22 dcl ithp ptr; /* ptr to io daemon dables and it's header */ 3 23 dcl 1 iod_tables_hdr aligned based (ithp), /* header of data segment compiled by iod_table_compiler */ 3 24 2 version char (8), /* version of this structure */ 3 25 2 date_time_compiled fixed bin (71), 3 26 2 grace_time fixed bin (71), /* grace time before deleting finished segment */ 3 27 2 max_queues fixed bin (17), /* default number of priority queues per queue group */ 3 28 2 line_tab_offset fixed bin (18), /* offset of line id table */ 3 29 2 device_tab_offset fixed bin (18), /* offset of device table */ 3 30 2 minor_device_tab_offset fixed bin (18), /* offset of minor device table */ 3 31 2 dev_class_tab_offset fixed bin (18), /* offset of device class table */ 3 32 2 q_group_tab_offset fixed bin (18), /* offset of queue group table */ 3 33 2 forms_info_tab_offset fixed bin (18), /* offset of forms info tables */ 3 34 2 text_strings_offset fixed bin (18), 3 35 2 start_of_tables fixed bin; /* beginning of above tables, MUST start on even word boundry */ 3 36 3 37 /* Defines common text block to store virtually all text in the I/O daemon tables */ 3 38 dcl text_strings_ptr ptr; 3 39 dcl 1 text_strings aligned based (text_strings_ptr), 3 40 2 length fixed bin, 3 41 2 chars char (1 refer (text_strings.length)) unaligned; 3 42 3 43 /* this defines text offsets used to locate i/o daemon tables strings in 3 44* the text_strings structure */ 3 45 dcl 1 text_offset based, 3 46 2 first_char fixed bin (18) unsigned unaligned, 3 47 2 total_chars fixed bin (18) unsigned unaligned; 3 48 3 49 dcl IODT_VERSION_5 char (8) int static options (constant) init ("IODT0005"); /* current version number */ 3 50 3 51 3 52 /* END INCLUDE FILE ... iod_tables_hdr.incl.pl1 */ 220 221 /* BEGIN INCLUDE FILE...q_group_tab.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-01-27,Brunelle), approve(), audit(), install(): 4 7* Ancient History 4 8* Created by J. Stern, December 1974 4 9* Modified by J. Whitmore April 1978 4 10* Modified by R. McDonald May 1980 to include page charges (UNCA) 4 11* Modified by E. N. Kittlitz June 1981 for UNCA changes 4 12* 2) change(88-02-18,Brunelle), approve(88-08-31,MCR7911), 4 13* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 4 14* Add forms_validation, default_form and font_dir variables for laser 4 15* printer support. 4 16* END HISTORY COMMENTS */ 4 17 4 18 4 19 /* format: style4 */ 4 20 4 21 dcl qgtp ptr; /* ptr to queue group table */ 4 22 dcl 1 q_group_tab aligned based (qgtp), 4 23 2 n_q_groups fixed bin, /* number of queue groups */ 4 24 2 pad fixed bin, 4 25 2 entries (1 refer (q_group_tab.n_q_groups)) like qgte; /* entries of queue group table */ 4 26 4 27 dcl qgtep ptr; /* queue group table entry pointer */ 4 28 dcl 1 qgte aligned based (qgtep), /* queue group table entry */ 4 29 4 30 /* static info from the parms file */ 4 31 4 32 2 name char (24), /* queue group name */ 4 33 2 comment unaligned like text_offset, /* comment to apply to the request_type */ 4 34 2 driver_id char (32), /* person.project name of drivers for this q group */ 4 35 2 accounting unaligned like text_offset, /* offset to accounting routine pathname, "system" => charge_user_ */ 4 36 2 generic_type char (32), /* generic type of requests in this queue */ 4 37 2 default_generic_queue fixed bin (1), /* 1 if this is default queue for above generic type, else 0 */ 4 38 2 rqti_seg_name char (32), /* name of rqti seg, if required, else blank */ 4 39 2 max_queues fixed bin, /* number of queues for this request type */ 4 40 2 default_queue fixed bin, /* number of the default queue */ 4 41 2 line_charge, /* price names for line charges */ 4 42 3 queue (4) char (32), /* one name for each queue */ 4 43 2 page_charge, /* price names for page charges */ 4 44 3 queue (4) char (32), /* one name for each queue */ 4 45 2 forms_table unaligned like text_offset, /* offset to forms table to apply to this queue group */ 4 46 2 forms_validation unaligned like text_offset, /* offset to name of routine for forms validation */ 4 47 2 default_form unaligned like text_offset, /* offset to default -form string if none given */ 4 48 2 font_dir unaligned like text_offset, /* offset to location of downloadable fonts */ 4 49 2 first_dev_class fixed bin, /* index of first device class entry of queue group */ 4 50 2 last_dev_class fixed bin, /* index of last device class entry of queue group */ 4 51 4 52 /* dynamic info reflecting current status of queues */ 4 53 4 54 2 open fixed bin, /* 1 if queues have been opened, else 0 */ 4 55 2 per_queue_info (4), 4 56 3 last_read bit (72), /* ID of last message read */ 4 57 3 mseg_index fixed bin, /* message segment index */ 4 58 3 pad fixed bin; /* pad to even word boundary */ 4 59 4 60 /* END INCLUDE FILE...q_group_tab.incl.pl1 */ 221 222 223 end print_devices; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1233.8 print_devices.pl1 >special_ldd>install>MR12.2-1199>print_devices.pl1 218 1 10/28/88 1227.7 device_class.incl.pl1 >special_ldd>install>MR12.2-1199>device_class.incl.pl1 219 2 10/28/88 1227.3 iod_device_tab.incl.pl1 >special_ldd>install>MR12.2-1199>iod_device_tab.incl.pl1 220 3 10/28/88 1227.4 iod_tables_hdr.incl.pl1 >special_ldd>install>MR12.2-1199>iod_tables_hdr.incl.pl1 221 4 10/28/88 1227.2 q_group_tab.incl.pl1 >special_ldd>install>MR12.2-1199>q_group_tab.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. IODT_VERSION_5 000000 constant char(8) initial packed unaligned dcl 3-49 ref 143 accname 000110 automatic char(32) dcl 49 set ref 87* 105* 167 167 212* addr builtin function dcl 70 ref 159 174 179 180 an_found 000105 automatic bit(1) dcl 46 set ref 86* 106* 133 167* 212 213 arg based char packed unaligned dcl 42 set ref 97 97 98 98 105 108 108 112 115 115 119* 121* 128* arglen 000102 automatic fixed bin(17,0) dcl 41 set ref 95* 97 97 98 98 100* 105 108 108 110* 112 115 115 117* 119 119 121 121 128 128 argp 000100 automatic pointer dcl 40 set ref 95* 97 97 98 98 100* 105 108 108 110* 112 115 115 117* 119 121 128 auth_string 000244 automatic char(170) packed unaligned dcl 64 set ref 197* 198* 199 199* 202* before builtin function dcl 70 ref 160 bfsw 000103 automatic bit(1) dcl 44 set ref 85* 97* 188 code 000236 automatic fixed bin(35,0) dcl 58 set ref 95* 96 100* 101 102* 110* 111 117* 118 119* 120 121* 137* 139* 198* 217* com_err_ 000022 constant entry external dcl 74 ref 102 121 128 139 144 211 212 213 convert_authorization_$to_string_short 000034 constant entry external dcl 79 ref 198 count 000240 automatic fixed bin(17,0) dcl 60 set ref 156* 177* 177 188 213 cu_$arg_count 000020 constant entry external dcl 73 ref 92 cu_$arg_ptr 000016 constant entry external dcl 72 ref 95 100 110 117 dcte based structure level 1 dcl 1-27 dctep 000322 automatic pointer dcl 1-25 set ref 174* 178 191 193 193 198 199 dctp 000320 automatic pointer dcl 1-19 set ref 150* 174 default_dev_class 10 based fixed bin(17,0) level 2 dcl 2-64 ref 185 dev_class_tab based structure level 1 dcl 1-20 dev_class_tab_offset 12 based fixed bin(18,0) level 2 dcl 3-23 ref 150 dev_id based char(24) level 2 in structure "mdte" dcl 2-64 in procedure "print_devices" ref 182 182 dev_id based char(24) level 2 in structure "idte" dcl 2-29 in procedure "print_devices" ref 181 dev_name 000140 automatic char(32) dcl 52 set ref 181* 182 182* 182 202* 205* device_list 21 based bit(360) level 2 dcl 1-27 ref 178 191 device_tab_offset 10 based fixed bin(18,0) level 2 dcl 3-23 ref 148 did_len 000235 automatic fixed bin(17,0) dcl 57 set ref 160* 167 202 202 driver_id 7 based char(32) level 2 dcl 4-28 ref 160 167 202 202 ent_name 000222 automatic char(32) dcl 54 set ref 119* 124 125 entries 2 based structure array level 2 in structure "q_group_tab" dcl 4-22 in procedure "print_devices" set ref 159 entries 2 based structure array level 2 in structure "minor_device_tab" dcl 2-58 in procedure "print_devices" set ref 179 entries 2 based structure array level 2 in structure "iod_device_tab" dcl 2-23 in procedure "print_devices" set ref 180 entries 2 based structure array level 2 in structure "dev_class_tab" dcl 1-20 in procedure "print_devices" set ref 174 error_table_$badopt 000014 external static fixed bin(35,0) dcl 68 set ref 128* expand_pathname_ 000024 constant entry external dcl 75 ref 119 first_dev_class 147 based fixed bin(17,0) level 2 dcl 4-28 ref 173 193 first_minor 41 based fixed bin(17,0) level 2 dcl 2-29 ref 182 hcs_$initiate 000026 constant entry external dcl 76 ref 137 hcs_$terminate_noname 000032 constant entry external dcl 78 ref 217 i 000232 automatic fixed bin(17,0) dcl 56 set ref 94* 95* 99* 99 100* 109* 109 110* 116* 116 117* 158* 159* id based char(32) level 2 dcl 1-27 ref 193 193 idte based structure level 1 dcl 2-29 idtep 000326 automatic pointer dcl 2-28 set ref 180* 181 182 182 idtp 000324 automatic pointer dcl 2-22 set ref 148* 180 ioa_ 000030 constant entry external dcl 77 ref 188 202 205 215 iod_device_tab based structure level 1 dcl 2-23 iod_tables_hdr based structure level 1 dcl 3-23 ithp 000334 automatic pointer dcl 3-22 set ref 137* 138 143 148 148 149 149 150 150 151 151 217* j 000233 automatic fixed bin(17,0) dcl 56 set ref 173* 174 185* k 000234 automatic fixed bin(17,0) dcl 56 set ref 176* 178 179 191* last_dev_class 150 based fixed bin(17,0) level 2 dcl 4-28 ref 173 193 last_minor 42 based fixed bin(17,0) level 2 dcl 2-29 ref 182 length builtin function dcl 70 ref 160 major_index 11 based fixed bin(17,0) level 2 dcl 2-64 ref 180 match 000107 automatic bit(1) dcl 48 set ref 163* 166* 169* 170 max_access 13 based bit(72) level 2 dcl 1-27 set ref 198* 199 mdte based structure level 1 dcl 2-64 mdtep 000332 automatic pointer dcl 2-63 set ref 179* 180 182 182 185 mdtp 000330 automatic pointer dcl 2-57 set ref 149* 176 179 minor_device_tab based structure level 1 dcl 2-58 minor_device_tab_offset 11 based fixed bin(18,0) level 2 dcl 3-23 ref 149 n_minor based fixed bin(17,0) level 2 dcl 2-58 ref 176 n_q_groups based fixed bin(17,0) level 2 dcl 4-22 ref 158 name based char(24) level 2 dcl 4-28 ref 164 192 nargs 000241 automatic fixed bin(17,0) dcl 61 set ref 92* 94 null builtin function dcl 70 ref 138 ptr builtin function dcl 70 ref 148 149 150 151 q_group_tab based structure level 1 dcl 4-22 q_group_tab_offset 13 based fixed bin(18,0) level 2 dcl 3-23 ref 151 qgte based structure level 1 dcl 4-28 qgtep 000340 automatic pointer dcl 4-27 set ref 159* 160 164 167 173 173 192 193 193 202 202 qgtp 000336 automatic pointer dcl 4-21 set ref 151* 158 159 req_type 000120 automatic char(32) dcl 50 set ref 87* 112* 164 164 211* rqt_found 000104 automatic bit(1) dcl 45 set ref 86* 113* 133 164* 211 213 rqt_name 000130 automatic char(32) dcl 51 set ref 192* 193 193* 193 202* rtrim builtin function dcl 70 ref 125 182 193 select 000106 automatic bit(1) dcl 47 set ref 133* 162 star 000237 automatic char(1) dcl 59 set ref 185* 186* 202* 205* substr builtin function dcl 70 ref 167 178 191 202 202 sysdir 000150 automatic char(168) dcl 53 set ref 88* 119* 124 124* 125* 125 137* 139* system_high 000242 automatic bit(72) dcl 63 set ref 155* 199 system_info_$access_ceiling 000036 constant entry external dcl 80 ref 155 text_offset based structure level 1 packed packed unaligned dcl 3-45 version based char(8) level 2 dcl 3-23 ref 143 whoami 000010 internal static char(13) initial dcl 66 set ref 102* 121* 128* 139* 144* 211* 212* 213* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. text_strings based structure level 1 dcl 3-39 text_strings_ptr automatic pointer dcl 3-38 NAMES DECLARED BY EXPLICIT CONTEXT. next 001460 constant label dcl 209 ref 170 noarg 000303 constant label dcl 102 ref 96 111 118 print_devices 000157 constant entry external dcl 12 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2000 2040 1632 2010 Length 2350 1632 40 273 145 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME print_devices 298 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 whoami print_devices STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME print_devices 000100 argp print_devices 000102 arglen print_devices 000103 bfsw print_devices 000104 rqt_found print_devices 000105 an_found print_devices 000106 select print_devices 000107 match print_devices 000110 accname print_devices 000120 req_type print_devices 000130 rqt_name print_devices 000140 dev_name print_devices 000150 sysdir print_devices 000222 ent_name print_devices 000232 i print_devices 000233 j print_devices 000234 k print_devices 000235 did_len print_devices 000236 code print_devices 000237 star print_devices 000240 count print_devices 000241 nargs print_devices 000242 system_high print_devices 000244 auth_string print_devices 000320 dctp print_devices 000322 dctep print_devices 000324 idtp print_devices 000326 idtep print_devices 000330 mdtp print_devices 000332 mdtep print_devices 000334 ithp print_devices 000336 qgtp print_devices 000340 qgtep print_devices THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ convert_authorization_$to_string_short cu_$arg_count cu_$arg_ptr expand_pathname_ hcs_$initiate hcs_$terminate_noname ioa_ system_info_$access_ceiling THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000156 85 000164 86 000165 87 000170 88 000176 92 000201 94 000207 95 000217 96 000234 97 000236 98 000253 99 000263 100 000264 101 000301 102 000303 103 000320 105 000321 106 000326 107 000327 108 000330 109 000340 110 000341 111 000356 112 000360 113 000365 114 000366 115 000367 116 000377 117 000400 118 000415 119 000417 120 000447 121 000451 122 000475 124 000476 125 000516 126 000556 128 000560 129 000604 131 000605 133 000607 137 000613 138 000662 139 000666 140 000721 143 000722 144 000727 145 000754 148 000755 149 000761 150 000765 151 000771 155 000775 156 001004 158 001005 159 001015 160 001021 162 001031 163 001033 164 001035 166 001047 167 001050 169 001062 170 001063 173 001065 174 001075 176 001101 177 001111 178 001112 179 001117 180 001123 181 001130 182 001133 185 001201 186 001210 188 001212 191 001233 192 001242 193 001246 197 001314 198 001320 199 001341 202 001355 204 001427 205 001431 207 001454 208 001456 209 001460 211 001462 212 001515 213 001550 215 001605 217 001616 223 001627 ----------------------------------------------------------- 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