X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fvirt_mem.mli;h=58b879e5b9311b765b62ff2295a6fcc53df68eb1;hb=e3b79ee907537feec9274b1bfab7e450fc97dbcf;hp=a0f196367a539bf3349fac7a3b9d0caa3b557d60;hpb=cb0cb33ae593436fd984c105cf5682155704e39f;p=virt-mem.git diff --git a/lib/virt_mem.mli b/lib/virt_mem.mli index a0f1963..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,11 +45,36 @@ type image = 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. +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 anonymous parameters are: + - tool name (eg. "uname") + - short summary + - full usage message - The returned tuple is: - - verbose mode - - list of 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 + (** Entry point for the combined virt-mem executable. *)