1
2
3
4
5
6
7
8
9
10
11
12
13 init_lvt: proc ();
14
15
16
17
18
19
20
21
22 dcl 1 local_label like label aligned;
23 dcl 1 local_lvte like lvte aligned;
24 dcl code fixed bin (35);
25 dcl pvt$root_pvtx fixed bin external;
26 dcl pvt$root_lvid bit (36) aligned external;
27 dcl read_disk entry (fixed bin, fixed bin, ptr, fixed bin (35));
28 dcl logical_volume_manager$add entry (ptr, fixed bin (35));
29 dcl syserr entry options (variable);
30
31
32
33 lvtp = addr (lvt$);
34 lvt.max_lvtex = 50;
35 lvt.high_water_lvtex = 0;
36 lvt.free_lvtep = null ();
37 lvt.ht (*) = null ();
38
39
40
41 call read_disk (pvt$root_pvtx, LABEL_ADDR, addr (local_label), code);
42 if code ^= 0 then call syserr (1, "init_lvt: unable to read RPV label, code = ^o", code);
43 local_lvte.lvid = pvt$root_lvid;
44 local_lvte.access_class.min = local_label.min_access_class;
45 local_lvte.access_class.max = local_label.max_access_class;
46 unspec (local_lvte.flags) = (36)"0"b;
47 local_lvte.flags.public = "1"b;
48 call logical_volume_manager$add (addr (local_lvte), code);
49 if code ^= 0 then call syserr (1, "init_lvt: unable to define RLV, code = ^o", code);
50 return;
51
52
53
54 %include fs_vol_label;
55
56
57
58 %include disk_pack;
59
60
61
62 %include lvt;
63
64 ^L
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 end init_lvt;