hw/arm/virt: move VirtMachineState/Class to virt.h
In preparation to share more Virt machine state than just guest-info with other mach-virt source files, move the State and Class structures to virt.h Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Message-id: 20170102200153.28864-10-drjones@redhat.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d05fdab46d
commit
a72d436387
|
@ -41,7 +41,6 @@
|
||||||
#include "sysemu/numa.h"
|
#include "sysemu/numa.h"
|
||||||
#include "sysemu/sysemu.h"
|
#include "sysemu/sysemu.h"
|
||||||
#include "sysemu/kvm.h"
|
#include "sysemu/kvm.h"
|
||||||
#include "hw/boards.h"
|
|
||||||
#include "hw/compat.h"
|
#include "hw/compat.h"
|
||||||
#include "hw/loader.h"
|
#include "hw/loader.h"
|
||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
|
@ -58,49 +57,6 @@
|
||||||
#include "qapi/visitor.h"
|
#include "qapi/visitor.h"
|
||||||
#include "standard-headers/linux/input.h"
|
#include "standard-headers/linux/input.h"
|
||||||
|
|
||||||
/* Number of external interrupt lines to configure the GIC with */
|
|
||||||
#define NUM_IRQS 256
|
|
||||||
|
|
||||||
#define PLATFORM_BUS_NUM_IRQS 64
|
|
||||||
|
|
||||||
static ARMPlatformBusSystemParams platform_bus_params;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
MachineClass parent;
|
|
||||||
bool disallow_affinity_adjustment;
|
|
||||||
bool no_its;
|
|
||||||
bool no_pmu;
|
|
||||||
bool claim_edge_triggered_timers;
|
|
||||||
} VirtMachineClass;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
MachineState parent;
|
|
||||||
VirtGuestInfo acpi_guest_info;
|
|
||||||
Notifier machine_done;
|
|
||||||
bool secure;
|
|
||||||
bool highmem;
|
|
||||||
int32_t gic_version;
|
|
||||||
struct arm_boot_info bootinfo;
|
|
||||||
const MemMapEntry *memmap;
|
|
||||||
const int *irqmap;
|
|
||||||
int smp_cpus;
|
|
||||||
void *fdt;
|
|
||||||
int fdt_size;
|
|
||||||
uint32_t clock_phandle;
|
|
||||||
uint32_t gic_phandle;
|
|
||||||
uint32_t msi_phandle;
|
|
||||||
bool using_psci;
|
|
||||||
} VirtMachineState;
|
|
||||||
|
|
||||||
#define TYPE_VIRT_MACHINE MACHINE_TYPE_NAME("virt")
|
|
||||||
#define VIRT_MACHINE(obj) \
|
|
||||||
OBJECT_CHECK(VirtMachineState, (obj), TYPE_VIRT_MACHINE)
|
|
||||||
#define VIRT_MACHINE_GET_CLASS(obj) \
|
|
||||||
OBJECT_GET_CLASS(VirtMachineClass, obj, TYPE_VIRT_MACHINE)
|
|
||||||
#define VIRT_MACHINE_CLASS(klass) \
|
|
||||||
OBJECT_CLASS_CHECK(VirtMachineClass, klass, TYPE_VIRT_MACHINE)
|
|
||||||
|
|
||||||
|
|
||||||
#define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
|
#define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
|
||||||
static void virt_##major##_##minor##_class_init(ObjectClass *oc, \
|
static void virt_##major##_##minor##_class_init(ObjectClass *oc, \
|
||||||
void *data) \
|
void *data) \
|
||||||
|
@ -130,6 +86,13 @@ typedef struct {
|
||||||
DEFINE_VIRT_MACHINE_LATEST(major, minor, false)
|
DEFINE_VIRT_MACHINE_LATEST(major, minor, false)
|
||||||
|
|
||||||
|
|
||||||
|
/* Number of external interrupt lines to configure the GIC with */
|
||||||
|
#define NUM_IRQS 256
|
||||||
|
|
||||||
|
#define PLATFORM_BUS_NUM_IRQS 64
|
||||||
|
|
||||||
|
static ARMPlatformBusSystemParams platform_bus_params;
|
||||||
|
|
||||||
/* RAM limit in GB. Since VIRT_MEM starts at the 1GB mark, this means
|
/* RAM limit in GB. Since VIRT_MEM starts at the 1GB mark, this means
|
||||||
* RAM can go up to the 256GB mark, leaving 256GB of the physical
|
* RAM can go up to the 256GB mark, leaving 256GB of the physical
|
||||||
* address space unallocated and free for future use between 256G and 512G.
|
* address space unallocated and free for future use between 256G and 512G.
|
||||||
|
|
|
@ -33,6 +33,8 @@
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "exec/hwaddr.h"
|
#include "exec/hwaddr.h"
|
||||||
#include "qemu/notify.h"
|
#include "qemu/notify.h"
|
||||||
|
#include "hw/boards.h"
|
||||||
|
#include "hw/arm/arm.h"
|
||||||
|
|
||||||
#define NUM_GICV2M_SPIS 64
|
#define NUM_GICV2M_SPIS 64
|
||||||
#define NUM_VIRTIO_TRANSPORTS 32
|
#define NUM_VIRTIO_TRANSPORTS 32
|
||||||
|
@ -85,6 +87,41 @@ typedef struct VirtGuestInfo {
|
||||||
bool no_its;
|
bool no_its;
|
||||||
} VirtGuestInfo;
|
} VirtGuestInfo;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MachineClass parent;
|
||||||
|
bool disallow_affinity_adjustment;
|
||||||
|
bool no_its;
|
||||||
|
bool no_pmu;
|
||||||
|
bool claim_edge_triggered_timers;
|
||||||
|
} VirtMachineClass;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MachineState parent;
|
||||||
|
VirtGuestInfo acpi_guest_info;
|
||||||
|
Notifier machine_done;
|
||||||
|
bool secure;
|
||||||
|
bool highmem;
|
||||||
|
int32_t gic_version;
|
||||||
|
struct arm_boot_info bootinfo;
|
||||||
|
const MemMapEntry *memmap;
|
||||||
|
const int *irqmap;
|
||||||
|
int smp_cpus;
|
||||||
|
void *fdt;
|
||||||
|
int fdt_size;
|
||||||
|
uint32_t clock_phandle;
|
||||||
|
uint32_t gic_phandle;
|
||||||
|
uint32_t msi_phandle;
|
||||||
|
bool using_psci;
|
||||||
|
} VirtMachineState;
|
||||||
|
|
||||||
|
#define TYPE_VIRT_MACHINE MACHINE_TYPE_NAME("virt")
|
||||||
|
#define VIRT_MACHINE(obj) \
|
||||||
|
OBJECT_CHECK(VirtMachineState, (obj), TYPE_VIRT_MACHINE)
|
||||||
|
#define VIRT_MACHINE_GET_CLASS(obj) \
|
||||||
|
OBJECT_GET_CLASS(VirtMachineClass, obj, TYPE_VIRT_MACHINE)
|
||||||
|
#define VIRT_MACHINE_CLASS(klass) \
|
||||||
|
OBJECT_CLASS_CHECK(VirtMachineClass, klass, TYPE_VIRT_MACHINE)
|
||||||
|
|
||||||
void virt_acpi_setup(VirtGuestInfo *guest_info);
|
void virt_acpi_setup(VirtGuestInfo *guest_info);
|
||||||
|
|
||||||
#endif /* QEMU_ARM_VIRT_H */
|
#endif /* QEMU_ARM_VIRT_H */
|
||||||
|
|
Loading…
Reference in a new issue