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:
Marcel Apfelbaum 2014-04-09 20:34:52 +03:00 committed by Andreas Färber
parent aaa663916d
commit f1e298794d
11 changed files with 17 additions and 17 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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);

View file

@ -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)

View file

@ -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;

View file

@ -34,7 +34,7 @@ int kvm_init_vcpu(CPUState *cpu)
return -ENOSYS;
}
int kvm_init(QEMUMachine *machine)
int kvm_init(MachineClass *mc)
{
return -ENOSYS;
}

View file

@ -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
View file

@ -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;

View file

@ -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) {

View file

@ -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;
}