X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=blobdiff_plain;f=lib%2Fkernel.mli;fp=lib%2Fkernel.mli;h=1dcb173814a7f31d3f05e3affc70b16f9f191109;hp=3cc41e7e99137e8f51fa8782c681b4edd0975340;hb=fa333da9b9d5338cb18c0077ba10dffd2cc4d464;hpb=5fb8ec9a1dd22b8ea3d16f2f9847ed7234f8e560 diff --git a/lib/kernel.mli b/lib/kernel.mli index 3cc41e7..1dcb173 100644 --- a/lib/kernel.mli +++ b/lib/kernel.mli @@ -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;;