qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/33] Convert PC machine-types to QOM classes
@ 2014-08-14 19:25 Eduardo Habkost
  2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 01/33] pc: Replace tabs with spaces on pc.h Eduardo Habkost
                   ` (32 more replies)
  0 siblings, 33 replies; 43+ messages in thread
From: Eduardo Habkost @ 2014-08-14 19:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: Marcel Apfelbaum, Michael S. Tsirkin, Alexander Graf, Don Slutz,
	Igor Mammedov, Andreas Färber

Now all the PC machine-types are declared using only a class_init + TypeInfo
pair, and nothing else. In order to do that, all the code that was in the old
pc_compat_*() functions are represented using PCMachineClass fields.

Git tree:
    https://github.com/ehabkost/qemu-hacks/tree/pc-machine-class.v4

Changes v3 -> v4:
* Include CPU feature properties, so compat_props may be used for CPUID compat
  bits.
* Move KVM defaults to PCMachineClass.
* Use GList for compat_props instead of reusing GlobalProperty.next (we need to
  do that to allow the same GlobalProperty to be used on multiple subclasses).
* Finally eliminate all pc_compat_*() functions, and don't require a different
  init function for each PC machine-type version.

Eduardo Habkost (32):
  pc: Replace tabs with spaces on pc.h
  vl.c: Use qdev_prop_register_global() for single globals
  pc: Eliminate has_pci_info global variable
  piix: Add kvmclock_enabled, pci_enabled globals
  piix: Eliminate pc_init_pci()
  piix: Move pc-0.14 qxl compat properties to PC_COMPAT_0_14
  piix: Move pc-0.13 virtio-9p-pci compat to PC_COMPAT_0_13
  piix: Move pc-0.1[23] rombar compat props to PC_COMPAT_0_13
  piix: Move pc-0.11 drive version compat props to PC_COMPAT_0_11
  machine: Make compat_props a linked list
  pc: Register machine classes directly instead of using QEMUMachine
  pc: Eliminate pc_common_machine_options()
  pc: Eliminate pc_default_machine_options()
  piix: Eliminate pc_i440fx_machine_options()
  q35: Eliminate pc_q35_machine_options()
  q35: Eliminate pc_q35_1_4_machine_options()
  pc: Eliminate all *_machine_options() functions
  machine: Eliminate QEMUMachine.compat_props
  pc: Rename pc_machine variable to pcms
  pc: Pass PCMachineState argument to pc_cpus_init()
  machine: Add MachineClass.default_cpu_model field
  pc: Move globals to PCMachineClass
  pc: Move option_rom_has_mr/rom_file_has_mr to MachineClass
  pc: Add PCMachineClass.compat_apic_id_mode field
  target-i386: Move error handling to end of x86_cpu_parse_featurestr()
  target-i386: Renove underscores from feature names
  target-i386: Register X86CPU "feat-kvmclock" feature
  pc: Use compat_props for CPUID compat bits
  target-i386: Move some declarations to hw/i386/cpu.h
  pc: Add default KVM features fields to PCMachineClass
  pc: Eliminate pc_compat_*() functions
  piix: Move pc_xen_hvm_init() closer to xenfv_machine_class_init()

Igor Mammedov (1):
  target-i386: set [+-]feature using QOM properties

 hw/core/loader.c             |  12 +-
 hw/core/machine.c            |  26 ++
 hw/core/qdev-properties.c    |   9 -
 hw/i386/pc.c                 |  86 ++---
 hw/i386/pc_piix.c            | 764 ++++++++++++++++++++++---------------------
 hw/i386/pc_q35.c             | 271 +++++++--------
 include/hw/boards.h          |  25 +-
 include/hw/i386/cpu.h        | 564 ++++++++++++++++++++++++++++++++
 include/hw/i386/pc.h         |  51 +--
 include/hw/qdev-properties.h |   1 -
 target-i386/cpu.c            | 300 ++++++++---------
 target-i386/cpu.h            | 565 +-------------------------------
 vl.c                         |  47 +--
 13 files changed, 1378 insertions(+), 1343 deletions(-)
 create mode 100644 include/hw/i386/cpu.h

-- 
1.9.3

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2014-08-16 21:02 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-14 19:25 [Qemu-devel] [PATCH v4 00/33] Convert PC machine-types to QOM classes Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 01/33] pc: Replace tabs with spaces on pc.h Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 02/33] vl.c: Use qdev_prop_register_global() for single globals Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 03/33] pc: Eliminate has_pci_info global variable Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 04/33] piix: Add kvmclock_enabled, pci_enabled globals Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 05/33] piix: Eliminate pc_init_pci() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 06/33] piix: Move pc-0.14 qxl compat properties to PC_COMPAT_0_14 Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 07/33] piix: Move pc-0.13 virtio-9p-pci compat to PC_COMPAT_0_13 Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 08/33] piix: Move pc-0.1[23] rombar compat props " Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 09/33] piix: Move pc-0.11 drive version compat props to PC_COMPAT_0_11 Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 10/33] machine: Make compat_props a linked list Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 11/33] pc: Register machine classes directly instead of using QEMUMachine Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 12/33] pc: Eliminate pc_common_machine_options() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 13/33] pc: Eliminate pc_default_machine_options() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 14/33] piix: Eliminate pc_i440fx_machine_options() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 15/33] q35: Eliminate pc_q35_machine_options() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 16/33] q35: Eliminate pc_q35_1_4_machine_options() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 17/33] pc: Eliminate all *_machine_options() functions Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 18/33] machine: Eliminate QEMUMachine.compat_props Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 19/33] pc: Rename pc_machine variable to pcms Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 20/33] pc: Pass PCMachineState argument to pc_cpus_init() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 21/33] machine: Add MachineClass.default_cpu_model field Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 22/33] pc: Move globals to PCMachineClass Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 23/33] pc: Move option_rom_has_mr/rom_file_has_mr to MachineClass Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 24/33] pc: Add PCMachineClass.compat_apic_id_mode field Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 25/33] target-i386: Move error handling to end of x86_cpu_parse_featurestr() Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 26/33] target-i386: Renove underscores from feature names Eduardo Habkost
2014-08-14 19:31   ` Michael S. Tsirkin
2014-08-14 19:32     ` Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 27/33] target-i386: Register X86CPU "feat-kvmclock" feature Eduardo Habkost
2014-08-14 21:08   ` Michael S. Tsirkin
2014-08-14 23:59     ` Eduardo Habkost
2014-08-16 21:03       ` Michael S. Tsirkin
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 28/33] target-i386: set [+-]feature using QOM properties Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 29/33] pc: Use compat_props for CPUID compat bits Eduardo Habkost
2014-08-14 19:25 ` [Qemu-devel] [PATCH v4 30/33] target-i386: Move some declarations to hw/i386/cpu.h Eduardo Habkost
2014-08-14 19:26 ` [Qemu-devel] [PATCH v4 31/33] pc: Add default KVM features fields to PCMachineClass Eduardo Habkost
2014-08-14 21:09   ` Michael S. Tsirkin
2014-08-15  0:04     ` Eduardo Habkost
2014-08-14 19:26 ` [Qemu-devel] [PATCH v4 32/33] pc: Eliminate pc_compat_*() functions Eduardo Habkost
2014-08-14 19:26 ` [Qemu-devel] [PATCH v4 33/33] piix: Move pc_xen_hvm_init() closer to xenfv_machine_class_init() Eduardo Habkost
2014-08-14 20:03   ` Michael S. Tsirkin
2014-08-15  0:03     ` Eduardo Habkost

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).