machine: Replace QEMUMachine by MachineClass in accelerator configuration
This minimizes QEMUMachine usage, as part of machine QOM-ification. Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
aaa663916d
commit
f1e298794d
@ -3,12 +3,11 @@
|
||||
#ifndef HW_BOARDS_H
|
||||
#define HW_BOARDS_H
|
||||
|
||||
#include "qemu/typedefs.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/qdev.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
typedef struct MachineClass MachineClass;
|
||||
|
||||
typedef struct QEMUMachineInitArgs {
|
||||
const MachineClass *machine;
|
||||
ram_addr_t ram_size;
|
||||
|
@ -36,7 +36,7 @@ void xen_cmos_set_s3_resume(void *opaque, int irq, int level);
|
||||
|
||||
qemu_irq *xen_interrupt_controller_init(void);
|
||||
|
||||
int xen_init(QEMUMachine *machine);
|
||||
int xen_init(MachineClass *mc);
|
||||
int xen_hvm_init(MemoryRegion **ram_memory);
|
||||
void xenstore_store_pv_console_info(int i, struct CharDriverState *chr);
|
||||
|
||||
|
@ -31,6 +31,7 @@ typedef struct MemoryListener MemoryListener;
|
||||
typedef struct MemoryMappingList MemoryMappingList;
|
||||
|
||||
typedef struct QEMUMachine QEMUMachine;
|
||||
typedef struct MachineClass MachineClass;
|
||||
typedef struct NICInfo NICInfo;
|
||||
typedef struct HCIInfo HCIInfo;
|
||||
typedef struct AudioState AudioState;
|
||||
|
@ -152,7 +152,7 @@ extern KVMState *kvm_state;
|
||||
|
||||
/* external API */
|
||||
|
||||
int kvm_init(QEMUMachine *machine);
|
||||
int kvm_init(MachineClass *mc);
|
||||
|
||||
int kvm_has_sync_mmu(void);
|
||||
int kvm_has_vcpu_events(void);
|
||||
|
@ -26,7 +26,7 @@ static inline bool qtest_enabled(void)
|
||||
|
||||
bool qtest_driver(void);
|
||||
|
||||
int qtest_init_accel(QEMUMachine *machine);
|
||||
int qtest_init_accel(MachineClass *mc);
|
||||
void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp);
|
||||
|
||||
static inline int qtest_available(void)
|
||||
|
@ -1341,7 +1341,7 @@ static int kvm_max_vcpus(KVMState *s)
|
||||
return (ret) ? ret : kvm_recommended_vcpus(s);
|
||||
}
|
||||
|
||||
int kvm_init(QEMUMachine *machine)
|
||||
int kvm_init(MachineClass *mc)
|
||||
{
|
||||
static const char upgrade_note[] =
|
||||
"Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n"
|
||||
@ -1433,8 +1433,8 @@ int kvm_init(QEMUMachine *machine)
|
||||
}
|
||||
|
||||
kvm_type = qemu_opt_get(qemu_get_machine_opts(), "kvm-type");
|
||||
if (machine->kvm_type) {
|
||||
type = machine->kvm_type(kvm_type);
|
||||
if (mc->kvm_type) {
|
||||
type = mc->kvm_type(kvm_type);
|
||||
} else if (kvm_type) {
|
||||
fprintf(stderr, "Invalid argument kvm-type=%s\n", kvm_type);
|
||||
goto err;
|
||||
|
@ -34,7 +34,7 @@ int kvm_init_vcpu(CPUState *cpu)
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
int kvm_init(QEMUMachine *machine)
|
||||
int kvm_init(MachineClass *mc)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
2
qtest.c
2
qtest.c
@ -500,7 +500,7 @@ static void qtest_event(void *opaque, int event)
|
||||
}
|
||||
}
|
||||
|
||||
int qtest_init_accel(QEMUMachine *machine)
|
||||
int qtest_init_accel(MachineClass *mc)
|
||||
{
|
||||
configure_icount("0");
|
||||
|
||||
|
10
vl.c
10
vl.c
@ -2725,7 +2725,7 @@ static MachineClass *machine_parse(const char *name)
|
||||
exit(!name || !is_help_option(name));
|
||||
}
|
||||
|
||||
static int tcg_init(QEMUMachine *machine)
|
||||
static int tcg_init(MachineClass *mc)
|
||||
{
|
||||
tcg_exec_init(tcg_tb_size * 1024 * 1024);
|
||||
return 0;
|
||||
@ -2735,7 +2735,7 @@ static struct {
|
||||
const char *opt_name;
|
||||
const char *name;
|
||||
int (*available)(void);
|
||||
int (*init)(QEMUMachine *);
|
||||
int (*init)(MachineClass *mc);
|
||||
bool *allowed;
|
||||
} accel_list[] = {
|
||||
{ "tcg", "tcg", tcg_available, tcg_init, &tcg_allowed },
|
||||
@ -2744,7 +2744,7 @@ static struct {
|
||||
{ "qtest", "QTest", qtest_available, qtest_init_accel, &qtest_allowed },
|
||||
};
|
||||
|
||||
static int configure_accelerator(QEMUMachine *machine)
|
||||
static int configure_accelerator(MachineClass *mc)
|
||||
{
|
||||
const char *p;
|
||||
char buf[10];
|
||||
@ -2771,7 +2771,7 @@ static int configure_accelerator(QEMUMachine *machine)
|
||||
break;
|
||||
}
|
||||
*(accel_list[i].allowed) = true;
|
||||
ret = accel_list[i].init(machine);
|
||||
ret = accel_list[i].init(mc);
|
||||
if (ret < 0) {
|
||||
init_failed = true;
|
||||
fprintf(stderr, "failed to initialize %s: %s\n",
|
||||
@ -4222,7 +4222,7 @@ int main(int argc, char **argv, char **envp)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
configure_accelerator(machine);
|
||||
configure_accelerator(machine_class);
|
||||
|
||||
if (qtest_chrdev) {
|
||||
Error *local_err = NULL;
|
||||
|
@ -1001,7 +1001,7 @@ static void xen_exit_notifier(Notifier *n, void *data)
|
||||
xs_daemon_close(state->xenstore);
|
||||
}
|
||||
|
||||
int xen_init(QEMUMachine *machine)
|
||||
int xen_init(MachineClass *mc)
|
||||
{
|
||||
xen_xc = xen_xc_interface_open(0, 0, 0);
|
||||
if (xen_xc == XC_HANDLER_INITIAL_VALUE) {
|
||||
|
@ -47,7 +47,7 @@ qemu_irq *xen_interrupt_controller_init(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int xen_init(QEMUMachine *machine)
|
||||
int xen_init(MachineClass *mc)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user