Experimental automated 'follower' code.
[virt-mem.git] / lib / kernel.mli
index 3cc41e7..1dcb173 100644 (file)
@@ -1,9 +1,49 @@
-type ('a, 'b) task_struct;;
-type ('a, 'b) net_device;;
-type ('a, 'b) net;;
-type ('a, 'b) in_device;;
-type ('a, 'b) inet6_dev;;
-type ('a, 'b) in_ifaddr;;
-type ('a, 'b) inet6_ifaddr;;
+module AddrMap :
+  sig
+    type key = Virt_mem_mmap.addr;;
+    type 'a t = 'a Map.Make(Int64).t;;
+    val empty : 'a t;;
+    val is_empty : 'a t -> bool;;
+    val add : key -> 'a -> 'a t -> 'a t;;
+    val find : key -> 'a t -> 'a;;
+    val remove : key -> 'a t -> 'a t;;
+    val mem : key -> 'a t -> bool;;
+    val iter : (key -> 'a -> unit) -> 'a t -> unit;;
+    val map : ('a -> 'b) -> 'a t -> 'b t;;
+    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t;;
+    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b;;
+    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int;;
+    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool;;
+  end;;
+type kernel_version = string;;
 
 
+
+val task_struct_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val net_device_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val net_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val in_device_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val inet6_dev_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val in_ifaddr_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+val inet6_ifaddr_follower :
+  kernel_version ->
+    (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
+      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;