1. 21 7月, 2012 1 次提交
  2. 29 6月, 2012 1 次提交
  3. 22 6月, 2012 1 次提交
  4. 15 6月, 2012 1 次提交
  5. 12 6月, 2012 6 次提交
    • M
      cleanup qemu_co_sendv(), qemu_co_recvv() and friends · 2fc8ae1d
      Michael Tokarev 提交于
      The same as for non-coroutine versions in previous
      patches: rename arguments to be more obvious, change
      type of arguments from int to size_t where appropriate,
      and use common code for send and receive paths (with
      one extra argument) since these are exactly the same.
      Use common iov_send_recv() directly.
      
      qemu_co_sendv(), qemu_co_recvv(), and qemu_co_recv()
      are now trivial #define's merely adding one extra arg.
      
      qemu_co_sendv() and qemu_co_recvv() callers are
      converted to different argument order and extra
      `iov_cnt' argument.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      2fc8ae1d
    • M
      rename qemu_sendv to iov_send, change proto and move declarations to iov.h · 3e80bf93
      Michael Tokarev 提交于
      Rename arguments and use size_t for sizes instead of int,
      from
       int
       qemu_sendv(int sockfd, struct iovec *iov,
                  int len, int iov_offset)
      to
       ssize_t
       iov_send(int sockfd, struct iovec *iov,
                size_t offset, size_t bytes)
      
      The main motivation was to make it clear that length
      and offset are in _bytes_, not in iov elements: it was
      very confusing before, because all standard functions
      which deals with iovecs expects number of iovs, not
      bytes, even the fact that struct iovec has iov_len and
      iov_ prefix does not help.  With "bytes" and "offset",
      especially since they're now size_t, it is much more
      explicit.  Also change the return type to be ssize_t
      instead of int.
      
      This also changes it to match other iov-related functons,
      but not _quite_: there's still no argument indicating
      where iovec ends, ie, no iov_cnt parameter as used
      in iov_size() and friends.  If will be added in subsequent
      patch/rewrite.
      
      All callers of qemu_sendv() and qemu_recvv() and
      related, like qemu_co_sendv() and qemu_co_recvv(),
      were checked to verify that it is safe to use unsigned
      datatype instead of int.
      
      Note that the order of arguments is changed to: offset
      and bytes (len and iov_offset) are swapped with each
      other.  This is to make them consistent with very similar
      functions from qemu_iovec family, where offset always
      follows qiov, to mean the place in it to start from.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      3e80bf93
    • M
      change qemu_iovec_to_buf() to match other to,from_buf functions · d5e6b161
      Michael Tokarev 提交于
      It now allows specifying offset within qiov to start from and
      amount of bytes to copy.  Actual implementation is just a call
      to iov_to_buf().
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      d5e6b161
    • M
      consolidate qemu_iovec_copy() and qemu_iovec_concat() and make them consistent · 1b093c48
      Michael Tokarev 提交于
      qemu_iovec_concat() is currently a wrapper for
      qemu_iovec_copy(), use the former (with extra
      "0" arg) in a few places where it is used.
      
      Change skip argument of qemu_iovec_copy() from
      uint64_t to size_t, since size of qiov itself
      is size_t, so there's no way to skip larger
      sizes.  Rename it to soffset, to make it clear
      that the offset is applied to src.
      
      Also change the only usage of uint64_t in
      hw/9pfs/virtio-9p.c, in v9fs_init_qiov_from_pdu() -
      all callers of it actually uses size_t too,
      not uint64_t.
      
      One added restriction: as for all other iovec-related
      functions, soffset must point inside src.
      
      Order of argumens is already good:
       qemu_iovec_memset(QEMUIOVector *qiov, size_t offset,
                         int c, size_t bytes)
      vs:
       qemu_iovec_concat(QEMUIOVector *dst,
                         QEMUIOVector *src,
                         size_t soffset, size_t sbytes)
      (note soffset is after _src_ not dst, since it applies to src;
      for memset it applies to qiov).
      
      Note that in many places where this function is used,
      the previous call is qemu_iovec_reset(), which means
      many callers actually want copy (replacing dst content),
      not concat.  So we may want to add a wrapper like
      qemu_iovec_copy() with the same arguments but which
      calls qemu_iovec_reset() before _concat().
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      1b093c48
    • M
      allow qemu_iovec_from_buffer() to specify offset from which to start copying · 03396148
      Michael Tokarev 提交于
      Similar to
       qemu_iovec_memset(QEMUIOVector *qiov, size_t offset,
                         int c, size_t bytes);
      the new prototype is:
       qemu_iovec_from_buf(QEMUIOVector *qiov, size_t offset,
                           const void *buf, size_t bytes);
      
      The processing starts at offset bytes within qiov.
      
      This way, we may copy a bounce buffer directly to
      a middle of qiov.
      
      This is exactly the same function as iov_from_buf() from
      iov.c, so use the existing implementation and rename it
      to qemu_iovec_from_buf() to be shorter and to match the
      utility function.
      
      As with utility implementation, we now assert that the
      offset is inside actual iovec.  Nothing changed for
      current callers, because `offset' parameter is new.
      
      While at it, stop using "bounce-qiov" in block/qcow2.c
      and copy decrypted data directly from cluster_data
      instead of recreating a temp qiov for doing that.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      03396148
    • M
      consolidate qemu_iovec_memset{,_skip}() into single function and use existing iov_memset() · 3d9b4925
      Michael Tokarev 提交于
      This patch combines two functions into one, and replaces
      the implementation with already existing iov_memset() from
      iov.c.
      
      The new prototype of qemu_iovec_memset():
        size_t qemu_iovec_memset(qiov, size_t offset, int fillc, size_t bytes)
      It is different from former qemu_iovec_memset_skip(), and
      I want to make other functions to be consistent with it
      too: first how much to skip, second what, and 3rd how many
      of it.  It also returns actual number of bytes filled in,
      which may be less than the requested `bytes' if qiov is
      smaller than offset+bytes, in the same way iov_memset()
      does.
      
      While at it, use utility function iov_memset() from
      iov.h in posix-aio-compat.c, where qiov was used.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      3d9b4925
  6. 17 5月, 2012 1 次提交
  7. 10 5月, 2012 1 次提交
  8. 30 3月, 2012 1 次提交
  9. 19 3月, 2012 1 次提交
  10. 16 3月, 2012 1 次提交
    • M
      shpc: standard hot plug controller · 1dc324d2
      Michael S. Tsirkin 提交于
      This adds support for SHPC interface, as defined by PCI Standard
      Hot-Plug Controller and Subsystem Specification, Rev 1.0
      http://www.pcisig.com/specifications/conventional/pci_hot_plug/SHPC_10
      
      Only SHPC intergrated with a PCI-to-PCI bridge is supported,
      SHPC integrated with a host bridge would need more work.
      
      All main SHPC features are supported:
      - MRL sensor
      - Attention button
      - Attention indicator
      - Power indicator
      
      Wake on hotplug and serr generation are stubbed out but unused
      as we don't have interfaces to generate these events ATM.
      
      One issue that isn't completely resolved is that qemu currently
      expects an "eject" interface, which SHPC does not provide: it merely
      removes the power to device and it's up to the user to remove the device
      from slot. This patch works around that by ejecting the device
      when power is removed and power LED goes off.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      1dc324d2
  11. 11 3月, 2012 1 次提交
  12. 29 2月, 2012 1 次提交
  13. 09 2月, 2012 1 次提交
  14. 07 2月, 2012 1 次提交
  15. 02 2月, 2012 1 次提交
    • J
      qdev: Introduce lost tick policy property · 4e4fa398
      Jan Kiszka 提交于
      Potentially tick-generating timer devices will gain a common property:
      lock_tick_policy. It allows to encode 4 different ways how to deal with
      tick events the guest did not process in time:
      
      discard - ignore lost ticks (e.g. if the guest compensates for them
                already)
      delay   - replay all lost ticks in a row once the guest accepts them
                again
      merge   - if multiple ticks are lost, all of them are merged into one
                which is replayed once the guest accepts it again
      slew    - lost ticks are gradually replayed at a higher frequency than
                the original tick
      
      Not all timer device will need to support all modes. However, all need
      to accept the configuration via this common property.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      4e4fa398
  16. 22 12月, 2011 1 次提交
  17. 21 12月, 2011 2 次提交
  18. 05 12月, 2011 1 次提交
  19. 02 11月, 2011 1 次提交
  20. 22 10月, 2011 3 次提交
  21. 23 9月, 2011 1 次提交
  22. 21 8月, 2011 2 次提交
  23. 05 8月, 2011 2 次提交
  24. 04 8月, 2011 1 次提交
  25. 02 8月, 2011 1 次提交
    • K
      async: Remove AsyncContext · 384acbf4
      Kevin Wolf 提交于
      The purpose of AsyncContexts was to protect qcow and qcow2 against reentrancy
      during an emulated bdrv_read/write (which includes a qemu_aio_wait() call and
      can run AIO callbacks of different requests if it weren't for AsyncContexts).
      
      Now both qcow and qcow2 are protected by CoMutexes and AsyncContexts can be
      removed.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      384acbf4
  26. 29 7月, 2011 1 次提交
  27. 25 7月, 2011 1 次提交
    • B
      Wrap recv to avoid warnings · 00aa0040
      Blue Swirl 提交于
      Avoid warnings like these by wrapping recv():
        CC    slirp/ip_icmp.o
      /src/qemu/slirp/ip_icmp.c: In function 'icmp_receive':
      /src/qemu/slirp/ip_icmp.c:418:5: error: passing argument 2 of 'recv' from incompatible pointer type [-Werror]
      /usr/local/lib/gcc/i686-mingw32msvc/4.6.0/../../../../i686-mingw32msvc/include/winsock2.h:547:32: note: expected 'char *' but argument is of type 'struct icmp *'
      
      Remove also casts used to avoid warnings.
      Reviewed-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      00aa0040
  28. 22 7月, 2011 1 次提交
    • L
      Introduce compiler.h header file · 5c026320
      Luiz Capitulino 提交于
      This moves compiler related macros from qemu-common.h to compiler.h.
      
      The reason for this change is that there are simple header files that
      depend only on the compiler macros, so including qemu-common.h is overkill.
      
      Besides, qemu-common.h is bloated and will benefit from some splitting.
      
      Please, also note that the QEMU_BUILD_BUG_ON() macro is being fixed to
      not use double underscores as a prefix and the license text was added
      by Vassili Karpov (malc), who is one of the authors of the new file.
      Signed-off-by: NLuiz Capitulino <lcapitulino@gmail.com>
      5c026320
  29. 13 7月, 2011 1 次提交
  30. 24 6月, 2011 1 次提交