aboutsummaryrefslogtreecommitdiff
path: root/include/sysemu/accel.h
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2017-06-27 12:10:11 +0800
committerJuan Quintela <quintela@redhat.com>2017-06-28 11:18:38 +0200
commit9ffea096b93388e4a3727ae766583715d9e61741 (patch)
tree8bcedda89066d756820cad82003cfb4697051f42 /include/sysemu/accel.h
parent60d7cacac8f08d7832b9b4081f32b8e953867b55 (diff)
accel: introduce AccelClass.global_props
Introduce this new field for the accelerator classes so that each specific accelerator in the future can register its own global properties to be used further by the system. It works just like how the old machine compatible properties do, but only tailored for accelerators. Introduce register_compat_props_array() for it. Export it so that it may be used in other codes as well in the future. Suggested-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <1498536619-14548-3-git-send-email-peterx@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'include/sysemu/accel.h')
-rw-r--r--include/sysemu/accel.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 15944c152c..ecc5c84621 100644
--- a/include/sysemu/accel.h
+++ b/include/sysemu/accel.h
@@ -24,6 +24,7 @@
#define HW_ACCEL_H
#include "qom/object.h"
+#include "hw/qdev-properties.h"
typedef struct AccelState {
/*< private >*/
@@ -40,6 +41,14 @@ typedef struct AccelClass {
int (*available)(void);
int (*init_machine)(MachineState *ms);
bool *allowed;
+ /*
+ * Array of global properties that would be applied when specific
+ * accelerator is chosen. It works like MachineClass.compat_props
+ * but it's for accelerators not machines. Accelerator-provided
+ * global properties may be overridden by machine-type
+ * compat_props or user-provided global properties.
+ */
+ GlobalProperty *global_props;
} AccelClass;
#define TYPE_ACCEL "accel"
@@ -57,5 +66,7 @@ typedef struct AccelClass {
extern int tcg_tb_size;
void configure_accelerator(MachineState *ms);
+/* Register accelerator specific global properties */
+void accel_register_compat_props(AccelState *accel);
#endif