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 #ifndef HW_BOARDS_H
#define HW_BOARDS_H #define HW_BOARDS_H
#include "qemu/typedefs.h"
#include "sysemu/blockdev.h" #include "sysemu/blockdev.h"
#include "hw/qdev.h" #include "hw/qdev.h"
#include "qom/object.h" #include "qom/object.h"
typedef struct MachineClass MachineClass;
typedef struct QEMUMachineInitArgs { typedef struct QEMUMachineInitArgs {
const MachineClass *machine; const MachineClass *machine;
ram_addr_t ram_size; 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); qemu_irq *xen_interrupt_controller_init(void);
int xen_init(QEMUMachine *machine); int xen_init(MachineClass *mc);
int xen_hvm_init(MemoryRegion **ram_memory); int xen_hvm_init(MemoryRegion **ram_memory);
void xenstore_store_pv_console_info(int i, struct CharDriverState *chr); 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 MemoryMappingList MemoryMappingList;
typedef struct QEMUMachine QEMUMachine; typedef struct QEMUMachine QEMUMachine;
typedef struct MachineClass MachineClass;
typedef struct NICInfo NICInfo; typedef struct NICInfo NICInfo;
typedef struct HCIInfo HCIInfo; typedef struct HCIInfo HCIInfo;
typedef struct AudioState AudioState; typedef struct AudioState AudioState;

View File

@ -152,7 +152,7 @@ extern KVMState *kvm_state;
/* external API */ /* external API */
int kvm_init(QEMUMachine *machine); int kvm_init(MachineClass *mc);
int kvm_has_sync_mmu(void); int kvm_has_sync_mmu(void);
int kvm_has_vcpu_events(void); int kvm_has_vcpu_events(void);

View File

@ -26,7 +26,7 @@ static inline bool qtest_enabled(void)
bool qtest_driver(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); void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp);
static inline int qtest_available(void) 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); return (ret) ? ret : kvm_recommended_vcpus(s);
} }
int kvm_init(QEMUMachine *machine) int kvm_init(MachineClass *mc)
{ {
static const char upgrade_note[] = static const char upgrade_note[] =
"Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n" "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"); kvm_type = qemu_opt_get(qemu_get_machine_opts(), "kvm-type");
if (machine->kvm_type) { if (mc->kvm_type) {
type = machine->kvm_type(kvm_type); type = mc->kvm_type(kvm_type);
} else if (kvm_type) { } else if (kvm_type) {
fprintf(stderr, "Invalid argument kvm-type=%s\n", kvm_type); fprintf(stderr, "Invalid argument kvm-type=%s\n", kvm_type);
goto err; goto err;

View File

@ -34,7 +34,7 @@ int kvm_init_vcpu(CPUState *cpu)
return -ENOSYS; return -ENOSYS;
} }
int kvm_init(QEMUMachine *machine) int kvm_init(MachineClass *mc)
{ {
return -ENOSYS; 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"); 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)); 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); tcg_exec_init(tcg_tb_size * 1024 * 1024);
return 0; return 0;
@ -2735,7 +2735,7 @@ static struct {
const char *opt_name; const char *opt_name;
const char *name; const char *name;
int (*available)(void); int (*available)(void);
int (*init)(QEMUMachine *); int (*init)(MachineClass *mc);
bool *allowed; bool *allowed;
} accel_list[] = { } accel_list[] = {
{ "tcg", "tcg", tcg_available, tcg_init, &tcg_allowed }, { "tcg", "tcg", tcg_available, tcg_init, &tcg_allowed },
@ -2744,7 +2744,7 @@ static struct {
{ "qtest", "QTest", qtest_available, qtest_init_accel, &qtest_allowed }, { "qtest", "QTest", qtest_available, qtest_init_accel, &qtest_allowed },
}; };
static int configure_accelerator(QEMUMachine *machine) static int configure_accelerator(MachineClass *mc)
{ {
const char *p; const char *p;
char buf[10]; char buf[10];
@ -2771,7 +2771,7 @@ static int configure_accelerator(QEMUMachine *machine)
break; break;
} }
*(accel_list[i].allowed) = true; *(accel_list[i].allowed) = true;
ret = accel_list[i].init(machine); ret = accel_list[i].init(mc);
if (ret < 0) { if (ret < 0) {
init_failed = true; init_failed = true;
fprintf(stderr, "failed to initialize %s: %s\n", fprintf(stderr, "failed to initialize %s: %s\n",
@ -4222,7 +4222,7 @@ int main(int argc, char **argv, char **envp)
exit(0); exit(0);
} }
configure_accelerator(machine); configure_accelerator(machine_class);
if (qtest_chrdev) { if (qtest_chrdev) {
Error *local_err = NULL; Error *local_err = NULL;

View File

@ -1001,7 +1001,7 @@ static void xen_exit_notifier(Notifier *n, void *data)
xs_daemon_close(state->xenstore); xs_daemon_close(state->xenstore);
} }
int xen_init(QEMUMachine *machine) int xen_init(MachineClass *mc)
{ {
xen_xc = xen_xc_interface_open(0, 0, 0); xen_xc = xen_xc_interface_open(0, 0, 0);
if (xen_xc == XC_HANDLER_INITIAL_VALUE) { if (xen_xc == XC_HANDLER_INITIAL_VALUE) {

View File

@ -47,7 +47,7 @@ qemu_irq *xen_interrupt_controller_init(void)
return NULL; return NULL;
} }
int xen_init(QEMUMachine *machine) int xen_init(MachineClass *mc)
{ {
return -ENOSYS; return -ENOSYS;
} }