Updated kerneldb.
[virt-mem.git] / lib / virt_mem_types.ml
index 2167314..ba50d00 100644 (file)
@@ -31,15 +31,6 @@ module Ksymmap = Map.Make (String)
 
 type ksymmap = addr Ksymmap.t
 
-type image = {
-  dom : Libvirt.ro D.t option;
-  domname : string;
-  arch : architecture;
-  mem : ([`Wordsize], [`Endian], [`HasMapping]) Virt_mem_mmap.t;
-  kernel_min : addr;
-  kernel_max : addr;
-}
-
 type utsname = {
   uts_kernel_name : string;
   uts_nodename : string;
@@ -49,36 +40,20 @@ type utsname = {
   uts_domainname : string;
 }
 
-type task = {
-  task_state : int64;
-  task_prio : int64;
-  task_normal_prio : int64;
-  task_static_prio : int64;
-  task_comm : string;
-  task_pid : int64;
-}
-
-type net_device = {
-  netdev_name : string;
-  netdev_flags : int64;
-  netdev_operstate : int64;
-  netdev_mtu : int64;
-  netdev_perm_addr : string;
-  netdev_addr_len : int64;
-}
-
-type kdata = {
-  ksyms : ksymmap option;
+type kimage = {
+  dom : Libvirt.ro D.t option;
+  domname : string;
+  arch : architecture;
+  kernel_min : addr;
+  kernel_max : addr;
+  mem : ([`Wordsize], [`Endian], [`HasMapping]) Virt_mem_mmap.t;
+  addrmap : Kernel.addrmap;
+  ksyms : ksymmap;
+  have_ksyms : bool;
+  have_kallsyms : bool;
   utsname : utsname option;
-  tasks : task list option;
-  net_devices : net_device list option;
-}
-
-exception ParseError of string * string * string
-
-type fieldsig = {
-  field_available : bool;
-  field_offset : int;
+  have_tasks : bool;
+  have_net_devices : bool;
 }
 
 (* This is the maximum we can download in one go over the libvirt
@@ -123,24 +98,28 @@ let load_static_memory ~dom ~domname ~arch ~wordsize ~endian
 
     let mem = _load_memory mem dom start size in
 
-    { dom = Some dom; domname = domname; mem = mem; arch = arch;
-      kernel_min = kernel_min; kernel_max = kernel_max }
+    { dom = Some dom; domname = domname; arch = arch;
+      kernel_min = kernel_min; kernel_max = kernel_max;
+      mem = mem; addrmap = Kernel.AddrMap.empty;
+      ksyms = Ksymmap.empty; have_ksyms = false; have_kallsyms = false;
+      utsname = None;
+      have_tasks = false; have_net_devices = false }
   )
 
 let load_memory ({ dom = dom; mem = mem; kernel_min = kernel_min;
-                  kernel_max = kernel_max } as image) start size =
+                  kernel_max = kernel_max } as kimage) start size =
   if start < kernel_min then
     raise (LoadMemoryError (AddressOutOfRange,
                            "load_memory: start < kernel_min"))
   else if start +^ Int64.of_int size > kernel_max then
     raise (LoadMemoryError (AddressOutOfRange,
                            "load_memory: start+size > kernel_max"))
-  else if Virt_mem_mmap.is_mapped_range mem start size then image
+  else if Virt_mem_mmap.is_mapped_range mem start size then kimage
   else (
     match dom with
     | None ->
        raise (LoadMemoryError (DomIsNull, "load_memory: dom = None"))
     | Some dom ->
        let mem = _load_memory mem dom start size in
-       { image with mem = mem }
+       { kimage with mem = mem }
   )