1 :Info: slt_entry: slte:  2023-03-31  slt_entry, slte
  2 
  3 Syntax:
  4    slte  {SEGNO | SEGNAME}  {SEGNO | SEGNAME}  {-control_args}
  5 
  6 
  7 Syntax as an active request:
  8   [slte  {SEGNO | SEGNAME}  {SEGNO | SEGNAME}  {-control_args}]
  9 
 10 
 11 Function:  Displays one or more Segment Loading Table entries (SLTEs).
 12 As an active request, returns SEGNO of entries that match attributes
 13 given with the -attributes control argument.
 14 
 15 
 16 For a discussion of hardcore supervisor segment types, please type the
 17 following request:  help hardcore_segs.gi
 18 
 19 
 20 Arguments:
 21    If no SEGNO or SEGNAME is given, all SLT entries are displayed.
 22    If one SEGNO and one SEGNAME are given, the SEGNAME is mapped to a
 23    segment number which is coupled with the given SEGNO to define a
 24    range of SLTEs to display.
 25 SEGNO
 26    segment number (octal) whose SLTE is to be displayed.  If two
 27    numbers are given, they start/end the range of segment numbers
 28    whose SLTEs are displayed.
 29 SEGNAME
 30    name of a segment whose SLTE is to be displayed.  If two names
 31    are given, their respective segment numbers identify start/end of a
 32    range of segments whose SLTEs are displayed.
 33 
 34 
 35 Control arguments:
 36 -header, -he
 37    displays a header before the first SLTE item describing segment
 38    range for supervisor segments and initializing segments.
 39    (default if no arguments or control_args are given)
 40 -no_header, -nhe
 41    omits the header.  (default if any arguments or control_args are
 42    given.
 43 
 44 -all_names
 45    display all names associated with selected SLTE items. (default)
 46 -primary, -pri
 47    display only the first name associated with each SLTE item.
 48 
 49 
 50 -attribute ATTRIBUTEs,
 51 -attr ATTRIBUTEs
 52    displays SLTE items having one or more of the given ATTRIBUTE
 53    keywords.  All arguments following -attributes are treated as
 54    ATTRIBUTE names.  See the "List of attributes" section for
 55    acceptable attribute names.
 56 
 57 
 58 List of attributes:
 59    operands of the -attribute control_arg may be one or more of the
 60    ATTRIBUTE keywords below.  Use ^ATTRIBUTE to select items that
 61    do not have the given ATTRIBUTE keyword.    Operands of -attributes
 62    are ANDed to select only SLTEs having ALL of the given attributes.
 63 privileged, priv
 64    displays items granted access to execute privileged instructions.
 65 encacheable, cache
 66    displays items whose data may be read via the hardware cache.
 67 breakpointable, break
 68    displays items ending with a probe breakpoint_page.  The BCE probe
 69    command can set breakpoints in such segments.
 70 wired
 71    displays items which are wired into real memory frames.
 72 
 73 
 74 ^paged
 75    displays items which are unpaged: segments defined without using an
 76    ASTE/PageTable combination to define segment contents.  ^paged is
 77    displayed for such items.  Despite this attribute name, some of
 78    these segments do have a page table in the unpaged_page_tables
 79    segment.  Since most items do have ASTE entries, the paged
 80    attribute is displayed only if the user is selecting items that are
 81    paged.
 82 firmware
 83    displays items designated to contain firmware data files.
 84 gate
 85    displays items with ring brackets designating them as gates leading
 86    to inner-ring services.
 87 
 88 
 89 abs_seg, abs
 90    display items which have no content of their own, but are used by
 91    supervisor code to overlay contents of other segments.
 92 init_seg, init
 93    display items used only during system initialization.    Such items
 94    are not displayable after Multics is fully bootloaded.
 95 temp_seg, temp
 96    display items used as temporary segments.
 97 per_process, proc
 98    display items which appear in every process but have contents that
 99    differs for each process.
100 branch
101    display items instantiated as segments in the >system_library_1
102    (>sl1) directory.
103 
104 
105 Notes on the output:
106 Line 1   primary name by which the segment is known;
107          segment number assigned by the SLTE;
108          ring brackets assigned by the SLTE;
109          access mode bits (read, execute, write) for Initializer;
110          other attributes:
111            privileged  encacheable  gate  wired  ^paged
112 
113 Line 2   next name on segment (unless -primary given);
114          initialization type attributes:
115            init_seg  temp_seg  per_process  firmware  breakpointable
116          (line present only if any of the type attributes are set)
117 
118 
119 Line 3   next name on segment (unless -primary given);
120          segment length:
121            wired words or count of pages;
122            max length if any value > 1 is specified in the SLTE;  or
123          abs_seg: a utility segment used to temporarily overlay
124            contiguous memory pages having no fixed length.
125 
126 Line 4   next name on segment (unless -primary given);
127          pathname of segment
128          (line present only if seg has a branch in file system)
129 
130 Line N   other names on segment (if any) unless -primary was given.
131 
132 
133 Notes on the changing contents of the slte database:
134 During bootload operations, data is loaded from collections of the
135 Multics System Tape (MST), and the in-memory database of the
136 Segment Loading Table (SLT) grows and shrinks as new segments are
137 added and/or initialization-related segments are no longer needed and
138 are discarded.  For example:
139 
140    - While collection 1 is running, the int_unpaged_page_tables
141      segment contains page tables for initialization-related segments
142      at/above segno 400 in the Initialization.SysDaemon.z (proc 0)
143      address space.
144 
145 
146    - Once collection 1 running ends, these initialization segments
147      have been deleted, along with int_unpaged_page_tables and the
148      slte entries above segno 225.  The int_unpaged_page_tables
149      segment no longer exists.
150 
151 
152 The slte request provides only information known in the SLTE database
153 when the selected dump was taken.
154 
155 When the system is fully booted and running after the entire Multics
156 System Tape has been loaded, no initialization-related segments remain
157 in Multics memory, or in the SLTE database.
158 
159 
160 Examples:
161 The slte request may give starting and ending names for a range of
162 segments to be displayed.
163 
164  azm:  slte dseg ws_linkage
165 
166  dseg                                0  (0, 0, 0) read write wired
167                                                   per_process
168                                                   wired length: 1 pages; max length: 8 pages;
169 
170  bos_toehold                         1  (0, 0, 0) read write wired ^paged
171                                                   wired length: 1 pages;
172 
173 
174  config_deck                         2  (0, 5, 5) read write
175                                                   abs_seg -- no storage allocated.
176                                                   path: >system_library_1>config_deck
177 
178  dn355_mailbox                       3  (0, 0, 0) read write wired ^paged
179                                                   wired length: 1536 words;
180 
181  fault_vector                        4  (0, 0, 0) read write wired ^paged
182                                                   wired length: 384 words;
183 
184  flagbox                             5  (0, 0, 0) read write wired ^paged
185                                                   wired length: 1 pages;
186 
187 
188  name_table                          6  (0, 5, 5) read write
189                                                   total length: 6 pages; max length: 12 pages;
190                                                   path: >system_library_1>name_table
191 
192  slt                                 7  (0, 5, 5) read write
193                                                   total length: 2 pages;
194                                                   path: >system_library_1>slt
195 
196  toehold_data                       10  (0, 0, 0) read write wired ^paged
197                                                   wired length: 2 pages;
198 
199  iom_mailbox                        11  (0, 0, 0) read write wired ^paged
200                                                   wired length: 1152 words;
201 
202 
203  unpaged_page_tables                12  (0, 0, 0) read write wired ^paged
204                                                   wired length: 1 pages;
205 
206  toehold                            13  (0, 0, 0) read write wired ^paged
207                                                   wired length: 2 pages;
208 
209  breakpoint_page                    14  (0, 0, 0) read write wired ^paged
210                                                   wired length: 1 pages;
211 
212  lot                                15  (0, 0, 0) read write wired ^paged
213                                                   wired length: 1 pages;
214 
215 
216  as_linkage                         16  (0, 0, 0) read execute write
217       active_sup_linkage                          breakpointable
218                                                   total length: 3 pages; max length: 17 pages;
219 
220  ws_linkage                         17  (0, 0, 0) read execute write wired ^paged
221       wired_sup_linkage                           breakpointable
222                                                   wired length: 4 pages;
223 
224 
225 If a single segment name or octal segment number is given, only that
226 SLTE is displayed.
227 
228  azm:  slte 113
229 
230  bound_date_time_                  113  (0, 5, 5) read execute encacheable
231       convert_date_to_binary_                     breakpointable
232       time_defaults_                              total length: 30 pages;
233       time_data_                                  path: >system_library_1>bound_date_time_
234       time_info_                       date_time_                       decimal_date_time_               request_id_
235       encode_clock_value_              decode_clock_value_              cv_fstime_                       date_name_
236       set_system_time_zone_
237 
238 
239 If no arguments are given or -header is given, information from the
240 SLT header is displayed followed by all entries in the Segment Loading
241 Table.  This header gives first and last segment numbers assigned for
242 segments in the Multics supervisor.
243 
244 In a dump taken early in the bootload process (aka, an "early dump"),
245 segments used only while booting may be given higher segment numbers
246 and moved to higher memory locations.  Such segment numbers are shown
247 in the header as Initializing Segments.  Each segment in this range
248 has the "init seg" attribute.
249 
250  azm:  slte
251 
252 
253                           Supervisor Segments      Initializing Segments
254                             First:    0              First:  400
255                              Last:  115               Last:  465
256 
257  dseg                                0  (0, 0, 0) read write wired
258                                                   per_process
259                                                   wired length: 1 pages; total length: 8 pages;
260 
261  bos_toehold                         1  (0, 0, 0) read write wired ^paged
262                                                   wired length: 1 pages;
263 
264  config_deck                         2  (0, 5, 5) read write
265                                                   abs_seg -- no storage allocated.
266                                                   path: >system_library_1>config_deck
267  ...
268 
269 
270  bound_qedx_                       115  (0, 5, 5) read execute encacheable
271       search_file_                                breakpointable
272       qedx_                                       total length: 15 pages;
273       check_entryname_                            path: >system_library_1>bound_qedx_
274       qedx                             qx
275 
276  bound_bootload_0                  400  (0, 0, 0) read execute write privileged
277                                                   init_seg
278                                                   abs_seg -- no storage allocated.
279 
280  physical_record_buffer            401  (0, 0, 0) read write
281                                                   init_seg
282                                                   total length: 3 pages;
283 
284 
285  abs_seg0                          402  (0, 0, 0) read execute write privileged ^paged
286                                                   init_seg
287                                                   abs_seg -- no storage allocated.
288 
289 
290 :hcom:
291 /****^  HISTORY COMMENTS:
292   1) change(2022-07-11,GDixon), approve(2023-01-16,MCR10129),
293      audit(2023-02-28,Swenson), install(2023-02-28,MR12.8-1054):
294       A) Initial version of this info segment.
295       B) Add display of breakpointable attribute in Line 2 of output.
296       C) Add selection by -attributes control argument, with return
297          of matching SEGNOs when invoked as active request.
298   2) change(2023-03-31,GDixon), approve(2023-03-31,MCR10129a),
299      audit(2023-04-29,Swenson), install(2023-04-29,MR12.8-1055):
300       A) Clarified how multiple ATTRIBUTE names are handled by the slte
301          request.
302       B) Reference the new hardcore_segs.gi.info segment.
303                                                    END HISTORY COMMENTS */