diff options
Diffstat (limited to 'emulators/qemu/files/patch-vl.c')
-rw-r--r-- | emulators/qemu/files/patch-vl.c | 73 |
1 files changed, 23 insertions, 50 deletions
diff --git a/emulators/qemu/files/patch-vl.c b/emulators/qemu/files/patch-vl.c index a69e42ffd8ba..44684c7ce36b 100644 --- a/emulators/qemu/files/patch-vl.c +++ b/emulators/qemu/files/patch-vl.c @@ -1,55 +1,28 @@ Index: qemu/vl.c -@@ -1727,6 +1728,7 @@ - chr->chr_ioctl = pp_ioctl; - return chr; - } -+#endif /* defined(__linux__) */ - +@@ -75,6 +75,7 @@ + #include <sys/stat.h> + #ifdef __FreeBSD__ + #include <libutil.h> ++#include <sys/param.h> #else - CharDriverState *qemu_chr_open_pty(void) -@@ -1771,14 +1771,14 @@ - return chr; - } - --#if defined(__linux__) || defined(__sun__) -+#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) - static CharDriverState *qemu_chr_open_pty(void) - { - struct termios tty; - char slave_name[1024]; - int master_fd, slave_fd; - --#if defined(__linux__) -+#if defined(__linux__) || defined(__FreeBSD__) - /* Not satisfying */ - if (openpty(&master_fd, &slave_fd, slave_name, NULL, NULL) < 0) { - return NULL; -@@ -3036,7 +3036,7 @@ - return qemu_chr_open_pp(filename); - } else + #include <util.h> #endif --#if defined(__linux__) || defined(__sun__) -+#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) - if (strstart(filename, "/dev/", NULL)) { - return qemu_chr_open_tty(filename); - } else -@@ -8423,6 +8423,11 @@ - nb_nics = 0; - /* default mac address of the first network interface */ +@@ -9850,15 +9850,15 @@ + phys_ram_size += ram_size; + } -+#ifdef __FreeBSD__ -+ if (modfind("aio") == -1) -+ fprintf(stderr, "warning: aio not (kld)loaded, may cause `Invalid system call' traps on disk IO\n"); -+#endif ++ /* init the dynamic translator */ ++ cpu_exec_init_all(tb_size * 1024 * 1024); + - optind = 1; - for(;;) { - if (optind >= argc) -@@ -8784,6 +8784,7 @@ - #ifdef TARGET_ARM - case QEMU_OPTION_old_param: - old_param = 1; -+ break; - #endif - case QEMU_OPTION_clock: - configure_alarms(optarg); + phys_ram_base = qemu_vmalloc(phys_ram_size); + if (!phys_ram_base) { + fprintf(stderr, "Could not allocate physical memory\n"); + exit(1); + } + +- /* init the dynamic translator */ +- cpu_exec_init_all(tb_size * 1024 * 1024); +- + bdrv_init(); + + /* we always create the cdrom drive, even if no disk is there */ |