Refactored, process table now loaded centrally.
[virt-mem.git] / lib / virt_mem_kallsyms.ml
index 2394248..631bf61 100644 (file)
@@ -36,7 +36,7 @@ type kallsyms_compr =
   | Compressed of (string * Virt_mem_mmap.addr) list * Virt_mem_mmap.addr
   | Uncompressed of (string * Virt_mem_mmap.addr) list
 
-let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) =
+let find_kallsyms debug ({ domname = domname; mem = mem } as image) ksymmap =
   let start_t = gettimeofday () in
 
   (* Now try to find the /proc/kallsyms table.  This is in an odd
@@ -200,10 +200,8 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) =
     let freqs = frequency kallsymtabs in
     match freqs with
     | [] ->
-       (* Can't find any kallsymtabs, just return the ksymmap
-        * map generated previously from the exported symbols.
-        *)
-       ksymmap
+       (* Can't find any kallsymtabs. *)
+       None
 
     | (_, (_, _, _, Uncompressed names)) :: _ ->
        let rec loop ksymmap = function
@@ -211,7 +209,7 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) =
              loop (Ksymmap.add name value ksymmap) names
          | [] -> ksymmap
        in
-       loop ksymmap names
+       Some (loop ksymmap names)
 
     | (_, (start_addr, num_entries, names_addr,
           Compressed (compressed_names, markers_addr))) :: _ ->
@@ -262,7 +260,7 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) =
              loop (Ksymmap.add name value ksymmap) names
          | [] -> ksymmap
        in
-       loop ksymmap names in
+       Some (loop ksymmap names) in
 
   if debug then (
     let end_t = gettimeofday () in
@@ -270,4 +268,4 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) =
       (end_t -. start_t)
   );
 
-  ((image, ksymmap) : image1)
+  (image, ksymmap)