Commit 6cb7ee859a1b28aae8eab7f88908c9c9262b8a5c
1 parent
e4d165c2
Only use /dev/shm hack when kqemu is enabled.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1930 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
18 additions
and
4 deletions
osdep.c
@@ -29,6 +29,9 @@ | @@ -29,6 +29,9 @@ | ||
29 | #include <unistd.h> | 29 | #include <unistd.h> |
30 | 30 | ||
31 | #include "cpu.h" | 31 | #include "cpu.h" |
32 | +#if defined(USE_KQEMU) | ||
33 | +#include "vl.h" | ||
34 | +#endif | ||
32 | 35 | ||
33 | #if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) | 36 | #if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) |
34 | 37 | ||
@@ -321,13 +324,15 @@ void qemu_vfree(void *ptr) | @@ -321,13 +324,15 @@ void qemu_vfree(void *ptr) | ||
321 | VirtualFree(ptr, 0, MEM_RELEASE); | 324 | VirtualFree(ptr, 0, MEM_RELEASE); |
322 | } | 325 | } |
323 | 326 | ||
324 | -#elif defined(USE_KQEMU) | 327 | +#else |
328 | + | ||
329 | +#if defined(USE_KQEMU) | ||
325 | 330 | ||
326 | #include <sys/vfs.h> | 331 | #include <sys/vfs.h> |
327 | #include <sys/mman.h> | 332 | #include <sys/mman.h> |
328 | #include <fcntl.h> | 333 | #include <fcntl.h> |
329 | 334 | ||
330 | -void *qemu_vmalloc(size_t size) | 335 | +void *kqemu_vmalloc(size_t size) |
331 | { | 336 | { |
332 | static int phys_ram_fd = -1; | 337 | static int phys_ram_fd = -1; |
333 | static int phys_ram_size = 0; | 338 | static int phys_ram_size = 0; |
@@ -362,6 +367,7 @@ void *qemu_vmalloc(size_t size) | @@ -362,6 +367,7 @@ void *qemu_vmalloc(size_t size) | ||
362 | "QEMU_TMPDIR environment variable to set another directory where the QEMU\n" | 367 | "QEMU_TMPDIR environment variable to set another directory where the QEMU\n" |
363 | "temporary RAM file will be opened.\n"); | 368 | "temporary RAM file will be opened.\n"); |
364 | } | 369 | } |
370 | + fprintf(stderr, "Or disable the accelerator module with -no-kqemu\n"); | ||
365 | exit(1); | 371 | exit(1); |
366 | } | 372 | } |
367 | } | 373 | } |
@@ -403,16 +409,20 @@ void *qemu_vmalloc(size_t size) | @@ -403,16 +409,20 @@ void *qemu_vmalloc(size_t size) | ||
403 | return ptr; | 409 | return ptr; |
404 | } | 410 | } |
405 | 411 | ||
406 | -void qemu_vfree(void *ptr) | 412 | +void kqemu_vfree(void *ptr) |
407 | { | 413 | { |
408 | /* may be useful some day, but currently we do not need to free */ | 414 | /* may be useful some day, but currently we do not need to free */ |
409 | } | 415 | } |
410 | 416 | ||
411 | -#else | 417 | +#endif |
412 | 418 | ||
413 | /* alloc shared memory pages */ | 419 | /* alloc shared memory pages */ |
414 | void *qemu_vmalloc(size_t size) | 420 | void *qemu_vmalloc(size_t size) |
415 | { | 421 | { |
422 | +#if defined(USE_KQEMU) | ||
423 | + if (kqemu_allowed) | ||
424 | + return kqemu_vmalloc(size); | ||
425 | +#endif | ||
416 | #ifdef _BSD | 426 | #ifdef _BSD |
417 | return valloc(size); | 427 | return valloc(size); |
418 | #else | 428 | #else |
@@ -422,6 +432,10 @@ void *qemu_vmalloc(size_t size) | @@ -422,6 +432,10 @@ void *qemu_vmalloc(size_t size) | ||
422 | 432 | ||
423 | void qemu_vfree(void *ptr) | 433 | void qemu_vfree(void *ptr) |
424 | { | 434 | { |
435 | +#if defined(USE_KQEMU) | ||
436 | + if (kqemu_allowed) | ||
437 | + kqemu_vfree(ptr); | ||
438 | +#endif | ||
425 | free(ptr); | 439 | free(ptr); |
426 | } | 440 | } |
427 | 441 |