|
|
1.1 root 1: logical disk issues - setFormatted, writeLabel, eject
2:
3: formatted flag
4: DiskObject subclass - must be maintained by subclass!
5: LogicalDisk - should be a don't care. Implement the method by
6: passing up thru logicalDisk chain.
7: UnixDisk - should be a don't care, labelValid is the only
8: interesting flag.
9:
10: setFormatted -
11: -- invalidates label and destroys block devs
12: -- public version only valid for raw dev (true of ALL ioctls)
13: -- DiskObject public version
14: if [logicalDisk is open]
15: reject
16: set formatted 0/1
17: [self getPhysParams];
18: [logicalDisk setFormattedInt]
19:
20: -- UnixDisk setFormattedInt
21: if any block devs open
22: reject -- shouldn't happen
23: destroy block devs
24: set formatted 0/1
25:
26: writeLabel
27: -- UnixDisk raw device only...
28: --
29: {
30: if [logicalDisk isOpen] (block devices...)
31: reject
32: destroy block devs
33: write the label
34: probe label (updtae raw dec params, create block devs)
35: }
36:
37: ejectDisk
38: -- DiskObject
39: {
40: -- if [logicalDev isOpen]
41: reject
42: else
43: [self devEjectDisk];
44: }
45:
46: -- UnixDisk devEjectDisk
47: {
48: if any block devs open
49: reject -- shouldn't happen
50: else {
51: destroy blockd devs
52: labelValid = 0
53: [physDev devEjectDisk]
54: }
55:
56:
57:
58:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.