We can make it a child of a generic "machine" class later, but right now a "PC" class is needed to allow global-properties to control some details of CPU creation on the PC code.
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> --- hw/pc.c | 18 ++++++++++++++++++ hw/pc.h | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/hw/pc.c b/hw/pc.c index 7e7e0e2..9b68282 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -550,6 +550,24 @@ static void bochs_bios_write(void *opaque, uint32_t addr, uint32_t val) } } +typedef struct PC { + DeviceState parent_obj; +} PC; + +static const TypeInfo pc_type_info = { + .name = TYPE_PC_MACHINE, + .parent = TYPE_DEVICE, + .instance_size = sizeof(PC), + .class_size = sizeof(DeviceClass), +}; + +static void pc_register_type(void) +{ + type_register_static(&pc_type_info); +} + +type_init(pc_register_type); + int e820_add_entry(uint64_t address, uint64_t length, uint32_t type) { int index = le32_to_cpu(e820_table.count); diff --git a/hw/pc.h b/hw/pc.h index e4db071..77e898f 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -102,6 +102,12 @@ void i8042_setup_a20_line(ISADevice *dev, qemu_irq *a20_out); /* pc.c */ extern int fd_bootchk; +#define TYPE_PC_MACHINE "PC" +#define PC(obj) \ + OBJECT_CHECK(PC, (obj), TYPE_PC_MACHINE) +struct PC; +typedef struct PC PC; + void pc_register_ferr_irq(qemu_irq irq); void pc_acpi_smi_interrupt(void *opaque, int irq, int level); -- 1.7.11.4