-
Notifications
You must be signed in to change notification settings - Fork 0
/
init_empty_root.list
887 lines (861 loc) · 55.6 KB
/
init_empty_root.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
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
COMPILATION LISTING OF SEGMENT init_empty_root
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 0954.3 mst Sat
Options: optimize map
1 /****^ ***********************************************************
2* * *
3* * Copyright, (C) Honeywell Bull Inc., 1987 *
4* * *
5* * Copyright, (C) Honeywell Information Systems Inc., 1984 *
6* * *
7* * Copyright (c) 1972 by Massachusetts Institute of *
8* * Technology and Honeywell Information Systems, Inc. *
9* * *
10* *********************************************************** */
11
12
13
14 /* format: style2 */
15
16 init_empty_root:
17 procedure (Pvtx, Code);
18
19
20
21 dcl Pvtx fixed bin (17); /* Physical Volume Table index */
22 dcl Code fixed bin (35); /* error Code */
23
24
25
26 /* This procedure initializes a disk for which a PVT entry has already been created.
27* It is passed the PVT index and a pointer to an area that has been initialized
28* with the data to be stored in the disk label. This procedure sets up
29* the label, and calls init_vol_header_ to write it out and set up everything else.
30*
31* Modified by B. Greenberg 06/25/76 for init_vol_header_, fixing some bugs as well.
32* Modified by J. Bongiovanni, March 1982, for new PVTE, RVTC card
33* Modified BIM 10/82 for fill_vol_extents_$cold_rpv
34* Modified by Keith Loepere to set the times right even when the clock hasn't been set yet.
35**/
36
37
38 /****^ HISTORY COMMENTS:
39* 1) change(86-01-15,Fawcett), approve(86-04-11,MCR7383),
40* audit(86-06-07,GDixon), install(86-07-17,MR12.0-1097):
41* Add support for subvolumes and change the args to init_vol_header_.
42* END HISTORY COMMENTS */
43
44
45
46 dcl good_clock fixed bin (71); /* Value of clock made reasonable */
47 dcl dev_type fixed bin; /* device type index */
48 dcl num_pages fixed bin; /* Number of records in paging area on this volume */
49 dcl n_vtoce fixed bin; /* number of VTOC entries in VTOC */
50 dcl baseadd fixed bin; /* base address of paging */
51 dcl thing char (20); /* For error message */
52 dcl 1 label_buffer aligned like label;
53
54
55 dcl addr builtin;
56 dcl bit builtin;
57 dcl clock builtin;
58 dcl convert builtin;
59 dcl substr builtin;
60 dcl unspec builtin;
61
62 dcl sys_info$access_class_ceiling
63 bit (72) aligned external;
64 dcl sys_info$first_reasonable_time
65 fixed bin (71) ext static;
66 dcl sys_info$last_reasonable_time
67 fixed bin (71) ext static;
68
69 dcl error_table_$action_not_performed
70 fixed bin (35) ext static;
71
72 dcl cv_fsdisk_error_ entry (fixed bin (35));
73 dcl init_vol_header_ entry (fixed bin, fixed bin, ptr, entry, char (*), fixed bin, fixed bin,
74 fixed bin, fixed bin (35));
75 dcl fill_vol_extents_$cold_rpv
76 entry (ptr, fixed bin, fixed bin, fixed bin, fixed bin, bit (1) aligned,
77 fixed bin);
78
79 dcl write_disk entry (fixed bin, fixed bin, ptr, fixed bin (35));
80 dcl ioa_ entry options (variable);
81 dcl bce_error entry options (variable);
82
83 dcl ME char (32) init ("init_empty_root") int static options (constant);
84
85
86 Code = 0;
87 labelp = addr (label_buffer);
88 unspec (label) = ""b;
89
90 good_clock = clock ();
91 if good_clock < sys_info$first_reasonable_time | good_clock > sys_info$last_reasonable_time
92 then good_clock = sys_info$first_reasonable_time;
93
94 pvtep = addr (addr (pvt$array) -> pvt_array (Pvtx));
95 dev_type = pvte.device_type; /* get the device type index */
96 label.version = 1;
97 label.mfg_serial = "rpv"; /* fake serial no */
98 label.pvid = substr (bit (good_clock, 71), 36, 36);
99 good_clock = good_clock + 10;
100 label.lvid = substr (bit (good_clock, 71), 36, 36);
101 good_clock = good_clock + 10;
102 label.lv_name = "root";
103 label.pv_name = "rpv";
104 label.time_registered = good_clock;
105 label.max_access_class = sys_info$access_class_ceiling;
106 label.min_access_class = ""b;
107 label.Multics = Multics_ID_String;
108 label.root.here = "1"b; /* Root pack. */
109 label.root.disk_table_vtocx = -1;
110 label.root.disk_table_uid = ""b;
111 label.root_vtocx = 0;
112 label.shutdown_state = 0;
113 label.esd_state = 0;
114 if pvte.is_sv
115 then do;
116 label.number_of_sv = pvte.num_of_svs;
117 label.this_sv = pvte.sv_num;
118 label.vol_size = rec_per_sv (dev_type);
119 label.sub_vol_name = valid_sv_array (pvte.sv_num);
120 end;
121 else do;
122 label.vol_size = rec_per_dev (dev_type);
123 label.sub_vol_name = " ";
124 end;
125
126 call fill_vol_extents_$cold_rpv (labelp, -1 /* no lace command */, n_vtoce, baseadd, num_pages, "0"b, dev_type);
127
128 call ioa_ ("^/^a: Begin rpv initialization. This will take some time.", ME);
129 call init_vol_header_ (Pvtx, dev_type, labelp, write_disk, thing, n_vtoce, baseadd, num_pages, Code);
130 call cv_fsdisk_error_ (Code);
131
132 if Code ^= 0 /* let caller deal with this */
133 then do;
134 call bce_error (Code, "^a: Error writing ^a on ^a.", ME, thing,
135 DEVICE_NAME ((pvte.devname), (pvte.logical_area_number), (label.sub_vol_name)));
136 Code = error_table_$action_not_performed;
137 return;
138 end;
139
140 call ioa_ ("^a: rpv initialized; ^d records.", ME, num_pages);
141
142 return;
143
144
145 DEVICE_NAME:
146 procedure (subsys, device, sv_name) returns (char (8));
147 declare subsys char (4);
148 declare sv_name char (1);
149 declare device fixed bin;
150 declare p99 picture "99";
151
152 return (subsys || "_" || convert (p99, device) || sv_name);
153 end DEVICE_NAME;
154
155 /* format: off */
156
1 1 /* 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 */
157
2 1 /* Begin include file ...... fs_dev_types.incl.pl1 */
2 2
2 3 /****^ HISTORY COMMENTS:
2 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979),
2 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033):
2 6* Add support for FIPS
2 7* 3380.
2 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383),
2 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098):
2 10* Add the support for subvolumes for the MSU3380 and MSU3390.
2 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383),
2 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200):
2 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381".
2 14* END HISTORY COMMENTS */
2 15
2 16 /* Modified 5/19/76 by N. I. Morris */
2 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */
2 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */
2 19 /* Modified '82 by BIM for needs_alt_part */
2 20 /* Modified 4/84 by Chris Jones for FIPS disks */
2 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */
2 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the
2 23* volmap and record stock can be expanded. */
2 24
2 25 /*
2 26********************************************************************************
2 27** *
2 28** WARNING: *
2 29** *
2 30** There exists fs_dev_types.incl.alm that must me updated when a new device *
2 31** type is added. *
2 32** *
2 33** There are other include files that contain arrays indexed by the device *
2 34** index obtained by references to MODELX or MODELN in this include file. *
2 35** These must be modified when a new device type is added: *
2 36** disk_pack.incl.pl1 *
2 37** fs_dev_types_sector.incl.pl1 (included in this include) *
2 38** *
2 39********************************************************************************
2 40**/
2 41
2 42
2 43 dcl (maxdevt init (9), /* maximum legal devt */
2 44 bulkdevt init (1), /* bulk store devt */
2 45 msu0500devt init (2), /* MSU0500 device type */
2 46 msu0451devt init (3), /* MSU0451 device type */
2 47 msu0450devt init (3), /* MSU0450 device type */
2 48 msu0400devt init (4), /* MSU0400 device type */
2 49 dsu191devt init (4), /* DSU191 device type */
2 50 dsu190devt init (5), /* DSU190 device type */
2 51 dsu181devt init (6), /* DSU181 device type */
2 52 msu0501devt init (7), /* MSU0501 device type */
2 53 fips3380devt init (8), /* 3380D FIPS device type */
2 54 fips3381devt init (9) /* 3380E FIPS device type */
2 55 ) fixed bin (4) static options (constant);
2 56
2 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */
2 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381);
2 59
2 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */
2 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9);
2 62
2 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */
2 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381);
2 65
2 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */
2 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381");
2 68
2 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */
2 70 (1, 1, 1, 1, 1, 1, 1, 0, 0);
2 71
2 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */
2 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b);
2 74
2 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */
2 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b);
2 77
2 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */
2 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b);
2 80
2 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */
2 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b);
2 83
2 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */
2 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3);
2 86
2 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */
2 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790);
2 89
2 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */
2 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930);
2 92
2 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */
2 94 (0, 0, 0, 0, 0, 0, 0, 2, 3);
2 95
2 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */
2 97 ("abc");
2 98
2 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */
2 100 init ("a","b","c");
2 101
2 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */
2 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770);
2 104
2 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */
2 106 (0, 814, 814, 410, 410, 202, 840, 442, 590);
2 107
2 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */
2 109 (0, 47, 47, 47, 36, 22, 80, 127, 127);
2 110
2 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */
2 112 (0, 19, 19, 19, 19, 20, 20, 15, 15);
2 113
2 114
2 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */
2 116 (0, 0, 0, 0, 0, 0, 0, 0, 0);
2 117
2 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */
2 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789);
2 120
2 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */
2 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929);
2 123
2 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */
2 125 (0, 0, 0, 0, 0, 0, 0, 0, 0);
2 126
2 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */
2 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349);
2 129
2 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */
2 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350);
2 132
2 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */
2 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605);
2 135
2 136 dcl last_physical_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector on device (includes T&D cylinders) */
2 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859);
2 138
2 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */
2 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0);
2 141
3 1 /* Begin fs_dev_types_sector.incl.pl1 */
3 2
3 3
3 4 /****^ HISTORY COMMENTS:
3 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383),
3 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098):
3 7* Add the sector differance for devices that do 64 word IO and devices that
3 8* do 512 word IO.
3 9* END HISTORY COMMENTS */
3 10
3 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not
3 12* need all the data in fs_dev_types. This is also included in
3 13* fs_dev_types.incl.pl1 */
3 14
3 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */
3 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255);
3 17
3 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */
3 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450);
3 20
3 21 dcl sect_per_rec (9) fixed bin static options (constant) init
3 22 /* table of # of sectors per record on each device */
3 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */
3 24 (0, 16, 16, 16, 16, 16, 16, 2, 2);
3 25
3 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init
3 27 (0, 3, 3, 3, 3, 3, 3, 1, 1);
3 28
3 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init
3 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */
3 31 (0, 5, 5, 5, 5, 5, 5, 2, 2);
3 32
3 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */
3 34 (0, 40, 40, 40, 31, 18, 64, 17, 17);
3 35
3 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */
3 37 (0, 64, 64, 64, 64, 64, 64, 512, 512);
3 38
3 39 /* End fs_dev_types_sector.incl.pl1 */
3 40
2 142
2 143
2 144 /* End of include file ...... fs_dev_types.incl.pl1 */
158
4 1 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */
4 2
4 3 /****^ HISTORY COMMENTS:
4 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383),
4 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098):
4 6* Add the subvolume info.
4 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883),
4 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061):
4 9* Added inconsistent_dbm bit used to determine consistency of volume
4 10* dumper bit maps.
4 11* END HISTORY COMMENTS */
4 12
4 13 /* This is the label at fixed location of each physical volume. Length 1 page */
4 14 /* Note: fsout_vol clears pad fields before writing the label */
4 15
4 16 dcl labelp ptr;
4 17
4 18 dcl 1 label based (labelp) aligned,
4 19
4 20 /* First comes data not used by Multics.. for compatibility with GCOS */
4 21
4 22 2 gcos (5*64) fixed bin,
4 23
4 24 /* Now we have the Multics label */
4 25
4 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */
4 27 2 version fixed bin, /* Version 1 */
4 28 2 mfg_serial char (32), /* Manufacturer's serial number */
4 29 2 pv_name char (32), /* Physical volume name. */
4 30 2 lv_name char (32), /* Name of logical volume for pack */
4 31 2 pvid bit (36), /* Unique ID of this pack */
4 32 2 lvid bit (36), /* unique ID of its logical vol */
4 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */
4 34 2 time_registered fixed bin (71), /* time imported to system */
4 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */
4 36 2 vol_size fixed bin, /* total size of volume, in records */
4 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */
4 38 2 not_used bit (1) unal, /* used to be multiple_class */
4 39 2 private bit (1) unal, /* TRUE if was registered as private */
4 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */
4 41 2 flagpad bit (33) unal,
4 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */
4 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */
4 44 2 password bit (72), /* not yet used */
4 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */
4 46 2 this_sv fixed bin, /* what subvolume number it is */
4 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */
4 48 2 pad1 (13) fixed bin,
4 49 2 time_mounted fixed bin (71), /* time mounted */
4 50 2 time_map_updated fixed bin (71), /* time vmap known good */
4 51
4 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This
4 53* forces a salvage if an MR10 pack is mounted on an earlier system.
4 54* */
4 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */
4 56 2 pad6 fixed bin,
4 57
4 58 2 time_salvaged fixed bin (71), /* time salvaged */
4 59 2 time_of_boot fixed bin (71), /* time of last bootload */
4 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */
4 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */
4 62 2 pad1a (2) fixed bin,
4 63 2 err_hist_size fixed bin, /* size of pack error history */
4 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */
4 65 2 time_last_reloaded fixed bin (71), /* what it says */
4 66 2 pad2 (40) fixed bin,
4 67 2 root,
4 68 3 here bit (1), /* TRUE if the root is on this pack */
4 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */
4 70 3 shutdown_state fixed bin, /* Status of hierarchy */
4 71 3 pad7 bit (1) aligned,
4 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */
4 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */
4 74 3 esd_state fixed bin, /* State of esd */
4 75 2 volmap_record fixed bin, /* Begin record of volume map */
4 76 2 size_of_volmap fixed bin, /* Number of records in volume map */
4 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */
4 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */
4 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */
4 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */
4 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */
4 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */
4 83 2 pad3 (52) fixed bin,
4 84 2 nparts fixed bin, /* Number of special partitions on pack */
4 85 2 parts (47),
4 86 3 part char (4), /* Name of partition */
4 87 3 frec fixed bin, /* First record */
4 88 3 nrec fixed bin, /* Number of records */
4 89 3 pad5 fixed bin,
4 90 2 pad4 (5*64) fixed bin;
4 91
4 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static;
4 93
4 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */
159
5 1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */
5 2
5 3 /* Added pc_vacating, Benson Margulies 84-10-17 */
5 4
5 5 /****^ HISTORY COMMENTS:
5 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383),
5 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098):
5 8* Add the support for subvolumes
5 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309),
5 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098):
5 11* Add root_lv flag to mount RLVs that do not have hardcore partitions.
5 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883),
5 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061):
5 14* Added inconsistent_dbm bit for determining the status of volume
5 15* dumper bit maps.
5 16* END HISTORY COMMENTS */
5 17
5 18 dcl pvt$array aligned external;
5 19 dcl pvt$max_n_entries fixed bin external;
5 20
5 21 dcl pvt_arrayp ptr;
5 22 dcl pvtep ptr;
5 23
5 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp);
5 25
5 26 dcl 1 pvte based (pvtep) aligned,
5 27
5 28 2 pvid bit (36), /* physical volume ID */
5 29
5 30 2 lvid bit (36), /* logical volume ID */
5 31
5 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */
5 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */
5 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */
5 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */
5 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */
5 37 2 pad3 bit (2) unaligned,
5 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */
5 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */
5 40
5 41
5 42
5 43 2 devname char (4), /* device name */
5 44
5 45 (2 device_type fixed bin (8), /* device type */
5 46 2 logical_area_number fixed bin (8), /* disk drive number */
5 47 2 used bit (1), /* TRUE if this entry is used */
5 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */
5 49 2 permanent bit (1), /* TRUE if cannot be demounted */
5 50 2 testing bit (1), /* Protocol bit for read_disk$test */
5 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */
5 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */
5 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */
5 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */
5 55 2 rpv bit (1), /* TRUE if this is the root physical volume */
5 56 2 scav_check_address
5 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */
5 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */
5 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */
5 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */
5 61 2 vacating bit (1), /* don't put new segs on this vol */
5 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */
5 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */
5 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */
5 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */
5 66
5 67
5 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */
5 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */
5 70
5 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */
5 72
5 73 2 nleft fixed bin (17), /* number of records left */
5 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */
5 75
5 76 2 dim_info bit (36), /* Information peculiar to DIM */
5 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */
5 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */
5 79 2 records_per_cyl fixed bin,
5 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */
5 81 2 sv_name char (2) aligned,
5 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */
5 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */
5 84
5 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */
5 86 2 pad2 bit (18) unaligned,
5 87
5 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */
5 89
5 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */
5 91
5 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */
5 93
5 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */
5 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */
5 96
5 97
5 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */
5 99
5 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */
5 101
5 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */
5 103
5 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */
5 105
5 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */
5 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */
5 108
5 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */
5 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */
5 111
5 112
5 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */
5 114 VOLMAP_ASYNC_READ init (1),
5 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant);
5 116
5 117
5 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */
160
161
162 /* BEGIN MESSAGE DOCUMENTATION
163*
164*
165* END MESSAGE DOCUMENTATION */
166
167 end init_empty_root;
SOURCE FILES USED IN THIS COMPILATION.
LINE NUMBER DATE MODIFIED NAME PATHNAME
0 11/11/89 0815.8 init_empty_root.pl1 >spec>install>1112>init_empty_root.pl1
157 1 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1
158 2 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1
2-142 3 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1
159 4 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1
160 5 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.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.
Code parameter fixed bin(35,0) dcl 22 set ref 16 86* 129* 130* 132 134* 136*
ME 000033 constant char(32) initial packed unaligned dcl 83 set ref 128* 134*
140*
Multics 500 based char(32) initial level 2 in structure "label" dcl 4-18
in procedure "init_empty_root" set ref 107*
Multics 500 000114 automatic char(32) initial level 2 in structure "label_buffer" dcl 52
in procedure "init_empty_root" set ref 52*
Multics_ID_String 000000 constant char(32) initial packed unaligned dcl 4-92 ref 107
Pvtx parameter fixed bin(17,0) dcl 21 set ref 16 94 129*
addr builtin function dcl 55 ref 87 94 94
baseadd 000105 automatic fixed bin(17,0) dcl 50 set ref 126* 129*
bce_error 000032 constant entry external dcl 81 ref 134
bit builtin function dcl 56 ref 98 100
clock builtin function dcl 57 ref 90
convert builtin function dcl 58 ref 152
cv_fsdisk_error_ 000020 constant entry external dcl 72 ref 130
dev_type 000102 automatic fixed bin(17,0) dcl 47 set ref 95* 118 122 126* 129*
device parameter fixed bin(17,0) dcl 149 ref 145 152
device_type 4 based fixed bin(8,0) level 2 packed packed unaligned dcl 5-26 ref 95
devname 3 based char(4) level 2 dcl 5-26 ref 134 134
disk_table_uid 705 based bit(36) level 3 dcl 4-18 set ref 110*
disk_table_vtocx 704 based fixed bin(17,0) level 3 dcl 4-18 set ref 109*
error_table_$action_not_performed
000016 external static fixed bin(35,0) dcl 69 ref 136
esd_state 706 based fixed bin(17,0) level 3 dcl 4-18 set ref 113*
fill_vol_extents_$cold_rpv 000024 constant entry external dcl 75 ref 126
good_clock 000100 automatic fixed bin(71,0) dcl 46 set ref 90* 91 91 91* 98 99* 99 100 101* 101
104
here 700 based bit(1) level 3 dcl 4-18 set ref 108*
init_vol_header_ 000022 constant entry external dcl 73 ref 129
ioa_ 000030 constant entry external dcl 80 ref 128 140
is_sv 2(03) based bit(1) level 2 packed packed unaligned dcl 5-26 ref 114
label based structure level 1 dcl 4-18 set ref 88*
label_buffer 000114 automatic structure level 1 dcl 52 set ref 87
labelp 002116 automatic pointer dcl 4-16 set ref 87* 88 96 97 98 100 102 103 104 105
106 107 108 109 110 111 112 113 116 117 118 119
122 123 126* 129* 134 134
logical_area_number 4(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 5-26 ref 134 134
lv_name 531 based char(32) level 2 dcl 4-18 set ref 102*
lvid 542 based bit(36) level 2 dcl 4-18 set ref 100*
max_access_class 552 based bit(72) level 2 dcl 4-18 set ref 105*
mfg_serial 511 based char(32) level 2 dcl 4-18 set ref 97*
min_access_class 554 based bit(72) level 2 dcl 4-18 set ref 106*
n_vtoce 000104 automatic fixed bin(17,0) dcl 49 set ref 126* 129*
num_of_svs 12 based fixed bin(17,0) level 2 dcl 5-26 ref 116
num_pages 000103 automatic fixed bin(17,0) dcl 48 set ref 126* 129* 140*
number_of_sv 560 based fixed bin(17,0) level 2 dcl 4-18 set ref 116*
p99 automatic picture(2) packed unaligned dcl 150 ref 152
pv_name 521 based char(32) level 2 dcl 4-18 set ref 103*
pvid 541 based bit(36) level 2 dcl 4-18 set ref 98*
pvt$array 000034 external static fixed bin(17,0) dcl 5-18 set ref 94
pvt_array based structure array level 1 dcl 5-24 set ref 94
pvte based structure level 1 dcl 5-26
pvtep 002120 automatic pointer dcl 5-22 set ref 94* 95 114 116 117 119 134 134 134
134
rec_per_dev 000022 constant fixed bin(21,0) initial array dcl 2-87 ref 122
rec_per_sv 000011 constant fixed bin(17,0) initial array dcl 2-90 ref 118
root 700 based structure level 2 dcl 4-18
root_vtocx 701 based fixed bin(35,0) level 3 dcl 4-18 set ref 111*
seek_command 002114 automatic bit(6) initial array packed unaligned dcl 2-84 set ref
2-84* 2-84* 2-84* 2-84* 2-84* 2-84* 2-84* 2-84*
2-84*
shutdown_state 702 based fixed bin(17,0) level 3 dcl 4-18 set ref 112*
sub_vol_name 562 based char(1) level 2 dcl 4-18 set ref 119* 123* 134 134
substr builtin function dcl 59 ref 98 100
subsys parameter char(4) packed unaligned dcl 147 ref 145 152
sv_name parameter char(1) packed unaligned dcl 148 ref 145 152
sv_num 11 based fixed bin(17,0) level 2 dcl 5-26 ref 117 119
sys_info$access_class_ceiling 000010 external static bit(72) dcl 62 ref 105
sys_info$first_reasonable_time 000012 external static fixed bin(71,0) dcl 64 ref 91 91
sys_info$last_reasonable_time 000014 external static fixed bin(71,0) dcl 66 ref 91
thing 000106 automatic char(20) packed unaligned dcl 51 set ref 129* 134*
this_sv 561 based fixed bin(17,0) level 2 dcl 4-18 set ref 117*
time_registered 544 based fixed bin(71,0) level 2 dcl 4-18 set ref 104*
unspec builtin function dcl 60 set ref 88*
valid_sv_array 000010 constant char(1) initial array packed unaligned dcl 2-99 ref 119
version 510 based fixed bin(17,0) level 2 dcl 4-18 set ref 96*
vol_size 547 based fixed bin(17,0) level 2 dcl 4-18 set ref 118* 122*
write_disk 000026 constant entry external dcl 79 ref 129 129
NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED.
DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 1-54
DUMPER_BIT_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54
LABEL_ADDR internal static fixed bin(17,0) initial dcl 1-54
MAX_VTOCE_PER_PACK internal static fixed bin(17,0) initial dcl 1-54
MODEL internal static fixed bin(17,0) initial array dcl 2-57
MODELN internal static fixed bin(17,0) initial array dcl 2-63
MODELX internal static fixed bin(17,0) initial array dcl 2-60
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
VOLMAP_ADDR internal static fixed bin(17,0) initial dcl 1-54
VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 5-113
VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 5-113
VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 5-113
VTOCES_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-72
VTOCE_SIZE internal static fixed bin(17,0) initial dcl 1-68
VTOC_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54
VTOC_ORIGIN internal static fixed bin(17,0) initial dcl 1-54
bulkdevt internal static fixed bin(4,0) initial dcl 2-43
cyl_per_dev internal static fixed bin(17,0) initial array dcl 2-102
cyl_per_sv internal static fixed bin(17,0) initial array dcl 2-105
dev_time internal static float bin(27) initial array dcl 2-139
device_names internal static char(4) initial array dcl 2-66
dsu181devt internal static fixed bin(4,0) initial dcl 2-43
dsu190devt internal static fixed bin(4,0) initial dcl 2-43
dsu191devt internal static fixed bin(4,0) initial dcl 2-43
fips3380devt internal static fixed bin(4,0) initial dcl 2-43
fips3381devt internal static fixed bin(4,0) initial dcl 2-43
fips_type_disk internal static bit(1) initial array packed unaligned dcl 2-72
first_alt_sect_num internal static fixed bin(24,0) initial array dcl 2-130
first_dev_number internal static fixed bin(17,0) initial array dcl 2-69
first_rec_num internal static fixed bin(17,0) initial array dcl 2-115
first_sect_num internal static fixed bin(24,0) initial array dcl 2-124
last_alt_sect_num internal static fixed bin(24,0) initial array dcl 2-133
last_physical_sect_num internal static fixed bin(24,0) initial array dcl 2-136
last_rec_num internal static fixed bin(18,0) initial array dcl 2-118
last_sect_num internal static fixed bin(24,0) initial array dcl 2-127
last_sv_rec_num internal static fixed bin(18,0) initial array dcl 2-121
maxdevt internal static fixed bin(4,0) initial dcl 2-43
media_removable internal static bit(1) initial array packed unaligned dcl 2-75
msu0400devt internal static fixed bin(4,0) initial dcl 2-43
msu0450devt internal static fixed bin(4,0) initial dcl 2-43
msu0451devt internal static fixed bin(4,0) initial dcl 2-43
msu0500devt internal static fixed bin(4,0) initial dcl 2-43
msu0501devt internal static fixed bin(4,0) initial dcl 2-43
needs_alt_part internal static bit(1) initial array packed unaligned dcl 2-81
number_of_sv internal static fixed bin(17,0) initial array dcl 2-93
pvt$max_n_entries external static fixed bin(17,0) dcl 5-19
pvt_arrayp automatic pointer dcl 5-21
rec_per_cyl internal static fixed bin(17,0) initial array dcl 2-108
sect_per_cyl internal static fixed bin(17,0) initial array dcl 3-15
sect_per_rec internal static fixed bin(17,0) initial array dcl 3-21
sect_per_sv internal static fixed bin(24,0) initial array dcl 3-18
sect_per_track internal static fixed bin(17,0) initial array dcl 3-33
sect_per_vtoc internal static fixed bin(17,0) initial array dcl 3-26
shared_spindle internal static bit(1) initial array packed unaligned dcl 2-78
tracks_per_cyl internal static fixed bin(17,0) initial array dcl 2-111
valid_sv_string internal static char(3) initial packed unaligned dcl 2-96
vtoc_per_rec internal static fixed bin(17,0) initial array dcl 3-29
words_per_sect internal static fixed bin(17,0) initial array dcl 3-36
NAMES DECLARED BY EXPLICIT CONTEXT.
DEVICE_NAME 000635 constant entry internal dcl 145 ref 134 134
init_empty_root 000136 constant entry external dcl 16
THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION.
STORAGE REQUIREMENTS FOR THIS PROGRAM.
Object Text Link Symbol Defs Static
Start 0 0 1104 1142 722 1114
Length 1430 722 36 251 162 0
BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME
init_empty_root 1187 external procedure is an external procedure.
DEVICE_NAME internal procedure shares stack frame of external procedure init_empty_root.
STORAGE FOR AUTOMATIC VARIABLES.
STACK FRAME LOC IDENTIFIER BLOCK NAME
init_empty_root 000100 good_clock init_empty_root
000102 dev_type init_empty_root
000103 num_pages init_empty_root
000104 n_vtoce init_empty_root
000105 baseadd init_empty_root
000106 thing init_empty_root
000114 label_buffer init_empty_root
002114 seek_command init_empty_root
002116 labelp init_empty_root
002120 pvtep init_empty_root
THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM.
call_ext_out_desc call_ext_out return_mac ext_entry clock_mac
THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM.
bce_error cv_fsdisk_error_ fill_vol_extents_$cold_rpv init_vol_header_
ioa_ write_disk
THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM.
error_table_$action_not_performed pvt$array sys_info$access_class_ceiling
sys_info$first_reasonable_time sys_info$last_reasonable_time
LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC
16 000132 52 000143 84 000146 86 000235 87 000237 88 000241 90 000245
91 000247 94 000256 95 000264 96 000267 97 000271 98 000274 99 000303
100 000306 101 000315 102 000320 103 000323 104 000326 105 000327 106 000334
107 000337 108 000342 109 000344 110 000346 111 000347 112 000350 113 000351
114 000352 116 000355 117 000357 118 000361 119 000364 120 000371 122 000372
123 000375 126 000377 128 000425 129 000445 130 000517 132 000527 134 000532
136 000603 137 000607 140 000610 142 000634 145 000635 152 000637
-----------------------------------------------------------
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