X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=lib%2Fvirt_mem_utsname.ml;h=457e339e469695ced0b0e01e1c56479c8263f845;hb=30f9bc6cfcd5915fd64b00ec11e1329423d5a801;hp=6a725f5d4559cb228bdec5c260c95628ce463ee7;hpb=0bb087262357335c4b12f189d568a6f4ba9f89fa;p=virt-mem.git diff --git a/lib/virt_mem_utsname.ml b/lib/virt_mem_utsname.ml index 6a725f5..457e339 100644 --- a/lib/virt_mem_utsname.ml +++ b/lib/virt_mem_utsname.ml @@ -37,23 +37,24 @@ let parse_utsname bits = machine : 65*8 : string; domainname : 65*8 : string } -> Some { - kernel_name = "Linux"; - nodename = truncate_c_string nodename; - kernel_release = truncate_c_string release; - kernel_version = truncate_c_string version; - machine = truncate_c_string machine; - domainname = truncate_c_string domainname + uts_kernel_name = "Linux"; + uts_nodename = truncate_c_string nodename; + uts_kernel_release = truncate_c_string release; + uts_kernel_version = truncate_c_string version; + uts_machine = truncate_c_string machine; + uts_domainname = truncate_c_string domainname } | { _ } -> None -let find_utsname debug ({ domname = name; mem = mem } as image) ksymmap = +let find_utsname debug ({ domname = name; mem = mem; ksyms = ksyms } + as kimage) = let utsname = (* In Linux 2.6.25, the symbol is init_uts_ns. * http://lxr.linux.no/linux/init/version.c *) try - let addr = Ksymmap.find "init_uts_ns" ksymmap in + let addr = Ksymmap.find "init_uts_ns" ksyms in let bs = Bitstring.bitstring_of_string (get_bytes mem addr (65*6+4)) in (bitmatch bs with @@ -71,15 +72,15 @@ let find_utsname debug ({ domname = name; mem = mem } as image) ksymmap = * http://lxr.linux.no/linux-bk+v2.6.9/include/linux/utsname.h#L24 *) try - let addr = Ksymmap.find "system_utsname" ksymmap in + let addr = Ksymmap.find "system_utsname" ksyms in let bits = Bitstring.bitstring_of_string (get_bytes mem addr (65*6)) in parse_utsname bits - with - Not_found -> - eprintf (f_"%s: could not find utsname in kernel image\n") - name; - None + with + Not_found -> + eprintf (f_"%s: could not find utsname in kernel image\n") + name; + None in - image, utsname + { kimage with utsname = utsname }