Get rid of lookup_ksym function, replace with a map.
[virt-mem.git] / lib / virt_mem_utsname.ml
index 61a2b37..084ba92 100644 (file)
@@ -57,13 +57,13 @@ let parse_utsname bits =
   | { _ } ->
       None
 
-let find_utsname debug (domid, name, arch, mem, lookup_ksym) =
+let find_utsname debug ({ domname = name; mem = mem } as image, ksymmap) =
   let utsname =
     (* In Linux 2.6.25, the symbol is init_uts_ns.
      * http://lxr.linux.no/linux/init/version.c
      *)
     try
-      let addr = lookup_ksym "init_uts_ns" in
+      let addr = Ksymmap.find "init_uts_ns" ksymmap in
 
       let bs = Bitstring.bitstring_of_string (get_bytes mem addr (65*6+4)) in
       (bitmatch bs with
@@ -81,7 +81,7 @@ let find_utsname debug (domid, name, arch, mem, lookup_ksym) =
         * http://lxr.linux.no/linux-bk+v2.6.9/include/linux/utsname.h#L24
         *)
        try
-         let addr = lookup_ksym "system_utsname" in
+         let addr = Ksymmap.find "system_utsname" ksymmap in
 
          let bits =
            Bitstring.bitstring_of_string (get_bytes mem addr (65*6)) in
@@ -90,4 +90,4 @@ let find_utsname debug (domid, name, arch, mem, lookup_ksym) =
              Not_found ->
                eprintf (f_"%s: could not find utsname in kernel image\n") name
   in
-  (domid, name, arch, mem, lookup_ksym, utsname)
+  (image, ksymmap, utsname)