]> Git Repo - qemu.git/commitdiff
accel: Pass MachineState object to accel init functions
authorEduardo Habkost <[email protected]>
Fri, 26 Sep 2014 20:45:30 +0000 (17:45 -0300)
committerPaolo Bonzini <[email protected]>
Thu, 9 Oct 2014 10:57:10 +0000 (12:57 +0200)
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 <[email protected]>
Signed-off-by: Eduardo Habkost <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
accel.c
include/hw/boards.h
include/qemu/typedefs.h
include/sysemu/accel.h
kvm-all.c
qtest.c
vl.c
xen-common.c

diff --git a/accel.c b/accel.c
index b151d558a5ffd414bc10d43ca9c2c72c2bb8b8e7..6087ab32b72cec61800b15289af041ab52dbb42d 100644 (file)
--- 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",
index dfb6718dc184c8c3eb0fe2392703a386f8efe767..0058c49d8d7bac9f8edf387fbf0f2913ff717400 100644 (file)
@@ -9,8 +9,6 @@
 #include "qom/object.h"
 
 
-typedef struct MachineState MachineState;
-
 typedef void QEMUMachineInitFunc(MachineState *ms);
 
 typedef void QEMUMachineResetFunc(void);
index 5f20b0e263dc8f95e2a9d54e6d8b62d5684cec1a..04df51b6fc8903b38c24dd8383e5e17a7e83519c 100644 (file)
@@ -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;
index 8812cdae21bf4c3553c78ad1f41f59c143f9c92b..997720f36c2399e16e916905f7a3f5d3b253eeaa 100644 (file)
@@ -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
index ce0e4c7e4091166c18854c579e53b4b375ec57cf..0a9de929e0b4387fbb7ddbb6d00fc93dc11773fc 100644 (file)
--- 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 18e26fc41ff8a722b380c3cc3e7753807e6eefd4..4b85995de00f36e8fec5d7249d6868b5279d26f3 100644 (file)
--- 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 c3def2166698357761e32ef667d4d464a49bd08e..020b7c3d76f6242b279d19ee0acc2da8bf0cb46a 100644 (file)
--- 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;
index acb738f2ff4b388a959c6855410d9cbcfc39aed6..56359ca725e64691f8cb606b5f497fd00999dd75 100644 (file)
@@ -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) {
This page took 0.039505 seconds and 4 git commands to generate.