diff options
author | Juergen Lock <nox@FreeBSD.org> | 2009-03-08 17:09:43 +0000 |
---|---|---|
committer | Juergen Lock <nox@FreeBSD.org> | 2009-03-08 17:09:43 +0000 |
commit | e332617a7d04779931f8a5672946248611972643 (patch) | |
tree | 91300d0dc1bba025d68f3972602e7ebd337f8d6c /emulators/qemu/files/patch-dynticks | |
parent | Update to 0.7.22. (diff) |
Update to 0.10.0 - from the official changelog:
- TCG support (No longer requires GCC 3.x)
- Kernel Virtual Machine acceleration support [kernel bits not ported
to FreeBSD yet]
- BSD userspace emulation [untested on FreeBSD, probably doesn't work
at least for i386 hosts]
- Bluetooth emulation and host passthrough support [not ported to
FreeBSD yet]
- GDB XML register description support
- Intel e1000 emulation
- HPET emulation
- VirtIO paravirtual device support
- Marvell 88w8618 / MusicPal emulation
- Nokia N-series tablet emulation / OMAP2 processor emulation
- PCI hotplug support
- Live migration and new save/restore formats
- Curses display support
- qemu-nbd utility to mount supported block formats [not ported to
FreeBSD yet]
- Altivec support in PPC emulation and new firmware (OpenBIOS)
- Multiple VNC clients are now supported
- TLS encryption is now supported in VNC
- MIPS Magnum R4000 machine (Herve Poussineau)
- Braille support (Samuel Thibault)
- Freecom MusicPal system emulation (Jan Kiszka)
- OMAP242x and Nokia N800, N810 machines (Andrzej Zaborowski)
- EsounD audio driver (Frederick Reeve)
- Gravis Ultrasound GF1 sound card (Tibor "TS" Schuetz)
- Many, many, bug fixes and new features
Diffstat (limited to 'emulators/qemu/files/patch-dynticks')
-rw-r--r-- | emulators/qemu/files/patch-dynticks | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/emulators/qemu/files/patch-dynticks b/emulators/qemu/files/patch-dynticks new file mode 100644 index 000000000000..05633653d468 --- /dev/null +++ b/emulators/qemu/files/patch-dynticks @@ -0,0 +1,99 @@ +Index: qemu/configure +@@ -1025,11 +1025,26 @@ + rt=yes + fi + ++########################################## ++# posix timer probe ++cat > $TMPC <<EOF ++#include <time.h> ++int main(void) { timer_create(CLOCK_REALTIME, (struct sigevent *)NULL, (timer_t *)NULL); return 0; } ++EOF ++posixtimer=no ++if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then ++ posixtimer=yes ++elif $cc $ARCH_CFLAGS -o $TMPE $TMPC -lrt 2> /dev/null ; then ++ posixtimer=yes ++ rt=yes ++fi ++ + if test "$rt" = "yes" ; then + # Hack, we should have a general purpose LIBS for this sort of thing + AIOLIBS="$AIOLIBS -lrt" + fi + ++ + if test "$mingw32" = "yes" ; then + if test -z "$prefix" ; then + prefix="c:\\\\Program Files\\\\Qemu" +@@ -1403,6 +1418,9 @@ + echo "#define HAVE_FDT 1" >> $config_h + echo "FDT_LIBS=-lfdt" >> $config_mak + fi ++if test "$posixtimer" = "yes" ; then ++ echo "#define HAVE_POSIX_TIMER 1" >> $config_h ++fi + + # XXX: suppress that + if [ "$bsd" = "yes" ] ; then +Index: qemu/vl.c +@@ -918,12 +918,16 @@ + static int unix_start_timer(struct qemu_alarm_timer *t); + static void unix_stop_timer(struct qemu_alarm_timer *t); + +-#ifdef __linux__ ++#ifdef HAVE_POSIX_TIMER + + static int dynticks_start_timer(struct qemu_alarm_timer *t); + static void dynticks_stop_timer(struct qemu_alarm_timer *t); + static void dynticks_rearm_timer(struct qemu_alarm_timer *t); + ++#endif ++ ++#ifdef __linux__ ++ + static int hpet_start_timer(struct qemu_alarm_timer *t); + static void hpet_stop_timer(struct qemu_alarm_timer *t); + +@@ -1001,9 +1005,11 @@ + + static struct qemu_alarm_timer alarm_timers[] = { + #ifndef _WIN32 +-#ifdef __linux__ ++#ifdef HAVE_POSIX_TIMER + {"dynticks", ALARM_FLAG_DYNTICKS, dynticks_start_timer, + dynticks_stop_timer, dynticks_rearm_timer, NULL}, ++#endif ++#ifdef __linux__ + /* HPET - if available - is preferred */ + {"hpet", 0, hpet_start_timer, hpet_stop_timer, NULL, NULL}, + /* ...otherwise try RTC */ +@@ -1361,7 +1367,7 @@ + return delta; + } + +-#if defined(__linux__) || defined(_WIN32) ++#if defined(HAVE_POSIX_TIMER) || defined(_WIN32) + static uint64_t qemu_next_deadline_dyntick(void) + { + int64_t delta; +@@ -1506,6 +1512,10 @@ + close(rtc_fd); + } + ++#endif /* defined(__linux__) */ ++ ++#ifdef HAVE_POSIX_TIMER ++ + static int dynticks_start_timer(struct qemu_alarm_timer *t) + { + struct sigevent ev; +@@ -1577,7 +1587,7 @@ + } + } + +-#endif /* defined(__linux__) */ ++#endif /* defined(HAVE_POSIX_TIMER) */ + + static int unix_start_timer(struct qemu_alarm_timer *t) + { |