X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=dmesg%2Fvirt_dmesg.ml;h=8800fd2d9dbe9bd9f72b245375f7e2c7c35fd3dc;hb=804f41de6293525d66408c6866b789d3e484c78d;hp=1886a929731f383cd3949336436c5dd861c8e0da;hpb=643e58b5e26c18f2cfc1c7b9aa676cb44feee847;p=virt-mem.git diff --git a/dmesg/virt_dmesg.ml b/dmesg/virt_dmesg.ml index 1886a92..8800fd2 100644 --- a/dmesg/virt_dmesg.ml +++ b/dmesg/virt_dmesg.ml @@ -24,23 +24,23 @@ open Virt_mem_utils open Virt_mem_types open Virt_mem_mmap -let run debug (_, name, arch, mem, lookup_ksym, _) = +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 = lookup_ksym "log_buf" in + let log_buf = Ksymmap.find "log_buf" ksyms in let log_buf = follow_pointer mem log_buf in - let log_buf_len = lookup_ksym "log_buf_len" 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 = lookup_ksym "log_start" in + (* let log_start = Ksymmap.find "log_start" ksyms in let log_start = get_C_long mem log_start in *) - let log_end = lookup_ksym "log_end" in + let log_end = Ksymmap.find "log_end" ksyms in let log_end = get_C_long mem log_end in - (* let con_start = lookup_ksym "con_start" in + (* let con_start = Ksymmap.find "con_start" ksyms in let con_start = get_C_long mem con_start in *) - let logged_chars = lookup_ksym "logged_chars" 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 @@ -70,7 +70,7 @@ let run debug (_, name, arch, mem, lookup_ksym, _) = with Not_found -> eprintf (f_"%s: could not find kernel log buffer in kernel image\n") - name + domname let summary = s_"display kernel messages" let description = s_"\ @@ -78,4 +78,4 @@ virt-dmesg prints the kernel messages for virtual machines running 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