1. 22 8月, 2011 1 次提交
    • B
      m48t59: avoid structure holes spotted by pahole · 42c812b9
      Blue Swirl 提交于
      Report from pahole on amd64 host:
      struct M48t59State {
      	uint32_t                   type;                 /*     0     4 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	qemu_irq                   IRQ;                  /*     8     8 */
      	uint32_t                   io_base;              /*    16     4 */
      	uint32_t                   size;                 /*    20     4 */
      	time_t                     time_offset;          /*    24     8 */
      	time_t                     stop_time;            /*    32     8 */
      	struct tm                  alarm;                /*    40    56 */
      	/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
      	struct QEMUTimer *         alrm_timer;           /*    96     8 */
      	struct QEMUTimer *         wd_timer;             /*   104     8 */
      	uint8_t                    lock;                 /*   112     1 */
      
      	/* XXX 1 byte hole, try to pack */
      
      	uint16_t                   addr;                 /*   114     2 */
      
      	/* XXX 4 bytes hole, try to pack */
      
      	uint8_t *                  buffer;               /*   120     8 */
      	/* --- cacheline 2 boundary (128 bytes) --- */
      
      	/* size: 128, cachelines: 2 */
      	/* sum members: 119, holes: 3, sum holes: 9 */
      };	/* definitions: 1 */
      
      Fix by rearranging the structure to avoid padding.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      42c812b9
  2. 21 8月, 2011 1 次提交
  3. 23 4月, 2011 1 次提交
  4. 21 3月, 2011 1 次提交
    • P
      change all other clock references to use nanosecond resolution accessors · 74475455
      Paolo Bonzini 提交于
      This was done with:
      
          sed -i 's/qemu_get_clock\>/qemu_get_clock_ns/' \
              $(git grep -l 'qemu_get_clock\>' )
          sed -i 's/qemu_new_timer\>/qemu_new_timer_ns/' \
              $(git grep -l 'qemu_new_timer\>' )
      
      after checking that get_clock and new_timer never occur twice
      on the same line.  There were no missed occurrences; however, even
      if there had been, they would have been caught by the compiler.
      
      There was exactly one false positive in qemu_run_timers:
      
           -    current_time = qemu_get_clock (clock);
           +    current_time = qemu_get_clock_ns (clock);
      
      which is of course not in this patch.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      74475455
  5. 17 1月, 2011 1 次提交
  6. 12 12月, 2010 1 次提交
  7. 11 12月, 2010 1 次提交
    • A
      Add endianness as io mem parameter · 2507c12a
      Alexander Graf 提交于
      As stated before, devices can be little, big or native endian. The
      target endianness is not of their concern, so we need to push things
      down a level.
      
      This patch adds a parameter to cpu_register_io_memory that allows a
      device to choose its endianness. For now, all devices simply choose
      native endian, because that's the same behavior as before.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      2507c12a
  8. 06 7月, 2010 1 次提交
  9. 07 2月, 2010 1 次提交
  10. 23 11月, 2009 1 次提交
  11. 25 10月, 2009 1 次提交
  12. 14 10月, 2009 1 次提交
  13. 07 10月, 2009 1 次提交
    • M
      New qdev_init_nofail() · e23a1b33
      Markus Armbruster 提交于
      Like qdev_init(), but terminate program via hw_error() instead of
      returning an error value.
      
      Use it instead of qdev_init() where terminating the program on failure
      is okay, either because it's during machine construction, or because
      we know that failure can't happen.
      
      Because relying in the latter is somewhat unclean, and the former is
      not always obvious, it would be nice to go back to qdev_init() in the
      not-so-obvious cases, only with proper error handling.  I'm leaving
      that for another day, because it involves making sure that error
      values are properly checked by all callers.
      
      Patchworks-ID: 35168
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      e23a1b33
  14. 02 10月, 2009 2 次提交
  15. 14 9月, 2009 1 次提交
  16. 28 8月, 2009 1 次提交
    • G
      qdev: add return value to init() callbacks. · 81a322d4
      Gerd Hoffmann 提交于
      Sorry folks, but it has to be.  One more of these invasive qdev patches.
      
      We have a serious design bug in the qdev interface:  device init
      callbacks can't signal failure because the init() callback has no
      return value.  This patch fixes it.
      
      We have already one case in-tree where this is needed:
      Try -device virtio-blk-pci (without drive= specified) and watch qemu
      segfault.  This patch fixes it.
      
      With usb+scsi being converted to qdev we'll get more devices where the
      init callback can fail for various reasons.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      81a322d4
  17. 26 8月, 2009 1 次提交
  18. 11 8月, 2009 1 次提交
  19. 17 7月, 2009 1 次提交
    • G
      qdev: rework device properties. · ee6847d1
      Gerd Hoffmann 提交于
      This patch is a major overhaul of the device properties.  The properties
      are saved directly in the device state struct now, the linked list of
      property values is gone.
      
      Advantages:
        * We don't have to maintain the list with the property values.
        * The value in the property list and the value actually used by
          the device can't go out of sync any more (used to happen for
          the pci.devfn == -1 case) because there is only one place where
          the value is stored.
        * A record describing the property is required now, you can't set
          random properties any more.
      
      There are bus-specific and device-specific properties.  The former
      should be used for properties common to all bus drivers.  Typical
      use case is bus addressing, i.e. pci.devfn and i2c.address.
      
      Properties have a PropertyInfo struct attached with name, size and
      function pointers to parse and print properties.  A few common property
      types have PropertyInfos defined in qdev-properties.c.  Drivers are free
      to implement their own very special property parsers if needed.
      
      Properties can have default values.  If unset they are zero-filled.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      ee6847d1
  20. 13 7月, 2009 1 次提交
  21. 30 6月, 2009 1 次提交
  22. 17 6月, 2009 1 次提交
  23. 22 5月, 2009 1 次提交
    • J
      Introduce reset notifier order · 8217606e
      Jan Kiszka 提交于
      Add the parameter 'order' to qemu_register_reset and sort callbacks on
      registration. On system reset, callbacks with lower order will be
      invoked before those with higher order. Update all existing users to the
      standard order 0.
      
      Note: At least for x86, the existing users seem to assume that handlers
      are called in their registration order. Therefore, the patch preserves
      this property. If someone feels bored, (s)he could try to identify this
      dependency and express it properly on callback registration.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      8217606e
  24. 14 5月, 2009 1 次提交
  25. 06 2月, 2009 1 次提交
  26. 29 12月, 2008 1 次提交
  27. 02 12月, 2008 1 次提交
  28. 17 2月, 2008 1 次提交
  29. 29 12月, 2007 2 次提交
  30. 18 11月, 2007 1 次提交
  31. 29 10月, 2007 1 次提交
  32. 30 9月, 2007 1 次提交
  33. 17 9月, 2007 2 次提交
  34. 04 8月, 2007 1 次提交
  35. 19 5月, 2007 1 次提交
  36. 14 4月, 2007 1 次提交
  37. 08 4月, 2007 1 次提交