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
* 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, ksymmap, utsname)
+ { kimage with utsname = utsname }