MAP_PRIVATE|MAP_ANON also works on Solaris. In fact, Linux is the only platform where it doesn't work due to a bug in the Linux kernel as Fabrice mentions:
http://www.qemu.org/kqemu-tech.html#SEC7 Technically on Solaris, /tmp is probably the same thing as MAP_PRIVATE|MAP_ANON since the filesystem is actually mapped to virtual memory... however, it's much cleaner to not use a file if not necessary. I can post a reworked patch that makes the file mapping for the Linux case only if anyone's interested, but it's a pretty simple change. - Leo Reiter On 2/24/07, Juergen Lock <[EMAIL PROTECTED]> wrote:
In article <[EMAIL PROTECTED]> you write: >-=-=-=-=-=- > >Ok FreeBSD Support round one.. > >Be gentle this is my first attempt at working with the rest of this >community.. > >Files it modifies and the reasons are as follows > >configure - Adds HOST_FREEBSD type to alter included libraries FreeBSD does >not need -ltr >Makefile.target - Once again uses HOST_FREEBSD to avoid including -ltr > >osdeps.c - FreeBSD does not have /dev/shm so it uses /tmp for kqemu_valloc >also sys/vfs.h is not part of freebsd stat information is part of >mount.h/param.h >... Actually the port simply uses mmap MAP_PRIVATE|MAP_ANON, so no tempfile is used at all (this is files/patch-osdep.c in the port): Index: qemu/osdep.c @@ -79,7 +79,9 @@ #if defined(USE_KQEMU) +#ifndef __FreeBSD__ #include <sys/vfs.h> +#endif #include <sys/mman.h> #include <fcntl.h> @@ -90,6 +92,7 @@ const char *tmpdir; char phys_ram_file[1024]; void *ptr; +#ifndef __FreeBSD__ #ifdef HOST_SOLARIS struct statvfs stfs; #else @@ -151,12 +154,20 @@ } unlink(phys_ram_file); } +#endif size = (size + 4095) & ~4095; +#ifndef __FreeBSD__ ftruncate(phys_ram_fd, phys_ram_size + size); ptr = mmap(NULL, size, PROT_WRITE | PROT_READ, MAP_SHARED, phys_ram_fd, phys_ram_size); +#else + ptr = mmap(NULL, + size, + PROT_WRITE | PROT_READ, MAP_PRIVATE|MAP_ANON, + -1, 0); +#endif if (ptr == MAP_FAILED) { fprintf(stderr, "Could not map physical memory\n"); exit(1); _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
_______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel