X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=lib%2Fkernel.mli;h=e4f4148501455924237115be8493b923f9007f62;hb=48a85384daa4089f6d310293ab3f8d713740f962;hp=1dcb173814a7f31d3f05e3affc70b16f9f191109;hpb=fa333da9b9d5338cb18c0077ba10dffd2cc4d464;p=virt-mem.git diff --git a/lib/kernel.mli b/lib/kernel.mli index 1dcb173..e4f4148 100644 --- a/lib/kernel.mli +++ b/lib/kernel.mli @@ -15,35 +15,76 @@ module AddrMap : val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int;; val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool;; 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 : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val net_device_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val net_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val in_device_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val inet6_dev_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val in_ifaddr_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;; val inet6_ifaddr_follower : - kernel_version -> - (string -> Virt_mem_mmap.addr -> int -> Bitstring.bitstring) -> - Virt_mem_mmap.addr -> (string * int) AddrMap.t;; + kernel_version -> load_fn -> addrmap -> Virt_mem_mmap.addr -> addrmap;;