Integrated image/kdata into kimage structure. Removed dead-code.
[virt-mem.git] / lib / virt_mem_net_devices.ml
diff --git a/lib/virt_mem_net_devices.ml b/lib/virt_mem_net_devices.ml
deleted file mode 100644 (file)
index f4e3ee7..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-(* Memory info command for virtual domains.
-   (C) Copyright 2008 Richard W.M. Jones, Red Hat Inc.
-   http://libvirt.org/
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *)
-
-open Printf
-
-open Virt_mem_gettext.Gettext
-open Virt_mem_utils
-open Virt_mem_types
-
-(*
-open Kernel_net_device
-open Kernel_net
-
-let max_net_devices = 10000
-
-let rec find_net_devices debug image ksymmap kernel_version =
-  if not (net_device_known kernel_version) then (
-    eprintf (f_"%s: %s: unknown kernel version
-Try a newer version of virt-mem, or if the guest is not from a
-supported Linux distribution, see this page about adding support:
-  http://et.redhat.com/~rjones/virt-mem/faq.html\n")
-      image.domname kernel_version;
-    image, None
-  ) else (
-    (* In kernels < ~ 2.6.22, this is a simple linked list:
-     *   dev_base -> next -> next
-     * In kernels >= 2.6.23, this is a list_head:
-     *   dev_base_head -> list_head dev_list -> ...
-     *)
-    let map =
-      let { field_available = available } =
-       field_signature_of_net_device_next kernel_version in
-      if available then
-       Some map_next
-      else (
-       let { field_available = available } =
-         field_signature_of_net_device_dev_list'next kernel_version in
-       if available then
-         Some map_dev_list
-       else (
-         eprintf (f_"%s: kernel net_device table is not linked through either next pointer or dev_list list_head.  Cannot read net devices.\n") image.domname;
-         None
-       )
-      ) in
-
-    match map with
-    | None -> image, None
-
-    | Some map ->
-       (* What is the starting point for iteration?  In older kernels
-        * it was the symbol 'dev_base'.  Then briefly (2.6.22-2.6.24)
-        * it became 'struct list_head dev_base_head'.  Then when net
-        * namespaces were introduced (>= 2.6.25) it became 'struct
-        * list_head init_net.dev_base_head'.
-        *)
-       let addr =
-         try Some (Ksymmap.find "dev_base" ksymmap)
-         with Not_found ->
-           try
-             let addr = Ksymmap.find "dev_base_head" ksymmap in
-             Some addr
-           with Not_found ->
-             try
-               let addr = Ksymmap.find "init_net" ksymmap in
-               if not (net_known kernel_version) then (
-                 eprintf (f_"%s: struct net not available in this kernel version.\n") image.domname;
-                 raise Not_found
-               );
-               let { field_offset = offset } =
-                 field_signature_of_net_dev_base_head'next kernel_version in
-               let addr = addr +^ Int64.of_int offset in
-               Some addr
-             with Not_found ->
-               eprintf (f_"%s: cannot find dev_base, dev_base_head or init_net symbols in kernel image.\n") image.domname;
-               None in
-
-       match addr with
-       | None -> image, None
-
-       | Some addr ->
-           (* Map over the structure using previously defined map function. *)
-           let image, netdevs =
-             map kernel_version image addr (
-               fun netdev ->
-                 { netdev_name = truncate_c_string netdev.net_device_name;
-                   netdev_flags = netdev.net_device_flags;
-                   netdev_operstate = netdev.net_device_operstate;
-                   netdev_mtu = netdev.net_device_mtu;
-                   netdev_perm_addr = netdev.net_device_perm_addr;
-                   netdev_addr_len = netdev.net_device_addr_len;
-                 }
-             ) in
-
-           image, Some netdevs
-  )
-
-(* Map dev_base_head -> list_head dev_list -> ... *)
-and map_dev_list kernel_version image lh_addr f =
-  let { field_offset = offset } =
-    field_signature_of_net_device_dev_list'next kernel_version in
-  let lh = Virt_mem_list_head.create image lh_addr offset in
-
-  let size = net_device_size kernel_version in
-  let image, lh = Virt_mem_list_head.load_all lh size in
-
-  let net_devices, _ =
-    Virt_mem_list_head.fold lh ([], 0) (
-      fun (net_devices, i) addr ->
-       if i > max_net_devices then
-         failwith (sprintf (f_"%s: too many network devices") image.domname);
-
-       let net_device = get_net_device kernel_version image.mem addr in
-       let net_devices = f net_device :: net_devices in
-       (net_devices, i+1)
-    ) in
-
-  image, net_devices
-
-(* Iterate dev_base -> next -> next ... *)
-and map_next kernel_version image addr f =
-  let size = net_device_size kernel_version in
-
-  let rec loop i image acc addr =
-    if i <= max_net_devices then (
-      if addr <> 0L then (
-       let mapped = Virt_mem_mmap.is_mapped_range image.mem addr size in
-       let image =
-         if not mapped then
-           Virt_mem_types.load_memory image addr size
-         else
-           image in
-       let dev = get_net_device kernel_version image.mem addr in
-       let acc = f dev :: acc in
-       let addr =
-         match dev.net_device_next with
-         | None -> assert false | Some addr -> addr in
-       loop (i+1) image acc addr
-      ) else
-       image, acc
-    ) else
-      failwith (sprintf (f_"%s: too many network devices") image.domname);
-  in
-  loop 0 image [] addr
-*)