[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 21/28] accel: Pass MachineState object to accel init
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 21/28] accel: Pass MachineState object to accel init functions |
Date: |
Thu, 9 Oct 2014 12:17:28 +0200 |
From: Eduardo Habkost <address@hidden>
Most of the machine options and machine state information is in the
MachineState object, not on the MachineClass. This will allow init
functions to use the MachineState object directly instead of
qemu_get_machine_opts() or the current_machine global.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
accel.c | 11 ++++++-----
include/qemu/typedefs.h | 1 +
include/sysemu/accel.h | 4 ++--
kvm-all.c | 3 ++-
qtest.c | 2 +-
vl.c | 2 +-
xen-common.c | 2 +-
7 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/accel.c b/accel.c
index b151d55..6087ab3 100644
--- a/accel.c
+++ b/accel.c
@@ -24,6 +24,7 @@
*/
#include "sysemu/accel.h"
+#include "hw/boards.h"
#include "qemu-common.h"
#include "sysemu/arch_init.h"
#include "sysemu/sysemu.h"
@@ -35,7 +36,7 @@
int tcg_tb_size;
static bool tcg_allowed = true;
-static int tcg_init(MachineClass *mc)
+static int tcg_init(MachineState *ms)
{
tcg_exec_init(tcg_tb_size * 1024 * 1024);
return 0;
@@ -57,18 +58,18 @@ static AccelClass *accel_find(const char *opt_name)
return ac;
}
-static int accel_init_machine(AccelClass *acc, MachineClass *mc)
+static int accel_init_machine(AccelClass *acc, MachineState *ms)
{
int ret;
*(acc->allowed) = true;
- ret = acc->init_machine(mc);
+ ret = acc->init_machine(ms);
if (ret < 0) {
*(acc->allowed) = false;
}
return ret;
}
-int configure_accelerator(MachineClass *mc)
+int configure_accelerator(MachineState *ms)
{
const char *p;
char buf[10];
@@ -98,7 +99,7 @@ int configure_accelerator(MachineClass *mc)
acc->name);
continue;
}
- ret = accel_init_machine(acc, mc);
+ ret = accel_init_machine(acc, ms);
if (ret < 0) {
init_failed = true;
fprintf(stderr, "failed to initialize %s: %s\n",
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index 5f20b0e..04df51b 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -32,6 +32,7 @@ typedef struct MemoryMappingList MemoryMappingList;
typedef struct QEMUMachine QEMUMachine;
typedef struct MachineClass MachineClass;
+typedef struct MachineState MachineState;
typedef struct NICInfo NICInfo;
typedef struct HCIInfo HCIInfo;
typedef struct AudioState AudioState;
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 8812cda..997720f 100644
--- a/include/sysemu/accel.h
+++ b/include/sysemu/accel.h
@@ -39,7 +39,7 @@ typedef struct AccelClass {
const char *opt_name;
const char *name;
int (*available)(void);
- int (*init_machine)(MachineClass *mc);
+ int (*init_machine)(MachineState *ms);
bool *allowed;
} AccelClass;
@@ -57,6 +57,6 @@ typedef struct AccelClass {
extern int tcg_tb_size;
-int configure_accelerator(MachineClass *mc);
+int configure_accelerator(MachineState *ms);
#endif
diff --git a/kvm-all.c b/kvm-all.c
index ce0e4c7..0a9de92 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1380,8 +1380,9 @@ static int kvm_max_vcpus(KVMState *s)
return (ret) ? ret : kvm_recommended_vcpus(s);
}
-static int kvm_init(MachineClass *mc)
+static int kvm_init(MachineState *ms)
{
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
static const char upgrade_note[] =
"Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n"
"(see http://sourceforge.net/projects/kvm).\n";
diff --git a/qtest.c b/qtest.c
index 18e26fc..4b85995 100644
--- a/qtest.c
+++ b/qtest.c
@@ -520,7 +520,7 @@ static void configure_qtest_icount(const char *options)
qemu_opts_del(opts);
}
-static int qtest_init_accel(MachineClass *mc)
+static int qtest_init_accel(MachineState *ms)
{
configure_qtest_icount("0");
return 0;
diff --git a/vl.c b/vl.c
index c3def21..020b7c3 100644
--- a/vl.c
+++ b/vl.c
@@ -4179,7 +4179,7 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
- configure_accelerator(machine_class);
+ configure_accelerator(current_machine);
if (qtest_chrdev) {
Error *local_err = NULL;
diff --git a/xen-common.c b/xen-common.c
index acb738f..56359ca 100644
--- a/xen-common.c
+++ b/xen-common.c
@@ -110,7 +110,7 @@ static void xen_change_state_handler(void *opaque, int
running,
}
}
-static int xen_init(MachineClass *mc)
+static int xen_init(MachineState *ms)
{
xen_xc = xen_xc_interface_open(0, 0, 0);
if (xen_xc == XC_HANDLER_INITIAL_VALUE) {
--
1.8.3.1
- [Qemu-devel] [PULL 02/28] qemu-char: Rework qemu_chr_open_socket() for reconnect, (continued)
- [Qemu-devel] [PULL 02/28] qemu-char: Rework qemu_chr_open_socket() for reconnect, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 03/28] qemu-char: Move some items into TCPCharDriver, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 04/28] qemu-char: set socket filename to disconnected when not connected, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 05/28] qemu-char: Add reconnecting to client sockets, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 06/28] qemu-char: Print the remote and local addresses for a socket, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 17/28] accel: Move qtest accel registration to qtest.c, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 18/28] accel: Remove tcg_available() function, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 19/28] accel: Move accel init/allowed code to separate function, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 20/28] accel: Rename 'init' method to 'init_machine', Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 22/28] accel: Create accel object when initializing machine, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 21/28] accel: Pass MachineState object to accel init functions,
Paolo Bonzini <=
- [Qemu-devel] [PULL 26/28] qemu-error: Add error_vreport(), Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 27/28] qemu-sockets: Add error to non-blocking connect handler, Paolo Bonzini, 2014/10/09
- [Qemu-devel] [PULL 23/28] kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct, Paolo Bonzini, 2014/10/09
- Re: [Qemu-devel] [PULL 23/28] kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct, Gonglei, 2014/10/10
[Qemu-devel] [PULL 28/28] qemu-char: Fix reconnect socket error reporting, Paolo Bonzini, 2014/10/09
[Qemu-devel] [PULL 25/28] virtio-scsi: fix use-after-free of VirtIOSCSIReq, Paolo Bonzini, 2014/10/09