From: Richard W.M. Jones <"Richard W.M. Jones "> Date: Tue, 15 Apr 2008 19:49:30 +0000 (+0100) Subject: Added developer documentation. X-Git-Tag: 1.0.4~24^2~17 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=4268ee74b7237c3e8bc1d78b92b6e3669cbec6da;p=virt-top.git Added developer documentation. --- 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.