-
Notifications
You must be signed in to change notification settings - Fork 0
/
init_vol_header_.list
630 lines (604 loc) · 37.3 KB
/
init_vol_header_.list
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
COMPILATION LISTING OF SEGMENT init_vol_header_
Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989
Compiled at: Bull HN, Phoenix AZ, System-M
Compiled on: 11/11/89 1005.1 mst Sat
Options: optimize map
1 /****^ ***********************************************************
2* * *
3* * Copyright, (C) Honeywell Bull Inc., 1987 *
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
13
14
15 /****^ HISTORY COMMENTS:
16* 1) change(86-01-16,Fawcett), approve(86-04-11,MCR7383),
17* audit(86-05-13,LJAdams), install(86-07-17,MR12.0-1097):
18* Add support for subvolumes, and 512_WORD_IO, 3380 and 3390.
19* END HISTORY COMMENTS */
20
21
22 init_vol_header_: procedure (a_pvtx, a_dev_type, a_pagep, a_write_routine, a_errpart, a_nvtoces, a_baseadd, a_numpag, a_code);
23
24 /* Routine to initialize VTOC, Vol Map, and rest of header, given a label.
25* Commoned from init_empty_root and init_disk_pack_, 06/25/76, Bernard Greenberg.
26* General map generator `a la fsout_vol added at this time too.
27* Modified March 1982 by J. Bongiovanni for VTOC Map
28*
29**/
30
31 dcl (pvtx, a_pvtx) fixed bin;
32 dcl (pagep, a_pagep) ptr;
33 dcl (dev_type, a_dev_type) fixed bin;
34 dcl (n_vtoces, a_nvtoces) fixed bin;
35 dcl (baseadd, a_baseadd) fixed bin;
36 dcl (num_pages, a_numpag) fixed bin;
37 dcl a_errpart char (*), thing char (20);
38 dcl null builtin;
39
40 dcl (code, a_code) fixed bin (35);
41
42 dcl (a_write_routine, write_disk) entry (fixed bin, fixed bin, ptr, fixed bin (35)) variable;
43
44 dcl tablen fixed bin;
45 dcl Srel fixed bin;
46 dcl (i, j) fixed bin;
47
48 dcl page bit (36*1024) based (pagep);
49
50 dcl (vtoc_end, current, vtoc_size, last, recno, map_addr) fixed bin;
51
52
53 dcl ALL_FREE bit (36) static options (constant) init ("011111111111111111111111111111111000"b);
54
55
56 dcl (addr, addrel, divide, fixed, mod, rel, substr) builtin;
57
58
59
60
61 write_disk = a_write_routine;
62 pvtx = a_pvtx;
63 dev_type = a_dev_type;
64 pagep = a_pagep;
65 labelp = pagep;
66 n_vtoces = a_nvtoces;
67 baseadd = a_baseadd;
68 num_pages = a_numpag;
69
70 if n_vtoces > MAX_VTOCE_PER_PACK then do;
71 a_code = 99;
72 a_errpart = "vtoc too big";
73 return;
74 end;
75
76
77 /* Write the label to the disk */
78
79 label.volmap_version = 1;
80 thing = "label";
81 call write_disk (pvtx, LABEL_ADDR, labelp, code);
82 if code ^= 0 then go to ERR;
83
84 /* Initialize the volume map */
85
86 page = "0"b;
87 labelp = null;
88 vol_mapp = pagep; /* New Pointer */
89 vol_map.base_add = baseadd;
90 vol_map.n_rec = num_pages;
91 vol_map.n_free_rec = num_pages;
92 tablen = divide (num_pages + 31, 32, 17, 0);
93 vol_map.bit_map_n_words = tablen;
94 Srel = fixed (rel (addr (vol_map.bit_map)), 18) - fixed (rel (vol_mapp), 18);
95
96 map_addr = VOLMAP_ADDR;
97
98 do i = 1 to tablen;
99 if mod (i, 1024) = 1025 - Srel then do;
100 call write_disk (pvtx, map_addr, pagep, code);
101 if code ^= 0 then go to ERR;
102 map_addr = map_addr + 1;
103 vol_mapp = addrel (vol_mapp, -1024);
104 page = "0"b;
105 end;
106 vol_map.bit_map (i) = ALL_FREE;
107 end;
108
109 j = mod (num_pages, 32);
110 if j ^= 0 then substr (vol_map.bit_map (tablen), j + 2) = "0"b; /* Truncate the tail */
111
112 do map_addr = map_addr to DUMPER_BIT_MAP_ADDR - 1 by 1; /* Clear out last buf, zeros to rest. */
113 call write_disk (pvtx, map_addr, pagep, code);
114 if code ^= 0 then go to ERR;
115 page = "0"b;
116 end;
117
118 vol_mapp = null;
119
120 /* Initialize the VTOC header (for compatibility with pre-MR10) */
121
122 page = "0"b;
123 vtoc_headerp = pagep;
124
125 vtoc_size = VTOC_ORIGIN + divide (n_vtoces + VTOCES_PER_RECORD (dev_type) - 1, VTOCES_PER_RECORD (dev_type), 17, 0);
126 vtoc_end = vtoc_size - 1;
127
128 vtoc_header.version = 1;
129 vtoc_header.n_vtoce = n_vtoces;
130 vtoc_header.vtoc_last_recno = vtoc_end;
131 vtoc_header.n_free_vtoce = n_vtoces;
132 vtoc_header.first_free_vtocx = 0;
133
134 thing = "vtoc hdr";
135 call write_disk (pvtx, DUMPER_BIT_MAP_ADDR, pagep, code);
136 if code ^= 0 then goto ERR;
137
138 page = "0"b;
139 do recno = DUMPER_BIT_MAP_ADDR + 1 to VTOC_ORIGIN -1;
140 call write_disk (pvtx, recno, pagep, code);
141 if code ^= 0 then go to ERR;
142 end;
143
144 /* Initialize the VTOC Map */
145
146 page = ""b;
147 vtoc_mapp = pagep;
148 vtoc_map.n_vtoce = n_vtoces;
149 vtoc_map.n_free_vtoce = n_vtoces;
150 vtoc_map.vtoc_last_recno = vtoc_end;
151 vtoc_map.bit_map_n_words = divide (n_vtoces + 31, 32, 17);
152
153 do i = 0 to vtoc_map.bit_map_n_words - 1;
154 vtoc_map.bit_map (i) = ALL_FREE;
155 end;
156 j = mod (n_vtoces, 32);
157 if j ^= 0 then substr (vtoc_map.bit_map (vtoc_map.bit_map_n_words - 1), j + 2) = ""b;
158
159 thing = "vtoc map";
160 call write_disk (pvtx, VTOC_MAP_ADDR, vtoc_mapp, code);
161 if code ^= 0 then goto ERR;
162
163
164 /* Initialize the VTOC array from record 8 to the last record assigned to the VTOC. */
165 /* The VTOCE's are all zero. */
166
167 thing = "vtoc";
168 current = 0;
169 last = n_vtoces - 1;
170 page = ""b;
171
172 do recno = VTOC_ORIGIN to vtoc_end;
173 call write_disk (pvtx, recno, pagep, code);
174 if code ^= 0 then goto ERR;
175 end;
176
177
178 a_code = 0;
179 return;
180
181 ERR: a_errpart = thing;
182 a_code = code;
183 return;
184
185
186 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */
1 2
1 3
1 4
1 5
1 6 /****^ HISTORY COMMENTS:
1 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383),
1 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098):
1 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and
1 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin
1 11* constants indexed by device type as defined in fs_dev_types.incl.pl1.
1 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO.
1 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533),
1 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193):
1 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants.
1 16* END HISTORY COMMENTS */
1 17
1 18
1 19 /*
1 20* All disk packs have the standard layout described below:
1 21*
1 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1.
1 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1
1 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1
1 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1
1 26* Record 7 : formerly contained bad track list; no longer used.
1 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label)
1 28* each record contains 5 192-word vtoc entries. The last 64 words are unused.
1 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label)
1 30*
1 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning
1 32* of the particular partition.
1 33*
1 34*
1 35*
1 36* A conceptual declaration for a disk pack could be:
1 37*
1 38* dcl 1 disk_pack,
1 39* 2 label_record (0 : 0) bit(36 * 1024),
1 40* 2 volume_map_record (1 : 3) bit(36 * 1024),
1 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024),
1 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024),
1 43* 2 spare_record (7 : 7) bit(36 * 1024),
1 44* 2 vtoc_array_records (8 : n-1),
1 45* 3 vtoc_entry ( 5 ) bit(36 * 192),
1 46* 3 unused bit(36 * 64),
1 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024);
1 48*
1 49*
1 50*
1 51*
1 52**/
1 53
1 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */
1 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */
1 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */
1 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */
1 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */
1 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */
1 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */
1 61 fixed bin (17) int static options (constant);
1 62
1 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */
1 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */
1 65 /* or the physical volume table entry (pvte) device type. */
1 66
1 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant);
1 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant);
1 69
1 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init
1 71 (0, 3, 3, 3, 3, 3, 3, 1, 1);
1 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init
1 73 (0, 5, 5, 5, 5, 5, 5, 2, 2);
1 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init
1 75 (0, 16, 16, 16, 16, 16, 16, 2, 2);
1 76
1 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */
186
187 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */
2 2
2 3 /****^ HISTORY COMMENTS:
2 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383),
2 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098):
2 6* Add the subvolume info.
2 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883),
2 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061):
2 9* Added inconsistent_dbm bit used to determine consistency of volume
2 10* dumper bit maps.
2 11* END HISTORY COMMENTS */
2 12
2 13 /* This is the label at fixed location of each physical volume. Length 1 page */
2 14 /* Note: fsout_vol clears pad fields before writing the label */
2 15
2 16 dcl labelp ptr;
2 17
2 18 dcl 1 label based (labelp) aligned,
2 19
2 20 /* First comes data not used by Multics.. for compatibility with GCOS */
2 21
2 22 2 gcos (5*64) fixed bin,
2 23
2 24 /* Now we have the Multics label */
2 25
2 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */
2 27 2 version fixed bin, /* Version 1 */
2 28 2 mfg_serial char (32), /* Manufacturer's serial number */
2 29 2 pv_name char (32), /* Physical volume name. */
2 30 2 lv_name char (32), /* Name of logical volume for pack */
2 31 2 pvid bit (36), /* Unique ID of this pack */
2 32 2 lvid bit (36), /* unique ID of its logical vol */
2 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */
2 34 2 time_registered fixed bin (71), /* time imported to system */
2 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */
2 36 2 vol_size fixed bin, /* total size of volume, in records */
2 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */
2 38 2 not_used bit (1) unal, /* used to be multiple_class */
2 39 2 private bit (1) unal, /* TRUE if was registered as private */
2 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */
2 41 2 flagpad bit (33) unal,
2 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */
2 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */
2 44 2 password bit (72), /* not yet used */
2 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */
2 46 2 this_sv fixed bin, /* what subvolume number it is */
2 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */
2 48 2 pad1 (13) fixed bin,
2 49 2 time_mounted fixed bin (71), /* time mounted */
2 50 2 time_map_updated fixed bin (71), /* time vmap known good */
2 51
2 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This
2 53* forces a salvage if an MR10 pack is mounted on an earlier system.
2 54* */
2 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */
2 56 2 pad6 fixed bin,
2 57
2 58 2 time_salvaged fixed bin (71), /* time salvaged */
2 59 2 time_of_boot fixed bin (71), /* time of last bootload */
2 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */
2 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */
2 62 2 pad1a (2) fixed bin,
2 63 2 err_hist_size fixed bin, /* size of pack error history */
2 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */
2 65 2 time_last_reloaded fixed bin (71), /* what it says */
2 66 2 pad2 (40) fixed bin,
2 67 2 root,
2 68 3 here bit (1), /* TRUE if the root is on this pack */
2 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */
2 70 3 shutdown_state fixed bin, /* Status of hierarchy */
2 71 3 pad7 bit (1) aligned,
2 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */
2 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */
2 74 3 esd_state fixed bin, /* State of esd */
2 75 2 volmap_record fixed bin, /* Begin record of volume map */
2 76 2 size_of_volmap fixed bin, /* Number of records in volume map */
2 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */
2 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */
2 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */
2 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */
2 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */
2 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */
2 83 2 pad3 (52) fixed bin,
2 84 2 nparts fixed bin, /* Number of special partitions on pack */
2 85 2 parts (47),
2 86 3 part char (4), /* Name of partition */
2 87 3 frec fixed bin, /* First record */
2 88 3 nrec fixed bin, /* Number of records */
2 89 3 pad5 fixed bin,
2 90 2 pad4 (5*64) fixed bin;
2 91
2 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static;
2 93
2 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */
187
188 /* BEGIN INCLUDE FILE ... vtoc_header.incl.pl1 */
3 2
3 3 dcl vtoc_headerp ptr;
3 4
3 5 dcl 1 vtoc_header based (vtoc_headerp) aligned,
3 6
3 7 2 version fixed bin (17), /* version number. The current version number is 1. * */
3 8 2 n_vtoce fixed bin (17), /* number of vtoc entries */
3 9 2 vtoc_last_recno fixed bin (17), /* record number of the last record of the vtoc */
3 10 2 n_free_vtoce fixed bin (17), /* number of free vtoc entries */
3 11 2 first_free_vtocx fixed bin (17), /* index of the first vtoce in the free list */
3 12 2 pad (3) bit (36),
3 13 2 dmpr_bit_map (2048 - 8) bit (36); /* space for dmpr bit map */
3 14
3 15 /* END INCLUDE ... vtoc_header */
3 16
188
189 /* BEGIN INCLUDE FILE ... vol_map.incl.pl1 */
4 2
4 3 dcl vol_mapp ptr;
4 4
4 5 dcl 1 vol_map based (vol_mapp) aligned,
4 6
4 7 2 n_rec fixed bin(17), /* number of records represented in the map */
4 8 2 base_add fixed bin(17), /* record number for first bit in bit map */
4 9 2 n_free_rec fixed bin(17), /* number of free records */
4 10 2 bit_map_n_words fixed bin(17), /* number of words of the bit map */
4 11 2 pad (60) bit(36), /* pad to 64 words */
4 12 2 bit_map (3*1024 - 64) bit(36) ; /* bit map - the entire vol map occupies 3 records */
4 13
4 14 /* END INCLUDE ... vol_map */
189
190 /* START OF: vtoc_map.incl.pl1 ... March 1982 ... * * * * * * * * * * * * * * * * */
5 2
5 3 dcl vtoc_mapp ptr;
5 4 dcl bit_map_wordp ptr;
5 5
5 6 dcl 1 vtoc_map aligned based (vtoc_mapp),
5 7 2 n_vtoce fixed bin, /* Number of VTOCEs on the device */
5 8 2 n_free_vtoce fixed bin, /* Number of free VTOCEs */
5 9 2 bit_map_n_words fixed bin, /* Number of words in the bit map below */
5 10 2 vtoc_last_recno fixed bin, /* Last record number in VTOC */
5 11 2 pad (4) fixed bin,
5 12 2 bit_map (0:1024 - 9) bit (36); /* This structure consumes exactly 1 page */
5 13
5 14 dcl 1 bit_map_word aligned based (bit_map_wordp),
5 15 2 pad1 bit (1) unal,
5 16 2 bits bit (32) unal, /* 32 VTOCES ON => free */
5 17 2 pad2 bit (3) unal;
5 18
5 19
5 20
5 21 /* END OF: vtoc_map.incl.pl1 * * * * * * * * * * * * * * * * */
190
191 end;
SOURCE FILES USED IN THIS COMPILATION.
LINE NUMBER DATE MODIFIED NAME PATHNAME
0 11/11/89 0804.1 init_vol_header_.pl1 >spec>install>1110>init_vol_header_.pl1
186 1 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1
187 2 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1
188 3 05/23/77 0919.3 vtoc_header.incl.pl1 >ldd>include>vtoc_header.incl.pl1
189 4 04/29/76 1050.5 vol_map.incl.pl1 >ldd>include>vol_map.incl.pl1
190 5 05/27/82 1525.9 vtoc_map.incl.pl1 >ldd>include>vtoc_map.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.
ALL_FREE 000011 constant bit(36) initial packed unaligned dcl 53 ref 106 154
DUMPER_BIT_MAP_ADDR 000013 constant fixed bin(17,0) initial dcl 1-54 set ref 112 135* 139
LABEL_ADDR 000012 constant fixed bin(17,0) initial dcl 1-54 set ref 81*
MAX_VTOCE_PER_PACK constant fixed bin(17,0) initial dcl 1-54 ref 70
Srel 000123 automatic fixed bin(17,0) dcl 45 set ref 94* 99
VOLMAP_ADDR constant fixed bin(17,0) initial dcl 1-54 ref 96
VTOCES_PER_RECORD 000000 constant fixed bin(17,0) initial array dcl 1-72 ref 125 125
VTOC_MAP_ADDR 000017 constant fixed bin(17,0) initial dcl 1-54 set ref 160*
VTOC_ORIGIN constant fixed bin(17,0) initial dcl 1-54 ref 125 139 172
a_baseadd parameter fixed bin(17,0) dcl 35 ref 22 67
a_code parameter fixed bin(35,0) dcl 40 set ref 22 71* 178* 182*
a_dev_type parameter fixed bin(17,0) dcl 33 ref 22 63
a_errpart parameter char packed unaligned dcl 37 set ref 22 72* 181*
a_numpag parameter fixed bin(17,0) dcl 36 ref 22 68
a_nvtoces parameter fixed bin(17,0) dcl 34 ref 22 66
a_pagep parameter pointer dcl 32 ref 22 64
a_pvtx parameter fixed bin(17,0) dcl 31 ref 22 62
a_write_routine parameter entry variable dcl 42 ref 22 61
addr builtin function dcl 56 ref 94
addrel builtin function dcl 56 ref 103
base_add 1 based fixed bin(17,0) level 2 dcl 4-5 set ref 89*
baseadd 000106 automatic fixed bin(17,0) dcl 35 set ref 67* 89
bit_map 10 based bit(36) array level 2 in structure "vtoc_map" dcl 5-6
in procedure "init_vol_header_" set ref 154* 157*
bit_map 100 based bit(36) array level 2 in structure "vol_map" dcl 4-5
in procedure "init_vol_header_" set ref 94 106*
110*
bit_map_n_words 3 based fixed bin(17,0) level 2 in structure "vol_map" dcl 4-5 in procedure
"init_vol_header_" set ref 93*
bit_map_n_words 2 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure
"init_vol_header_" set ref 151* 153 157
code 000115 automatic fixed bin(35,0) dcl 40 set ref 81* 82 100* 101 113* 114 135* 136
140* 141 160* 161 173* 174 182
current 000127 automatic fixed bin(17,0) dcl 50 set ref 168*
dev_type 000104 automatic fixed bin(17,0) dcl 33 set ref 63* 125 125
divide builtin function dcl 56 ref 92 125 151
first_free_vtocx 4 based fixed bin(17,0) level 2 dcl 3-5 set ref 132*
fixed builtin function dcl 56 ref 94 94
i 000124 automatic fixed bin(17,0) dcl 46 set ref 98* 99 106* 153* 154*
j 000125 automatic fixed bin(17,0) dcl 46 set ref 109* 110 110 156* 157 157
label based structure level 1 dcl 2-18
labelp 000134 automatic pointer dcl 2-16 set ref 65* 79 81* 87*
last 000131 automatic fixed bin(17,0) dcl 50 set ref 169*
map_addr 000133 automatic fixed bin(17,0) dcl 50 set ref 96* 100* 102* 102 112* 112* 113*
mod builtin function dcl 56 ref 99 109 156
n_free_rec 2 based fixed bin(17,0) level 2 dcl 4-5 set ref 91*
n_free_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure
"init_vol_header_" set ref 149*
n_free_vtoce 3 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5
in procedure "init_vol_header_" set ref 131*
n_rec based fixed bin(17,0) level 2 dcl 4-5 set ref 90*
n_vtoce based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure
"init_vol_header_" set ref 148*
n_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5
in procedure "init_vol_header_" set ref 129*
n_vtoces 000105 automatic fixed bin(17,0) dcl 34 set ref 66* 70 125 129 131 148 149 151 156
169
null builtin function dcl 38 ref 87 118
num_pages 000107 automatic fixed bin(17,0) dcl 36 set ref 68* 90 91 92 109
page based bit(36864) packed unaligned dcl 48 set ref 86* 104* 115* 122*
138* 146* 170*
pagep 000102 automatic pointer dcl 32 set ref 64* 65 86 88 100* 104 113* 115 122
123 135* 138 140* 146 147 170 173*
pvtx 000100 automatic fixed bin(17,0) dcl 31 set ref 62* 81* 100* 113* 135* 140* 160* 173*
recno 000132 automatic fixed bin(17,0) dcl 50 set ref 139* 140* 172* 173*
rel builtin function dcl 56 ref 94 94
substr builtin function dcl 56 set ref 110* 157*
tablen 000122 automatic fixed bin(17,0) dcl 44 set ref 92* 93 98 110
thing 000110 automatic char(20) packed unaligned dcl 37 set ref 80* 134* 159* 167*
181
version based fixed bin(17,0) level 2 dcl 3-5 set ref 128*
vol_map based structure level 1 dcl 4-5
vol_mapp 000140 automatic pointer dcl 4-3 set ref 88* 89 90 91 93 94 94 103* 103 106
110 118*
volmap_version 604 based fixed bin(17,0) level 2 dcl 2-18 set ref 79*
vtoc_end 000126 automatic fixed bin(17,0) dcl 50 set ref 126* 130 150 172
vtoc_header based structure level 1 dcl 3-5
vtoc_headerp 000136 automatic pointer dcl 3-3 set ref 123* 128 129 130 131 132
vtoc_last_recno 3 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 5-6 in procedure
"init_vol_header_" set ref 150*
vtoc_last_recno 2 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 3-5
in procedure "init_vol_header_" set ref 130*
vtoc_map based structure level 1 dcl 5-6
vtoc_mapp 000142 automatic pointer dcl 5-3 set ref 147* 148 149 150 151 153 154 157 157
160*
vtoc_size 000130 automatic fixed bin(17,0) dcl 50 set ref 125* 126
write_disk 000116 automatic entry variable dcl 42 set ref 61* 81 100 113 135 140 160 173
NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED.
DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 1-54
Multics_ID_String internal static char(32) initial packed unaligned dcl 2-92
PAGE_SIZE internal static fixed bin(17,0) initial dcl 1-67
SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-74
SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 1-70
VTOCE_SIZE internal static fixed bin(17,0) initial dcl 1-68
bit_map_word based structure level 1 dcl 5-14
bit_map_wordp automatic pointer dcl 5-4
NAMES DECLARED BY EXPLICIT CONTEXT.
ERR 000604 constant label dcl 181 ref 82 101 114 136 141 161 174
init_vol_header_ 000044 constant entry external dcl 22
THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION.
STORAGE REQUIREMENTS FOR THIS PROGRAM.
Object Text Link Symbol Defs Static
Start 0 0 644 654 616 654
Length 1116 616 10 225 26 0
BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME
init_vol_header_ 122 external procedure is an external procedure.
STORAGE FOR AUTOMATIC VARIABLES.
STACK FRAME LOC IDENTIFIER BLOCK NAME
init_vol_header_ 000100 pvtx init_vol_header_
000102 pagep init_vol_header_
000104 dev_type init_vol_header_
000105 n_vtoces init_vol_header_
000106 baseadd init_vol_header_
000107 num_pages init_vol_header_
000110 thing init_vol_header_
000115 code init_vol_header_
000116 write_disk init_vol_header_
000122 tablen init_vol_header_
000123 Srel init_vol_header_
000124 i init_vol_header_
000125 j init_vol_header_
000126 vtoc_end init_vol_header_
000127 current init_vol_header_
000130 vtoc_size init_vol_header_
000131 last init_vol_header_
000132 recno init_vol_header_
000133 map_addr init_vol_header_
000134 labelp init_vol_header_
000136 vtoc_headerp init_vol_header_
000140 vol_mapp init_vol_header_
000142 vtoc_mapp init_vol_header_
THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM.
call_ent_var return_mac mdfx1 ext_entry_desc
NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM.
NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM.
LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC
22 000035 61 000057 62 000065 63 000067 64 000071 65 000074 66 000075
67 000077 68 000101 70 000103 71 000106 72 000110 73 000115 79 000116
80 000121 81 000124 82 000140 86 000142 87 000147 88 000151 89 000152
90 000155 91 000157 92 000160 93 000163 94 000164 96 000174 98 000176
99 000206 100 000216 101 000232 102 000234 103 000235 104 000240 106 000245
107 000251 109 000253 110 000257 112 000274 113 000303 114 000317 115 000321
116 000326 118 000330 122 000332 123 000337 125 000340 126 000347 128 000351
129 000353 130 000356 131 000360 132 000362 134 000363 135 000366 136 000402
138 000404 139 000411 140 000421 141 000435 142 000437 146 000441 147 000446
148 000447 149 000451 150 000453 151 000455 153 000461 154 000467 155 000472
156 000474 157 000500 159 000515 160 000520 161 000534 167 000536 168 000541
169 000542 170 000545 172 000552 173 000561 174 000575 175 000577 178 000601
179 000603 181 000604 182 000612 183 000613
-----------------------------------------------------------
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