open Virt_mem_types
open Virt_mem_mmap
-let run debug ({ domname = domname; mem = mem }, ksymmap, _) =
+let run debug { domname = domname; mem = mem; ksyms = ksyms } =
try
(* I don't know why but this symbol doesn't exist in 2.6.9
* even in kallsyms. Hence this won't work with that kernel.
* It's possible we can fall back to memory scanning. XXX
*)
- let log_buf = Ksymmap.find "log_buf" ksymmap in
+ let log_buf = Ksymmap.find "log_buf" ksyms in
let log_buf = follow_pointer mem log_buf in
- let log_buf_len = Ksymmap.find "log_buf_len" ksymmap in
+ let log_buf_len = Ksymmap.find "log_buf_len" ksyms in
let log_buf_len = Int64.of_int32 (get_C_int mem log_buf_len) in
- (* let log_start = Ksymmap.find "log_start" ksymmap in
+ (* let log_start = Ksymmap.find "log_start" ksyms in
let log_start = get_C_long mem log_start in *)
- let log_end = Ksymmap.find "log_end" ksymmap in
+ let log_end = Ksymmap.find "log_end" ksyms in
let log_end = get_C_long mem log_end in
- (* let con_start = Ksymmap.find "con_start" ksymmap in
+ (* let con_start = Ksymmap.find "con_start" ksyms in
let con_start = get_C_long mem con_start in *)
- let logged_chars = Ksymmap.find "logged_chars" ksymmap in
+ let logged_chars = Ksymmap.find "logged_chars" ksyms in
let logged_chars = get_C_long mem logged_chars in
(* This is basically the same algorithm from printk.c:do_syslog
under libvirt. The output is similar to the ordinary dmesg command
run inside the virtual machine."
-let () = Virt_mem.register "dmesg" summary description ~run
+let () = Virt_mem.register "dmesg" summary description ~needs_ksyms:true ~run