From 4268ee74b7237c3e8bc1d78b92b6e3669cbec6da Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Added developer documentation. --- virt-df/README | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/virt-df/README b/virt-df/README index 0623030..c3ba4fe 100644 --- a/virt-df/README +++ b/virt-df/README @@ -1,2 +1,68 @@ +$Id$ + +For user documentation: + Please see the manual page (virt-df.pod or virt-df.txt in this -directory). \ No newline at end of file +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). + + - virt_df_mbr.ml / virt_df_mbr.mli + + Master Boot Record (MS-DOS) disk partitioning. + + - 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. -- 1.8.3.1