X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=blobdiff_plain;f=lib%2Fvirt_mem.mli;h=58b879e5b9311b765b62ff2295a6fcc53df68eb1;hp=1dc1c23cf0855c8ee4140d978fb42fe72d3d837b;hb=e3b79ee907537feec9274b1bfab7e450fc97dbcf;hpb=b70c967911e197b74d6d7ad98e3df9240d82572f diff --git a/lib/virt_mem.mli b/lib/virt_mem.mli index 1dc1c23..58b879e 100644 --- a/lib/virt_mem.mli +++ b/lib/virt_mem.mli @@ -21,15 +21,23 @@ type ksym = string (** A kernel symbol name. *) type image = - string + int option + * string + * Virt_mem_utils.architecture + * ([`Wordsize], [`Endian]) Virt_mem_mmap.t + (** A memory image from a domain. *) + +type image_with_ksyms = + int option + * 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. + (** An image after it has been processed to find kernel symbols. The tuple fields are: - - name + - domain ID (if known) + - name, usually the domain name - architecture (eg. I386) - kernel memory map (wordsize & endianness already determined) - a function to look up kernel symbols. It raises [Not_found] @@ -37,15 +45,35 @@ type image = table could not be found at all. *) -val register : string -> string -> Arg.usage_msg -> bool -> (bool -> image list -> unit) -> unit +val register : + ?external_cmd:bool -> + ?extra_args:(Arg.key * Arg.spec * Arg.doc) list -> + ?argcheck:(bool -> unit) -> + ?beforeksyms:(bool -> image list -> unit) -> + ?run:(bool -> image_with_ksyms list -> unit) -> + string -> string -> Arg.usage_msg -> + unit (** Tools register themselves with this call. - The parameters are: + The anonymous parameters are: - tool name (eg. "uname") - short summary - full usage message - - is it a virt-cmd? - - run function (invoked as [run verbose images]) + + The optional callback functions are: + - [?argcheck] called after arguments have been fully parsed + so that the program can do any additional checks needed (eg. + on [extra_args]), + - [?beforeksyms] called after images are loaded and before + kernel symbols are analyzed, + - [?run] called after kernel symbols have been analyzed + (almost all tools supply this callback function). + + 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. *) val main : unit -> unit