summaryrefslogtreecommitdiffstats
path: root/virt-df/README
blob: 65acef986eda42e06b4a3fd0ecf5f1cd2f2b39a2 (plain)
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
$Id$

For user documentation:

Please see the manual page (virt-df.pod or virt-df.txt in this
directory).

Developer documentation
----------------------------------------------------------------------

This program has suddenly become rather large and confusing.
Hopefully this documentation should go some way towards explaining
what is going on inside the source.

The main program consists of two modules:

 - virt_df.ml / virt_df.mli (module name: Virt_df)

   This has evolved into a library of miscellaneous functions
   and values which are included throughout the rest of the
   program.  If you see an unexplained function then it's
   likely that it is defined in here.

   Start by reading virt_df.mli which contains the full types
   and plenty of documentation.

 - virt_df_main.ml

   This is the program.  It reads the command line arguments,
   loads the domain descriptions, calls out to the plug-ins
   to probe for disks / partitions / filesystems / etc., and
   finally prints the results.

   The file consists of basically one large program that
   does all of the above in sequence.

Everything else in this directory is a plug-in specialized for probing
a particular filesystem, partition scheme or type of LVM.  The
plug-ins at time of writing are:

 - virt_df_ext2.ml / virt_df_ext2.mli

   EXT2/3/4 plug-in.

 - virt_df_linux_swap.ml / virt_df_linux_swap.mli

   Linux swap (new style) plug-in.

 - virt_df_mbr.ml / virt_df_mbr.mli

   Master Boot Record (MS-DOS) disk partitioning plug-in.

 - virt_df_lvm2*

   LVM2 parsing, which is by far the most complex plug-in.
   It consists of:

   - virt_df_lvm2.ml
   - virt_df_lvm2.mli
     LVM2 probing, PV detection.

   - virt_df_lvm2_parser.mly
   - virt_df_lvm2_lexer.mll
     Scanner/parser for parsing LVM2 metadata definitions.

   - virt_df_lvm2_metadata.ml
   - virt_df_lvm2_metadata.mli
     AST for LVM2 metadata definitions.