This patch allows for the opensolaris kqemu module  to be activated under
a Solaris Express (11) host running qemu.

The solaris kqemu module is located at:

http://www.opensolaris.org/os/project/qemu/downloads/kqemu-osol-1.3.0pre9-v0.2.tar.gz

diff -ruN qemu-base/configure qemu/configure
--- qemu-base/configure	2007-01-05 16:25:54.000000000 -0500
+++ qemu/configure	2007-01-12 12:14:34.352357000 -0500
@@ -151,6 +151,11 @@
     make="gmake"
     install="ginstall"
     solarisrev=`uname -r | cut -f2 -d.`
+    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
+        if test "$solarisrev" -gt 10 ; then
+            kqemu="yes"
+        fi
+    fi
 fi
 
 # find source path
diff -ruN qemu-base/kqemu.c qemu/kqemu.c
--- qemu-base/kqemu.c	2006-10-02 13:58:33.000000000 -0400
+++ qemu/kqemu.c	2007-01-12 12:08:02.935409000 -0500
@@ -26,6 +26,9 @@
 #include <sys/mman.h>
 #include <sys/ioctl.h>
 #endif
+#ifdef HOST_SOLARIS
+#include <sys/modctl.h>
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
diff -ruN qemu-base/osdep.c qemu/osdep.c
--- qemu-base/osdep.c	2006-08-17 12:19:07.000000000 -0400
+++ qemu/osdep.c	2007-01-12 12:16:19.137607000 -0500
@@ -27,6 +27,10 @@
 #include <string.h>
 #include <errno.h>
 #include <unistd.h>
+#ifdef HOST_SOLARIS
+#include <sys/types.h>
+#include <sys/statvfs.h>
+#endif
 
 #include "cpu.h"
 #if defined(USE_KQEMU)
@@ -86,13 +90,22 @@
     const char *tmpdir;
     char phys_ram_file[1024];
     void *ptr;
+#ifdef HOST_SOLARIS
+    struct statvfs stfs;
+#else
     struct statfs stfs;
+#endif
 
     if (phys_ram_fd < 0) {
         tmpdir = getenv("QEMU_TMPDIR");
         if (!tmpdir)
+#ifdef HOST_SOLARIS
+            tmpdir = "/tmp";
+        if (statvfs(tmpdir, &stfs) == 0) {
+#else
             tmpdir = "/dev/shm";
         if (statfs(tmpdir, &stfs) == 0) {
+#endif
             int64_t free_space;
             int ram_mb;
 
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to