Rebuild task_struct & net_device against latest kerneldb.
[virt-mem.git] / lib / virt_mem_capture.ml
index 29f7466..0c1ff57 100644 (file)
@@ -22,6 +22,9 @@
 open Printf
 open ExtString
 
+module D = Libvirt.Domain
+
+open Virt_mem_types
 open Virt_mem_gettext.Gettext
 
 (* This will contain what is passed by the user as '-o' option. *)
@@ -51,11 +54,11 @@ let rec beforeksyms debug = function
        * is the domain ID (if known) or a mangled domain name.
        *)
       List.iter (
-       fun ((domid, domname, _, _) as image) ->
+       fun ({ dom = dom; domname = domname } as image) ->
          let filename =
            !output_filename ^ "." ^
-           match domid with
-           | Some id -> string_of_int id
+           match dom with
+           | Some dom -> string_of_int (D.get_id dom)
            | None ->
                let f = function
                  | ('a'..'z'|'A'..'Z'|'0'..'9'|'_' as c) -> String.make 1 c
@@ -65,20 +68,10 @@ let rec beforeksyms debug = function
          save_image image filename
       ) images
 
-and save_image (_, domname, arch, mem) filename =
-  let chan = open_out filename in
+and save_image { domname = domname } filename =
+  assert false;
 
-  (* XXX At the moment, CONTRARY to what it says in the manual, we
-   * are only able to dump out raw data.  We don't save the header,
-   * start address, etc. (which we should do). XXX
-   *)
-  assert (Virt_mem_mmap.nr_mappings mem = 1);
-
-  Virt_mem_mmap.iter mem (
-    fun start size ->
-      let bytes = Virt_mem_mmap.get_bytes mem start (Int64.to_int size) in
-      output_string chan bytes
-  );
+  let chan = open_out filename in
 
   close_out chan;