1. 27 1月, 2018 1 次提交
  2. 06 12月, 2017 1 次提交
  3. 15 10月, 2017 1 次提交
  4. 17 5月, 2017 1 次提交
    • E
      qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable · e90f2a8c
      Eduardo Habkost 提交于
      cannot_instantiate_with_device_add_yet was introduced by commit
      efec3dd6 to replace no_user. It was
      supposed to be a temporary measure.
      
      When it was introduced, we had 54
      cannot_instantiate_with_device_add_yet=true lines in the code.
      Today (3 years later) this number has not shrunk: we now have
      57 cannot_instantiate_with_device_add_yet=true lines. I think it
      is safe to say it is not a temporary measure, and we won't see
      the flag go away soon.
      
      Instead of a long field name that misleads people to believe it
      is temporary, replace it a shorter and less misleading field:
      user_creatable.
      
      Except for code comments, changes were generated using the
      following Coccinelle patch:
      
        @@
        expression DC;
        @@
        (
        -DC->cannot_instantiate_with_device_add_yet = false;
        +DC->user_creatable = true;
        |
        -DC->cannot_instantiate_with_device_add_yet = true;
        +DC->user_creatable = false;
        )
      
        @@
        typedef ObjectClass;
        expression dc;
        identifier class, data;
        @@
         static void device_class_init(ObjectClass *class, void *data)
         {
         ...
         dc->hotpluggable = true;
        +dc->user_creatable = true;
         ...
         }
      
        @@
        @@
         struct DeviceClass {
         ...
        -bool cannot_instantiate_with_device_add_yet;
        +bool user_creatable;
         ...
        }
      
        @@
        expression DC;
        @@
        (
        -!DC->cannot_instantiate_with_device_add_yet
        +DC->user_creatable
        |
        -DC->cannot_instantiate_with_device_add_yet
        +!DC->user_creatable
        )
      
      Cc: Alistair Francis <alistair.francis@xilinx.com>
      Cc: Laszlo Ersek <lersek@redhat.com>
      Cc: Marcel Apfelbaum <marcel@redhat.com>
      Cc: Markus Armbruster <armbru@redhat.com>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: Thomas Huth <thuth@redhat.com>
      Acked-by: NAlistair Francis <alistair.francis@xilinx.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com>
      Acked-by: NMarcel Apfelbaum <marcel@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Message-Id: <20170503203604.31462-2-ehabkost@redhat.com>
      [ehabkost: kept "TODO remove once we're there" comment]
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      e90f2a8c
  5. 21 7月, 2016 1 次提交
  6. 29 1月, 2016 1 次提交
    • P
      ppc: Clean up includes · 0d75590d
      Peter Maydell 提交于
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      
      This commit was created with scripts/clean-includes.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1453832250-766-6-git-send-email-peter.maydell@linaro.org
      0d75590d
  7. 23 10月, 2015 1 次提交
  8. 26 2月, 2015 1 次提交
  9. 23 12月, 2013 3 次提交
    • M
      pci-host: Consistently set cannot_instantiate_with_device_add_yet · 08c58f92
      Markus Armbruster 提交于
      Many PCI host bridges consist of a sysbus device and a PCI device.
      You need both for the thing to work.  Arguably, these bridges should
      be modelled as a single, composite devices instead of pairs of
      seemingly independent devices you can only use together, but we're not
      there, yet.
      
      Since the sysbus part can't be instantiated with device_add, yet,
      permitting it with the PCI part is useless.  We shouldn't offer
      useless options to the user, so let's set
      cannot_instantiate_with_device_add_yet for them.
      
      It's already set for Bonito, Grackle, i440FX and Raven.  Document why.
      
      Set it for the others: dec-21154, e500-host-bridge, gt64120_pci, mch,
      pbm-pci, ppc4xx-host-bridge, sh_pci_host, u3-agp, uni-north-agp,
      uni-north-internal-pci, uni-north-pci, and versatile_pci_host.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      08c58f92
    • M
      sysbus: Set cannot_instantiate_with_device_add_yet · 837d3716
      Markus Armbruster 提交于
      device_add plugs devices into suitable bus.  For "real" buses, that
      actually connects the device.  For sysbus, the connections need to be
      made separately, and device_add can't do that.  The device would be
      left unconnected, and could not possibly work.
      
      Quite a few, but not all sysbus devices already set
      cannot_instantiate_with_device_add_yet in their class init function.
      
      Set it in their abstract base's class init function
      sysbus_device_class_init(), and remove the now redundant assignments
      from device class init functions.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      837d3716
    • M
      qdev: Replace no_user by cannot_instantiate_with_device_add_yet · efec3dd6
      Markus Armbruster 提交于
      In an ideal world, machines can be built by wiring devices together
      with configuration, not code.  Unfortunately, that's not the world we
      live in right now.  We still have quite a few devices that need to be
      wired up by code.  If you try to device_add such a device, it'll fail
      in sometimes mysterious ways.  If you're lucky, you get an
      unmysterious immediate crash.
      
      To protect users from such badness, DeviceClass member no_user used to
      make device models unavailable with -device / device_add, but that
      regressed in commit 18b6dade.  The device model is still omitted from
      help, but is available anyway.
      
      Attempts to fix the regression have been rejected with the argument
      that the purpose of no_user isn't clear, and it's prone to misuse.
      
      This commit clarifies no_user's purpose.  Anthony suggested to rename
      it cannot_instantiate_with_device_add_yet_due_to_internal_bugs, which
      I shorten somewhat to keep checkpatch happy.  While there, make it
      bool.
      
      Every use of cannot_instantiate_with_device_add_yet gets a FIXME
      comment asking for rationale.  The next few commits will clean them
      all up, either by providing a rationale, or by getting rid of the use.
      
      With that done, the regression fix is hopefully acceptable.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      efec3dd6
  10. 20 12月, 2013 1 次提交
    • A
      PPC: Use default pci bus name for grackle and heathrow · 8a0e1104
      Alexander Graf 提交于
      There's no good reason to call our bus "pci" rather than let the default
      bus name take over ("pci.0").
      
      The big downside to calling it different from anyone else is that tools
      that pass -device get confused. They are looking for a bus "pci.0" rather
      than "pci".
      
      To make life easier for everyone, let's just drop the name override.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      8a0e1104
  11. 04 7月, 2013 2 次提交
  12. 09 4月, 2013 2 次提交
  13. 27 3月, 2013 1 次提交
  14. 01 3月, 2013 1 次提交
    • P
      hw: include hw header files with full paths · 83c9f4ca
      Paolo Bonzini 提交于
      Done with this script:
      
      cd hw
      for i in `find . -name '*.h' | sed 's/^..//'`; do
        echo '\,^#.*include.*["<]'$i'[">], s,'$i',hw/&,'
      done | sed -i -f - `find . -type f`
      
      This is so that paths remain valid as files are moved.
      
      Instead, files in hw/dataplane are referenced with the relative path.
      We know they are not going to move to include/, and they are the only
      include files that are in subdirectories _and_ move.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      83c9f4ca
  15. 26 1月, 2013 1 次提交
  16. 17 12月, 2012 1 次提交
  17. 22 8月, 2012 4 次提交
  18. 15 2月, 2012 1 次提交
  19. 04 2月, 2012 1 次提交
    • A
      qdev: register all types natively through QEMU Object Model · 39bffca2
      Anthony Liguori 提交于
      This was done in a mostly automated fashion.  I did it in three steps and then
      rebased it into a single step which avoids repeatedly touching every file in
      the tree.
      
      The first step was a sed-based addition of the parent type to the subclass
      registration functions.
      
      The second step was another sed-based removal of subclass registration functions
      while also adding virtual functions from the base class into a class_init
      function as appropriate.
      
      Finally, a python script was used to convert the DeviceInfo structures and
      qdev_register_subclass functions to TypeInfo structures, class_init functions,
      and type_register_static calls.
      
      We are almost fully converted to QOM after this commit.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      39bffca2
  20. 28 1月, 2012 2 次提交
  21. 21 1月, 2012 1 次提交
  22. 28 11月, 2011 1 次提交
  23. 28 9月, 2011 1 次提交
  24. 04 9月, 2011 1 次提交
  25. 26 8月, 2011 1 次提交
  26. 25 8月, 2011 1 次提交
  27. 08 8月, 2011 1 次提交
  28. 29 7月, 2011 1 次提交
  29. 12 6月, 2011 1 次提交
  30. 07 3月, 2011 1 次提交
  31. 11 12月, 2010 1 次提交
  32. 12 7月, 2010 1 次提交
    • I
      pci: don't overwrite multi functio bit in pci header type. · b80d4a98
      Isaku Yamahata 提交于
      Don't overwrite pci header type.
      Otherwise, multi function bit which pci_init_header_type() sets
      appropriately is lost.
      Anyway PCI_HEADER_TYPE_NORMAL is zero, so it is unnecessary to zero
      which is already zero cleared.
      
      how to test:
      run qemu and issue info pci to see whether a device in question is
      normal device, not pci-to-pci bridge.
      This is handy because guest os isn't required.
      
      tested changes:
      The following files are covered by using following commands.
      sparc64-softmmu
        apb_pci.c, vga-pci.c, cmd646.c, ne2k_pci.c, sun4u.c
      ppc-softmmu
        grackle_pci.c, cmd646.c, ne2k_pci.c, vga-pci.c, macio.c
      ppc-softmmu -M mac99
        unin_pci.c(uni-north, uni-north-agp)
      ppc64-softmmu
        pci-ohci, ne2k_pci, vga-pci, unin_pci.c(u3-agp)
      x86_64-softmmu
        acpi_piix4.c, ide/piix.c, piix_pci.c
        -vga vmware vmware_vga.c
        -watchdog i6300esb wdt_i6300esb.c
        -usb usb-uhci.c
        -sound ac97 ac97.c
        -nic model=rtl8139 rtl8139.c
        -nic model=pcnet pcnet.c
        -balloon virtio virtio-pci.c:
      
      untested changes:
      The following changes aren't tested.
      prep_pci.c: ppc-softmmu -M prep should cover, but core dumped.
      unin_pci.c(uni-north-pci): the caller is commented out.
      openpic.c: the caller is commented out in ppc_prep.c
      Signed-off-by: NIsaku Yamahata <yamahata@valinux.co.jp>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      b80d4a98