Expect the sysname field to always be 'Linux'
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 3 Jun 2008 23:20:41 +0000 (00:20 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 3 Jun 2008 23:20:41 +0000 (00:20 +0100)
uname/virt_uname.ml

index 14a8bcc..fff6d7f 100644 (file)
@@ -49,16 +49,20 @@ let () =
       with
        Not_found -> str
     in
+    (* Expect the first (sysname) field to always be "Linux", which is
+     * also a good way to tell if we're synchronized to the right bit of
+     * memory.
+     *)
     bitmatch bs with
-    | { sysname : 65*8 : string;
+    | { "Linux\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" : 65*8 : string;
        nodename : 65*8 : string;
        release : 65*8 : string;
        version : 65*8 : string;
        machine : 65*8 : string;
        domainname : 65*8 : string } ->
-       printf "%s: %s %s %s %s %s %s\n"
+       printf "%s: Linux %s %s %s %s %s\n"
          name
-         (truncate sysname) (truncate nodename) (truncate release)
+         (truncate nodename) (truncate release)
          (truncate version) (truncate machine) (truncate domainname)
     | { _ } ->
        eprintf (f_"%s: unexpected system_utsname in kernel image\n")