mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
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>
This commit is contained in:
parent
49649f23db
commit
36d20cb2b3
3 changed files with 79 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue