Get rid of lookup_ksym function, replace with a map.
[virt-mem.git] / ps / virt_ps.ml
index df876ba..8b6f685 100644 (file)
@@ -21,6 +21,7 @@ open Printf
 
 open Virt_mem_gettext.Gettext
 open Virt_mem_utils
+open Virt_mem_types
 open Virt_mem_mmap
 
 (* The implementation of 'ps' has gone through a number of complete
@@ -191,16 +192,16 @@ let get_task_struct debug mem ((ws,e) as wse) ((n1,n2) as shape)
   get_task_struct ~i:0 addr accum
 
 (* This is the directed search function. *)
-let search debug mem lookup_ksym =
+let search debug mem ksymmap =
   let ws = get_wordsize mem in
   let ws = match ws with W32 -> 32 | W64 -> 64 in
   let e = get_endian mem in
   let wse = ws, e in
 
   let init_task =
-    try lookup_ksym "init_task"
+    try Ksymmap.find "init_task" ksymmap
     with Not_found ->
-      eprintf "virt-ps: lookup_ksym of init_task failed\n";
+      eprintf "virt-ps: cannot find kernel symbol 'init_task'\n";
       exit 1 in
 
   let accum = Accum.empty in
@@ -222,8 +223,8 @@ let search debug mem lookup_ksym =
   let ts = loop 0 0 in
   ()
 
-let run debug (_, _, _, mem, lookup_ksym, _) =
-  search debug mem lookup_ksym
+let run debug ({ mem = mem }, ksymmap, _) =
+  search debug mem ksymmap
 
 let summary = s_"list processes in virtual machine"
 let description = s_"\