Module Kernel


module Kernel: sig .. end

module AddrMap: sig .. end
exception ParseError of string * string * string
type kernel_version = string 
type load_fn = string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring 

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
type addrmap = (string * (int * Bitstring.bitstring * kernel_struct) option)
AddrMap.t
val task_struct_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val net_device_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val net_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val in_device_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val inet6_dev_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val in_ifaddr_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap
val inet6_ifaddr_follower : bool ->
kernel_version ->
load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap