1. 25 9月, 2015 12 次提交
    • L
      openrisc: remove muldiv64() · ccaf1749
      Laurent Vivier 提交于
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), TIMER_FREQ)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as openrisc timer frequency is 20 MHz, we can also do:
      
          y = x * 50; /* 20 MHz period is 50 ns */
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      ccaf1749
    • L
      mips: remove muldiv64() · 683dca6b
      Laurent Vivier 提交于
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), TIMER_FREQ)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as MIPS timer frequency is 100 MHz, we can also do:
      
          y = x * 10; /* 100 MHz period is 10 ns */
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: NLeon Alrae <leon.alrae@imgtec.com>
      683dca6b
    • L
      pcnet: remove muldiv64() · c6acbe86
      Laurent Vivier 提交于
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      c6acbe86
    • L
      rtl8139: remove muldiv64() · 37b9ab92
      Laurent Vivier 提交于
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      37b9ab92
    • L
      i6300esb: remove muldiv64() · 9491e9bc
      Laurent Vivier 提交于
      Originally, timers were ticks based, and it made sense to
      add ticks to current time to know when to trigger an alarm.
      
      But since commit:
      
      74475455 change all other clock references to use nanosecond resolution accessors
      
      All timers use nanoseconds and we need to convert ticks to nanoseconds, by
      doing something like:
      
          y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY)
      
      where x is the number of device ticks and y the number of system ticks.
      
      y is used as nanoseconds in timer functions,
      it works because 1 tick is 1 nanosecond.
      (get_ticks_per_sec() is 10^9)
      
      But as PCI frequency is 33 MHz, we can also do:
      
          y = x * 30; /* 33 MHz PCI period is 30 ns */
      
      Which is much more simple.
      
      This implies a 33.333333 MHz PCI frequency,
      but this is correct.
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      9491e9bc
    • P
      Merge remote-tracking branch 'remotes/weil/tags/pull-wxx-20150924' into staging · 8a47d575
      Peter Maydell 提交于
      wxx patch queue
      
      # gpg: Signature made Thu 24 Sep 2015 20:24:50 BST using RSA key ID 677450AD
      # gpg: Good signature from "Stefan Weil <sw@weilnetz.de>"
      # gpg:                 aka "Stefan Weil <stefan.weil@weilnetz.de>"
      # gpg:                 aka "Stefan Weil <stefan.weil@bib.uni-mannheim.de>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 4923 6FEA 75C9 5D69 8EC2  B78A E08C 21D5 6774 50AD
      
      * remotes/weil/tags/pull-wxx-20150924:
        oslib-win32: only provide localtime_r/gmtime_r if missing
        gtk: avoid redefining _WIN32_WINNT macro
        qemu-thread: add a fast path to the Win32 QemuEvent
        slirp: Fix non blocking connect for w32
        nsis: Add QEMU version information to Windows registry
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      8a47d575
    • D
      oslib-win32: only provide localtime_r/gmtime_r if missing · 4d9310f4
      Daniel P. Berrange 提交于
      The oslib-win32 file currently provides a localtime_r and
      gmtime_r replacement unconditionally. Some versions of
      Mingw-w64 would provide crude macros for localtime_r/gmtime_r
      which QEMU takes care to disable. Latest versions of Mingw-w64
      now provide actual functions for localtime_r/gmtime_r, but
      with a twist that you have to include unistd.h or pthread.h
      before including time.h.  By luck some files in QEMU have
      such an include order, resulting in compile errors:
      
        CC    util/osdep.o
      In file included from include/qemu-common.h:48:0,
                       from util/osdep.c:48:
      include/sysemu/os-win32.h:77:12: error: redundant redeclaration of 'gmtime_r' [-Werror=redundant-decls]
       struct tm *gmtime_r(const time_t *timep, struct tm *result);
                  ^
      In file included from include/qemu-common.h:35:0,
                       from util/osdep.c:48:
      /usr/i686-w64-mingw32/sys-root/mingw/include/time.h:272:107: note: previous definition of 'gmtime_r' was here
      In file included from include/qemu-common.h:48:0,
                       from util/osdep.c:48:
      include/sysemu/os-win32.h:79:12: error: redundant redeclaration of 'localtime_r' [-Werror=redundant-decls]
       struct tm *localtime_r(const time_t *timep, struct tm *result);
                  ^
      In file included from include/qemu-common.h:35:0,
                       from util/osdep.c:48:
      /usr/i686-w64-mingw32/sys-root/mingw/include/time.h:269:107: note: previous definition of 'localtime_r' was here
      
      This change adds a configure test to see if localtime_r
      exits, and only enables the QEMU impl if missing. We also
      re-arrange qemu-common.h try attempt to guarantee that all
      source files get unistd.h before time.h and thus see the
      localtime_r/gmtime_r defs.
      
      [sw: Use "official" spellings for Mingw-w64, MinGW in comments.]
      [sw: Terminate sentences with a dot in comments.]
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Reviewed-by: NDenis V. Lunev <den@openvz.org>
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      4d9310f4
    • D
      gtk: avoid redefining _WIN32_WINNT macro · c8f3f17c
      Daniel P. Berrange 提交于
      When building for Mingw64 target on Fedora 22 a warning
      is issued about _WIN32_WINNT being redefined.
      
      In file included from ui/gtk.c:40:0:
      include/ui/gtk.h:5:0: warning: "_WIN32_WINNT" redefined
       # define _WIN32_WINNT 0x0601 /* needed to get definition of MAPVK_VK_TO_VSC */
        ^
      In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/crtdefs.h:10:0,
                       from /usr/i686-w64-mingw32/sys-root/mingw/include/stdio.h:9,
                       from /home/berrange/src/virt/qemu/include/qemu/fprintf-fn.h:12,
                       from /home/berrange/src/virt/qemu/include/qemu-common.h:18,
                       from ui/gtk.c:37:
      /usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:225:0: note: this is the location of the previous definition
       #define _WIN32_WINNT 0x502
       ^
      
      Rather than try to get MAPVK_VK_TO_VSC defined indirectly
      by defining _WIN32_WINNT, instead just define it explicitly
      if missing.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      c8f3f17c
    • P
      qemu-thread: add a fast path to the Win32 QemuEvent · 7c9b2bf6
      Paolo Bonzini 提交于
      QemuEvents are used heavily by call_rcu.  We do not want them to be slow,
      but the current implementation does a kernel call on every invocation
      of qemu_event_* and won't cut it.
      
      So, wrap a Win32 manual-reset event with a fast userspace path.  The
      states and transitions are the same as for the futex and mutex/condvar
      implementations, but the slow path is different of course.  The idea
      is to reset the Win32 event lazily, as part of a test-reset-test-wait
      sequence.  Such a sequence is, indeed, how QemuEvents are used by
      RCU and other subsystems!
      
      The patch includes a formal model of the algorithm.
      Tested-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      7c9b2bf6
    • S
      slirp: Fix non blocking connect for w32 · a246a016
      Stefan Weil 提交于
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      a246a016
    • S
      nsis: Add QEMU version information to Windows registry · 805d8a67
      Stefan Weil 提交于
      The uninstall keys include an option key "DisplayVersion" which we set
      now. By default the version value is read from file VERSION, but it is
      also possible to pass VERSION=#.#.# to make.
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      805d8a67
    • P
      Merge remote-tracking branch 'remotes/elmarco/tags/rm-libcacard' into staging · 9438fe9e
      Peter Maydell 提交于
      Remove libcacard
      
      # gpg: Signature made Wed 23 Sep 2015 22:37:11 BST using RSA key ID 75969CE5
      # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>"
      # gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5
      
      * remotes/elmarco/tags/rm-libcacard:
        libcacard: use the standalone project
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      9438fe9e
  2. 24 9月, 2015 28 次提交