fun (image, ({ ksyms = ksyms; utsname = utsname } as kdata)) ->
match ksyms, utsname with
| Some ksyms, Some { uts_kernel_release = kversion } ->
+ let image = ref image in
+ let load struct_name addr size =
+ printf "load for task, %s: %Lx %d ...\n" struct_name addr size;
+ let mapped =
+ Virt_mem_mmap.is_mapped_range !image.mem addr size in
+ if not mapped then image := load_memory !image addr size;
+ let bits = Virt_mem_mmap.get_bytes !image.mem addr size in
+ Bitstring.bitstring_of_string bits
+ in
+ let init_task = Ksymmap.find "init_task" ksyms in
+ let map =
+ Kernel.task_struct_follower kversion load init_task in
+
+ (*
let image, tasks =
Virt_mem_tasks.find_tasks debug image ksyms kversion in
let kdata = { kdata with tasks = tasks } in
- image, kdata
+ *)
+ !image, kdata
| _, _ -> image, kdata
) images in
fun (image, ({ ksyms = ksyms; utsname = utsname } as kdata)) ->
match ksyms, utsname with
| Some ksyms, Some { uts_kernel_release = kversion } ->
+ let image = ref image in
+ let load struct_name addr size =
+ printf "load for net dev, %s: %Lx %d ...\n" struct_name addr size;
+ let mapped =
+ Virt_mem_mmap.is_mapped_range !image.mem addr size in
+ if not mapped then image := load_memory !image addr size;
+ let bits = Virt_mem_mmap.get_bytes !image.mem addr size in
+ Bitstring.bitstring_of_string bits
+ in
+ let map =
+ try
+ let dev_base = Ksymmap.find "dev_base" ksyms in
+ let map =
+ Kernel.net_device_follower kversion load dev_base in
+ Some map
+ with Not_found ->
+ try
+ let dev_base_head = Ksymmap.find "dev_base_head" ksyms in
+ (* XXX adjust to get offset of start of net_device *)
+ assert false
+ with Not_found ->
+ try
+ let init_net = Ksymmap.find "init_net" ksyms in
+ let map =
+ Kernel.net_follower kversion load init_net in
+ Some map
+ 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
+(*
let image, net_devices =
Virt_mem_net_devices.find_net_devices debug
image ksyms kversion in
let kdata = { kdata with net_devices = net_devices } in
- image, kdata
+*)
+ !image, kdata
| _, _ -> image, kdata
) images in