From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Michael Mueller" <mimu@linux.vnet.ibm.com>,
"Marcel Apfelbaum" <marcel.a@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Alexander Graf" <agraf@suse.de>,
"Christian Borntraeger" <borntraeger@de.ibm.com>,
"Jason J. Herne" <jjherne@linux.vnet.ibm.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [PATCH v2 14/17] accel: Pass MachineState object to accel init functions
Date: Fri, 29 Aug 2014 17:31:47 -0300 [thread overview]
Message-ID: <1409344310-5441-15-git-send-email-ehabkost@redhat.com> (raw)
In-Reply-To: <1409344310-5441-1-git-send-email-ehabkost@redhat.com>
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.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/core/accel.c | 11 ++++++-----
include/hw/accel.h | 4 ++--
include/qemu/typedefs.h | 1 +
kvm-all.c | 3 ++-
qtest.c | 2 +-
vl.c | 2 +-
xen-common.c | 2 +-
7 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/hw/core/accel.c b/hw/core/accel.c
index 55378f3..98fcf0d 100644
--- a/hw/core/accel.c
+++ b/hw/core/accel.c
@@ -24,6 +24,7 @@
*/
#include "hw/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/hw/accel.h b/include/hw/accel.h
index 8812cda..997720f 100644
--- a/include/hw/accel.h
+++ b/include/hw/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/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/kvm-all.c b/kvm-all.c
index dd03dc4..9815eaf 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1371,8 +1371,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 4051868..0dbcb58 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 911de91..8c52092 100644
--- a/vl.c
+++ b/vl.c
@@ -4177,7 +4177,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 246d76b..5616f0c 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.9.3
next prev parent reply other threads:[~2014-08-29 20:32 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 20:31 [Qemu-devel] [PATCH v2 00/17] QOMify accelerator code Eduardo Habkost
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 01/17] vl.c: Small coding style fix Eduardo Habkost
2014-09-26 15:11 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 02/17] accel: Move accel code to accel.c Eduardo Habkost
2014-09-26 15:00 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 03/17] accel: Create AccelType typedef Eduardo Habkost
2014-09-26 15:00 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 04/17] accel: Simplify configure_accelerator() using AccelType *acc variable Eduardo Habkost
2014-09-26 15:00 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 05/17] accel: Move accel name lookup to separate function Eduardo Habkost
2014-09-26 15:01 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 06/17] accel: Use QOM classes for accel types Eduardo Habkost
2014-09-26 15:02 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 07/17] accel: Make AccelClass.available() optional Eduardo Habkost
2014-09-26 15:02 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 08/17] accel: Move KVM accel registration to kvm-all.c Eduardo Habkost
2014-09-26 15:03 ` Paolo Bonzini
2014-09-26 15:03 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 09/17] accel: Move Xen registration code to xen-common.c Eduardo Habkost
2014-09-26 15:04 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 10/17] accel: Move qtest accel registration to qtest.c Eduardo Habkost
2014-09-26 15:04 ` Paolo Bonzini
2014-09-26 15:06 ` Paolo Bonzini
2014-09-26 19:37 ` Eduardo Habkost
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 11/17] accel: Remove tcg_available() function Eduardo Habkost
2014-09-26 15:05 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 12/17] accel: Move accel init/allowed code to separate function Eduardo Habkost
2014-09-26 15:05 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 13/17] accel: Rename 'init' method to 'init_machine' Eduardo Habkost
2014-09-26 15:09 ` Paolo Bonzini
2014-09-26 16:42 ` Eduardo Habkost
2014-08-29 20:31 ` Eduardo Habkost [this message]
2014-09-26 15:10 ` [Qemu-devel] [PATCH v2 14/17] accel: Pass MachineState object to accel init functions Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 15/17] accel: Create accel object when initializing machine Eduardo Habkost
2014-09-26 15:10 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 16/17] accel: Save AccelState on MachineState when initializing Eduardo Habkost
2014-09-26 15:11 ` Paolo Bonzini
2014-08-29 20:31 ` [Qemu-devel] [PATCH v2 17/17] kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct Eduardo Habkost
2014-09-26 15:11 ` Paolo Bonzini
2014-09-26 15:12 ` [Qemu-devel] [PATCH v2 00/17] QOMify accelerator code Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1409344310-5441-15-git-send-email-ehabkost@redhat.com \
--to=ehabkost@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=jjherne@linux.vnet.ibm.com \
--cc=marcel.a@redhat.com \
--cc=mimu@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).