Experimental automated 'follower' code.
[virt-mem.git] / extract / codegen / pahole_parser.ml
index f8b5bd1..99e36de 100644 (file)
@@ -27,6 +27,7 @@ let (//) = Filename.concat
 type pathname = string
 
 type info = {
+  kv_i : int;
   kernel_version : string;
   arch : string;
   basename : string;
@@ -54,7 +55,7 @@ and f_type =
   | FString of int
 
 let string_of_info i =
-  sprintf "%s: %s %s" i.basename i.kernel_version i.arch
+  sprintf "%s: %s (%d) %s" i.basename i.kernel_version i.kv_i i.arch
 
 let rec string_of_structure s =
   let fields = List.map string_of_field s.struct_fields in
@@ -92,8 +93,8 @@ let list_kernels path =
   (* Parse in the *.info files.  These have historically had a few different
    * formats that we need to support.
    *)
-  let infos = List.map (
-    fun filename ->
+  let infos = List.mapi (
+    fun filename ->
       (* Get the basename (for getting the .data file later on). *)
       let basename = Filename.chop_suffix filename ".info" in
 
@@ -146,7 +147,8 @@ let list_kernels path =
 
       (*printf "%s -> %s %s\n%!" basename version arch;*)
 
-      { basename = basename; arch = arch;
+      { kv_i = i;
+       basename = basename; arch = arch;
        kernel_version = version }
   ) infos in
   infos