1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 dcl ocu_datap ptr;
34 dcl ocu_data_version_1 char (8) static options (constant)
35 init ("ocu_ 1.0");
36
37 dcl 01 ocu_data aligned based (ocu_datap),
38 02 version char (8),
39 02 flags aligned,
40 03 bound bit (1) unaligned,
41 03 relocatable bit (1) unaligned,
42 03 procedure bit (1) unaligned,
43 03 separate_static bit (1) unaligned,
44 03 perprocess_static bit (1) unaligned,
45 03 no_hash_table bit (1) unaligned,
46 03 mbz bit (30) unaligned,
47 02 target aligned,
48 03 dir char (168) unaligned,
49 03 entry char (32) unaligned,
50 03 segp ptr,
51 03 bc fixed bin (24),
52 03 acinfop ptr,
53 02 msf_info aligned,
54 03 component_count fixed bin,
55 03 my_component fixed bin,
56 02 lengths aligned,
57 03 text fixed bin (18) unsigned,
58 03 defs fixed bin (18) unsigned,
59 03 link fixed bin (18) unsigned,
60 03 stat fixed bin (18) unsigned,
61 03 symb fixed bin (18) unsigned,
62 02 text_infop ptr,
63 02 text_relinfop ptr,
64 02 def_infop ptr,
65 02 string_map_infop ptr,
66 02 string_segp ptr,
67 02 exp_word_infop ptr,
68 02 type_pair_infop ptr,
69 02 trap_pair_infop ptr,
70 02 init_infop ptr,
71 02 init_segp ptr,
72 02 static_infop ptr,
73 02 link_infop ptr,
74 02 firstref_trap_infop ptr,
75 02 symbol_infop ptr,
76 02 symbol_relinfop ptr;
77
78
79
80
81
82
83
84
85
86
87
88
89 dcl 01 ocu_data_ptrs aligned based (ocu_datap),
90 02 version char (8),
91 02 flags aligned,
92 03 bound bit (1) unaligned,
93 03 relocatable bit (1) unaligned,
94 03 procedure bit (1) unaligned,
95 03 separate_static bit (1) unaligned,
96 03 perprocess_static bit (1) unaligned,
97 03 no_hash_table bit (1) unaligned,
98 03 mbz bit (30) unaligned,
99 02 target aligned,
100 03 dir char (168) unaligned,
101 03 entry char (32) unaligned,
102 03 segp ptr,
103 03 bc fixed bin (24),
104 03 acinfop ptr,
105 02 msf_map aligned,
106 03 component_count fixed bin,
107 03 my_component fixed bin,
108 02 lengths aligned,
109 03 text fixed bin (18) unsigned,
110 03 defs fixed bin (18) unsigned,
111 03 link fixed bin (18) unsigned,
112 03 stat fixed bin (18) unsigned,
113 03 symb fixed bin (18) unsigned,
114 02 temp_segs (15) ptr;
115
116
117
118
119
120
121
122
123
124 dcl 01 text_info aligned based,
125 02 header aligned,
126 03 N_text_words fixed bin,
127 03 text_relinfol fixed bin (21),
128 02 text_word (0 refer (text_info.N_text_words))
129 bit (36);
130
131
132
133
134
135
136
137
138
139
140
141
142 dcl relinfo_strl fixed bin (21);
143 dcl relinfo_strp ptr;
144 dcl relinfo_str char (relinfo_strl) based (relinfo_strp);
145
146
147
148
149
150
151
152
153
154
155
156
157 dcl 01 def_info aligned based,
158 02 header aligned,
159 03 N_defs fixed bin,
160 02 def (0 refer (def_info.N_defs)) like def_entry;
161
162 dcl 01 def_entry aligned based,
163 02 strx fixed bin,
164 02 class fixed bin,
165 02 offset fixed bin,
166 02 flags aligned,
167 03 ignore bit (1) unaligned,
168 03 entry bit (1) unaligned,
169 03 retain bit (1) unaligned,
170 03 indirect bit (1) unaligned,
171 03 duplicate bit (1) unaligned,
172 03 mbz bit (13) unaligned,
173 02 dup_tbl_relp fixed bin (18) unsigned unaligned;
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188 dcl 01 string_map_info aligned based,
189 02 header aligned,
190 03 string_segl fixed bin (21),
191 03 N_strings fixed bin,
192 02 string dim (0 refer (string_map_info.N_strings))
193 like string_map_entry;
194
195 dcl 01 string_map_entry aligned based,
196 02 start_offset fixed bin (18) unsigned,
197 02 length fixed bin (18) unsigned,
198 02 relp fixed bin (18) unsigned;
199
200
201
202
203
204
205
206
207
208
209
210
211
212 dcl 01 exp_word_info aligned based,
213 02 header aligned,
214 03 N_exp_words fixed bin,
215 02 exp_wd (0 refer (exp_word_info.N_exp_words))
216 like exp_word_entry;
217
218 dcl 01 exp_word_entry aligned based,
219 02 expression fixed bin (18) unsigned,
220 02 type_pairx fixed bin (18) unsigned,
221 02 relp fixed bin (18) unsigned;
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238 dcl 01 type_pair_info aligned based,
239 02 header aligned,
240 03 N_type_pairs fixed bin,
241 02 type_pr (0 refer (type_pair_info.N_type_pairs))
242 like type_pair_entry;
243
244 dcl 01 type_pair_entry aligned based,
245 02 type fixed bin (18) unsigned,
246 02 init_infox fixed bin (18) unsigned,
247 02 segnamex fixed bin (18) unsigned,
248 02 offsetnamex fixed bin (18) unsigned,
249 02 relp fixed bin (18) unsigned;
250
251
252
253
254
255
256
257
258
259
260
261 dcl 01 trap_pair_info aligned based,
262 02 header aligned,
263 03 N_trap_pairs fixed bin,
264 02 trap_pair (0 refer (trap_pair_info.N_trap_pairs))
265 like trap_pair_entry;
266
267 dcl 01 trap_pair_entry aligned based,
268 02 call_relp fixed bin (18) unsigned,
269 02 info_relp fixed bin (18) unsigned,
270 02 relp fixed bin (18) unsigned;
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286 dcl 01 init_info aligned based,
287 02 header aligned,
288 03 init_segl fixed bin,
289 03 N_inits fixed bin,
290 02 init (0 refer (init_info.N_inits)) like init_entry;
291
292 dcl 01 init_entry aligned based,
293 02 start fixed bin (18) unsigned,
294 02 length fixed bin (18) unsigned,
295 02 relp fixed bin (18) unsigned;
296
297
298
299
300
301
302
303
304
305 dcl text_segl fixed bin (21);
306 dcl text_segp ptr;
307 dcl text_seg char (text_segl) based (text_segp);
308
309
310
311
312
313
314
315
316
317
318 dcl 01 static_info aligned based,
319 02 header aligned,
320 03 N_static_words fixed bin,
321 02 static_word dim (0 refer (static_info.N_static_words))
322 bit (36);
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338 dcl 01 link_info aligned based,
339 02 header aligned,
340 03 N_links fixed bin,
341 02 link (0 refer (link_info.N_links)) like link_entry;
342
343 dcl 01 link_entry aligned based,
344 02 exp_wordx fixed bin (18) unsigned,
345 02 type fixed bin (18) unsigned,
346 02 component fixed bin (18) unsigned,
347 02 offset fixed bin (18) unsigned,
348 02 modifier bit (6);
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364 dcl 01 firstref_trap_info aligned based,
365 02 header aligned,
366 03 N_traps fixed bin,
367 02 trap (0 refer (firstref_trap_info.N_traps))
368 like firstref_trap_entry;
369
370 dcl 01 firstref_trap_entry aligned based,
371 02 call_relp fixed bin (18) unsigned,
372 02 info_relp fixed bin (18) unsigned;
373
374
375
376
377
378
379 Note
380
381
382 note
383
384
385
386
387
388
389 dcl 01 symbol_info aligned based (ocu_data.symbol_infop),
390 02 header aligned,
391 03 N_symbol_words fixed bin,
392 03 symbol_relinfol fixed bin (21),
393 02 symbol_word (0 refer (symbol_info.N_symbol_words))
394 bit (36);
395
396
397
398
399
400
401
402
403
404 dcl 01 relinfo_blocks aligned based,
405 02 header aligned,
406 03 no_relinfo bit (1),
407 03 n_bits fixed bin,
408 03 section dim (1:4),
409 04 start_offset fixed bin,
410 04 n_bits fixed bin,
411 02 relbits bit (0 refer (relinfo_blocks.header.n_bits))
412 aligned;
413
414 dcl Rel_text fixed bin static options (constant) init (1);
415 dcl Rel_defs fixed bin static options (constant) init (2);
416 dcl Rel_link fixed bin static options (constant) init (3);
417 dcl Rel_symb fixed bin static options (constant) init (4);
418
419
420
421
422
423
424
425
426
427
428
429 dcl 01 relinfo aligned based,
430 02 header aligned,
431 03 decl_vers fixed bin,
432 03 n_bits fixed bin,
433 02 relbits bit (0 refer (relinfo.n_bits)) aligned;
434
435
436
437
438
439
440
441
442
443
444 dcl 01 init_list_template aligned based,
445 02 full_header aligned,
446 03 header aligned like link_init,
447 03 pad bit (18) unaligned,
448 03 n_words_in_list fixed bin (18) unsigned unaligned,
449 02 template (0 refer (init_list_template.n_words_in_list))
450 bit (36);
451
452
453
454
455
456
457
458
459
460
461 dcl 01 template_entry aligned based,
462 02 header aligned,
463 03 n_bits fixed bin (35) aligned,
464 03 mbz bit (3) unaligned,
465 03 init_type fixed bin (3) unsigned unaligned,
466 03 repeat fixed bin (30) unsigned unaligned,
467 02 datum bit (0 refer (list_template_entry.n_bits));
468
469
470
471
472
473
474
475
476
477
478
479 dcl 01 msf_symbol_scn aligned based,
480 02 header aligned,
481 03 decl_version fixed bin,
482 03 identifier char (8) aligned,
483 03 gen_number fixed bin,
484 03 gen_created fixed bin (71),
485 03 object_created fixed bin (71),
486 03 generator char (8),
487 03 gen_version unaligned,
488 04 offset fixed bin (18) unsigned,
489 04 size fixed bin (18) unsigned,
490 03 userid unaligned,
491 04 offset fixed bin (18) unsigned,
492 04 size fixed bin (18) unsigned,
493 03 comment unaligned,
494 04 offset fixed bin (18) unsigned,
495 04 size fixed bin (18) unsigned,
496 03 text_boundary fixed bin (18) unsigned unaligned,
497 03 stat_boundary fixed bin (18) unsigned unaligned,
498 03 source_map fixed bin (18) unsigned unaligned,
499 03 area_pointer fixed bin (18) unsigned unaligned,
500 03 backpointer fixed bin (18) unsigned unaligned,
501 03 block_size fixed bin (18) unsigned unaligned,
502 03 next_block fixed bin (18) unsigned unaligned,
503 03 rel_text fixed bin (18) unsigned unaligned,
504 03 rel_def fixed bin (18) unsigned unaligned,
505 03 rel_link fixed bin (18) unsigned unaligned,
506 03 rel_symbol fixed bin (18) unsigned unaligned,
507 03 mini_truncate fixed bin (18) unsigned unaligned,
508 03 maxi_truncate fixed bin (18) unsigned unaligned,
509 02 user aligned char (user_length
510 refer(msf_symbol_scn.header.userid.size)),
511 02 version aligned char (version_length
512 refer(msf_symbol_scn.header.gen_version.size));
513 dcl user_length fixed bin;
514 dcl version_length fixed bin;
515
516
517
518
519
520
521
522
523
524 dcl 01 msf_info aligned based,
525 02 header aligned,
526 03 containing_dir char (168) unaligned,
527 03 gen_info aligned,
528 04 gen_created fixed bin (71),
529 04 generator char (8),
530 04 gen_number fixed bin,
531 04 gen_version char (512) varying,
532 03 N_components fixed bin,
533 02 component dim (0 refer (msf_info.N_components)),
534 03 segp ptr,
535 03 bc fixed bin (24),
536 03 text_relp fixed bin (18) unsigned,
537 03 defn_relp fixed bin (18) unsigned,
538 03 link_relp fixed bin (18) unsigned,
539 03 stat_relp fixed bin (18) unsigned,
540 03 symb_relp fixed bin (18) unsigned;
541
542