summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarcel Apfelbaum <marcel.a@redhat.com>2014-03-05 19:30:45 +0200
committerAndreas Färber <afaerber@suse.de>2014-03-12 20:13:02 +0100
commit36d20cb2b39311869b061e1669cb55ccbf0af759 (patch)
treeaadf05af30256ed9e1da1073a16c803b85b92ac3 /include
parent49649f23db977137c031a21eee2f0521404f6710 (diff)
downloadqemu-36d20cb2b39311869b061e1669cb55ccbf0af759.tar.gz
qemu-36d20cb2b39311869b061e1669cb55ccbf0af759.tar.bz2
qemu-36d20cb2b39311869b061e1669cb55ccbf0af759.zip
hw/core: Introduce QEMU machine as QOM object
The main functional change is to convert QEMUMachine into MachineClass and QEMUMachineInitArgs into MachineState, instance of MachineClass. As a first step, in order to make possible an incremental development, both QEMUMachine and QEMUMachineInitArgs are being embedded into the new types. Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/hw/boards.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/hw/boards.h b/include/hw/boards.h
index c2096e6ba2..1259010517 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -6,6 +6,7 @@
#include "sysemu/blockdev.h"
#include "sysemu/qemumachine.h"
#include "hw/qdev.h"
+#include "qom/object.h"
typedef struct QEMUMachineInitArgs {
const QEMUMachine *machine;
@@ -55,4 +56,53 @@ QEMUMachine *find_default_machine(void);
extern QEMUMachine *current_machine;
+#define TYPE_MACHINE "machine"
+#define MACHINE(obj) \
+ OBJECT_CHECK(MachineState, (obj), TYPE_MACHINE)
+#define MACHINE_GET_CLASS(obj) \
+ OBJECT_GET_CLASS(MachineClass, (obj), TYPE_MACHINE)
+#define MACHINE_CLASS(klass) \
+ OBJECT_CLASS_CHECK(MachineClass, (klass), TYPE_MACHINE)
+
+typedef struct MachineState MachineState;
+typedef struct MachineClass MachineClass;
+
+/**
+ * MachineClass:
+ * @qemu_machine: #QEMUMachine
+ */
+struct MachineClass {
+ /*< private >*/
+ ObjectClass parent_class;
+ /*< public >*/
+
+ QEMUMachine *qemu_machine;
+};
+
+/**
+ * MachineState:
+ */
+struct MachineState {
+ /*< private >*/
+ Object parent_obj;
+ /*< public >*/
+
+ char *accel;
+ bool kernel_irqchip;
+ int kvm_shadow_mem;
+ char *kernel;
+ char *initrd;
+ char *append;
+ char *dtb;
+ char *dumpdtb;
+ int phandle_start;
+ char *dt_compatible;
+ bool dump_guest_core;
+ bool mem_merge;
+ bool usb;
+ char *firmware;
+
+ QEMUMachineInitArgs init_args;
+};
+
#endif