Dynamic version, working.
[virt-mem.git] / lib / kernel.mli
index 1dcb173..25f16ba 100644 (file)
@@ -16,34 +16,113 @@ module AddrMap :
     val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool;;
   end;;
 type kernel_version = string;;
+type task_struct =
+  { task_struct_comm : string; task_struct_normal_prio : int64;
+    task_struct_pid : int64; task_struct_prio : int64;
+    task_struct_run_list'next : Virt_mem_mmap.addr option;
+    task_struct_run_list'next_offset : int;
+    task_struct_run_list'next_adjustment : int;
+    task_struct_run_list'prev : Virt_mem_mmap.addr option;
+    task_struct_state : int64; task_struct_static_prio : int64;
+    task_struct_tasks'next : Virt_mem_mmap.addr;
+    task_struct_tasks'next_offset : int;
+    task_struct_tasks'next_adjustment : int;
+    task_struct_tasks'prev : Virt_mem_mmap.addr
+  };;
+type net_device =
+  { net_device_addr_len : int64;
+    net_device_dev_list'next : Virt_mem_mmap.addr option;
+    net_device_dev_list'next_offset : int;
+    net_device_dev_list'next_adjustment : int;
+    net_device_dev_list'prev : Virt_mem_mmap.addr option;
+    net_device_flags : int64; net_device_ip6_ptr : Virt_mem_mmap.addr;
+    net_device_ip_ptr : Virt_mem_mmap.addr; net_device_mtu : int64;
+    net_device_name : string; net_device_next : Virt_mem_mmap.addr option;
+    net_device_operstate : int64; net_device_perm_addr : string
+  };;
+type net =
+  { net_dev_base_head'next : Virt_mem_mmap.addr;
+    net_dev_base_head'next_offset : int;
+    net_dev_base_head'next_adjustment : int;
+    net_dev_base_head'prev : Virt_mem_mmap.addr;
+    net_dev_base_head'prev_offset : int;
+    net_dev_base_head'prev_adjustment : int
+  };;
+type in_device = { in_device_ifa_list : Virt_mem_mmap.addr };;
+type inet6_dev = { inet6_dev_addr_list : Virt_mem_mmap.addr };;
+type in_ifaddr =
+  { in_ifaddr_ifa_address : int64; in_ifaddr_ifa_broadcast : int64;
+    in_ifaddr_ifa_local : int64; in_ifaddr_ifa_mask : int64;
+    in_ifaddr_ifa_next : Virt_mem_mmap.addr
+  };;
+type inet6_ifaddr =
+  { inet6_ifaddr_lst_next : Virt_mem_mmap.addr;
+    inet6_ifaddr_prefix_len : int64
+  };;
+type kernel_struct =
+  Task_struct of task_struct
+  | Net_device of net_device
+  | Net of net
+  | In_device of in_device
+  | Inet6_dev of inet6_dev
+  | In_ifaddr of in_ifaddr
+  | Inet6_ifaddr of inet6_ifaddr;;
 
 
 
 val task_struct_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val net_device_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val net_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val in_device_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val inet6_dev_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val in_ifaddr_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;
 val inet6_ifaddr_follower :
   kernel_version ->
     (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) ->
-      Virt_mem_mmap.addr -> (string * int) AddrMap.t;;
+      (string * ((int * Bitstring.bitstring * kernel_struct) option))
+        AddrMap.t ->
+        Virt_mem_mmap.addr ->
+          (string * ((int * Bitstring.bitstring * kernel_struct) option))
+            AddrMap.t;;