Librarify the arg-parsing code. Added virt-uname command.
[virt-mem.git] / lib / virt_mem.mli
diff --git a/lib/virt_mem.mli b/lib/virt_mem.mli
new file mode 100644 (file)
index 0000000..a0f1963
--- /dev/null
@@ -0,0 +1,47 @@
+(* Memory info for virtual domains.
+   (C) Copyright 2008 Richard W.M. Jones, Red Hat Inc.
+   http://libvirt.org/
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *)
+
+type ksym = string
+  (** A kernel symbol name. *)
+
+type image =
+    string
+    * Virt_mem_utils.architecture
+    * ([`Wordsize], [`Endian]) Virt_mem_mmap.t
+    * (ksym -> Virt_mem_mmap.addr)
+  (** An image after it has been processed by the code common to
+      all commands.
+
+      The tuple fields are:
+      - name
+      - architecture (eg. I386)
+      - kernel memory map (wordsize & endianness already determined)
+      - a function to look up kernel symbols.  It raises [Not_found]
+        if a kernel symbol could not be found or if the kernel symbol
+        table could not be found at all.
+  *)
+
+val start : Arg.usage_msg -> bool * image list
+  (** Programs call this to parse the standard command-line arguments
+      and do all the standard processing of domains into images.
+
+      The returned tuple is:
+      - verbose mode
+      - list of images
+  *)