diff options
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | kqemu.c | 3 | ||||
-rw-r--r-- | osdep.c | 13 |
3 files changed, 21 insertions, 0 deletions
@@ -151,6 +151,11 @@ if [ "$solaris" = "yes" ] ; then 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 @@ -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> @@ -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 @@ void *kqemu_vmalloc(size_t size) 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; |