X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=blobdiff_plain;f=lib%2Fvirt_mem.mli;h=63569813b1a034cdd8dae81c68a904f33d5ef17a;hp=1dc1c23cf0855c8ee4140d978fb42fe72d3d837b;hb=2e1de51e35bea53ebece1a6fd6d6970534f4cbe9;hpb=b70c967911e197b74d6d7ad98e3df9240d82572f diff --git a/lib/virt_mem.mli b/lib/virt_mem.mli index 1dc1c23..6356981 100644 --- a/lib/virt_mem.mli +++ b/lib/virt_mem.mli @@ -1,3 +1,4 @@ +(** Memory info for virtual domains. *) (* Memory info for virtual domains. (C) Copyright 2008 Richard W.M. Jones, Red Hat Inc. http://libvirt.org/ @@ -17,35 +18,48 @@ 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 register : string -> string -> Arg.usage_msg -> bool -> (bool -> image list -> unit) -> unit +val register : + ?needs_ksyms:bool -> + ?needs_utsname:bool -> + ?needs_tasks:bool -> + ?needs_net_devices:bool -> + ?needs_everything:bool -> + run:(bool -> Virt_mem_types.image -> Virt_mem_types.kdata -> unit) -> + ?external_cmd:bool -> + ?extra_args:(Arg.key * Arg.spec * Arg.doc) list -> + ?argcheck:(bool -> unit) -> + string -> string -> Arg.usage_msg -> + unit (** Tools register themselves with this call. - The parameters are: + The required parameters are: - tool name (eg. "uname") - short summary - full usage message - - is it a virt-cmd? - - run function (invoked as [run verbose images]) + + The boolean parameters specify what kernel structures the + tool needs before it can run. The main program will read + these structures in before calling [~run]. + - [~needs_ksyms:true] if kernel symbols are needed + - [~needs_utsname:true] if kernel version (utsname) is needed + - [~needs_tasks:true] if all task_struct (processes) are needed + - [~needs_net_devices:true] if all net devices are needed + - [~needs_everything:true] if the tool requires as much as + possible (but will not fail if we cannot determine everything) + + The [~run] function is the tool's run function. This function + is run once for each separate domain. It may throw any exception, + which is printed out, but does not abort the program. (If for + some reason you need to abort the whole program, call [exit].) + + Pass [~external_cmd:false] if this tool doesn't have an + external 'virt-tool' link. + + Pass [~extra_args:...] if this tool needs extra command + line options. + + Pass [~argcheck:...] so that the tool can do any additional + parameter checks needed (eg. for [~extra_args]). *) val main : unit -> unit