[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v1 20/21] tpm: add a QOM TPM interface
From: |
Stefan Berger |
Subject: |
[Qemu-devel] [PULL v1 20/21] tpm: add a QOM TPM interface |
Date: |
Thu, 19 Oct 2017 14:02:54 -0400 |
From: Marc-André Lureau <address@hidden>
This will simplify backend / interface objects relationship, so the
frontend interface will simply have to implement the TPM QOM interface.
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Stefan Berger <address@hidden>
Signed-off-by: Stefan Berger <address@hidden>
---
backends/tpm.c | 8 ++++++++
hw/tpm/tpm_int.h | 17 +++++++++++++++++
hw/tpm/tpm_tis.c | 4 ++++
3 files changed, 29 insertions(+)
diff --git a/backends/tpm.c b/backends/tpm.c
index dc7c831..87c5c09 100644
--- a/backends/tpm.c
+++ b/backends/tpm.c
@@ -17,6 +17,7 @@
#include "qapi/error.h"
#include "qapi/qmp/qerror.h"
#include "sysemu/tpm.h"
+#include "hw/tpm/tpm_int.h"
#include "qemu/thread.h"
static void tpm_backend_worker_thread(gpointer data, gpointer user_data)
@@ -209,9 +210,16 @@ static const TypeInfo tpm_backend_info = {
.abstract = true,
};
+static const TypeInfo tpm_if_info = {
+ .name = TYPE_TPM_IF,
+ .parent = TYPE_INTERFACE,
+ .class_size = sizeof(TPMIfClass),
+};
+
static void register_types(void)
{
type_register_static(&tpm_backend_info);
+ type_register_static(&tpm_if_info);
}
type_init(register_types);
diff --git a/hw/tpm/tpm_int.h b/hw/tpm/tpm_int.h
index e231d0e..eb02e77 100644
--- a/hw/tpm/tpm_int.h
+++ b/hw/tpm/tpm_int.h
@@ -13,6 +13,23 @@
#define TPM_TPM_INT_H
#include "qemu/osdep.h"
+#include "qom/object.h"
+
+#define TYPE_TPM_IF "tpm-if"
+#define TPM_IF_CLASS(klass) \
+ OBJECT_CLASS_CHECK(TPMIfClass, (klass), TYPE_TPM_IF)
+#define TPM_IF_GET_CLASS(obj) \
+ OBJECT_GET_CLASS(TPMIfClass, (obj), TYPE_TPM_IF)
+#define TPM_IF(obj) \
+ INTERFACE_CHECK(TPMIf, (obj), TYPE_TPM_IF)
+
+typedef struct TPMIf {
+ Object parent_obj;
+} TPMIf;
+
+typedef struct TPMIfClass {
+ InterfaceClass parent_class;
+} TPMIfClass;
#define TPM_STANDARD_CMDLINE_OPTS \
{ \
diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
index d84eec4..dbb5004 100644
--- a/hw/tpm/tpm_tis.c
+++ b/hw/tpm/tpm_tis.c
@@ -1123,6 +1123,10 @@ static const TypeInfo tpm_tis_info = {
.instance_size = sizeof(TPMState),
.instance_init = tpm_tis_initfn,
.class_init = tpm_tis_class_init,
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_TPM_IF },
+ { }
+ }
};
static void tpm_tis_register(void)
--
2.5.5
- [Qemu-devel] [PULL v1 00/21] Merge tpm 2017/10/19, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 16/21] tpm: remove locty_data from TPMState, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 01/21] tpm-tis: remove unused hw_access argument, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 21/21] tpm: move recv_data_callback to TPM interface, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 11/21] tpm: remove unused TPMBackendCmd, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 09/21] tpm: remove init() class method, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 04/21] tpm: lookup tpm backend class in tpm_driver_find_by_type(), Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 13/21] tpm: remove locty argument from receive_cb, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 12/21] tpm: remove needless cast, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 20/21] tpm: add a QOM TPM interface,
Stefan Berger <=
- [Qemu-devel] [PULL v1 06/21] tpm: remove tpm_register_driver(), Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 15/21] tpm-emulator: fix error handling, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 14/21] tpm: add TPMBackendCmd to hold the request state, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 18/21] tpm-tis: remove tpm_tis.h header, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 17/21] tpm-tis: move TPMState to TIS header, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 19/21] tpm-tis: fold TPMTISEmuState in TPMState, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 10/21] tpm: remove configure_tpm() hop, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 07/21] tpm: move TPMSizedBuffer to tpm_tis.h, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 08/21] tpm: remove TPMDriverOps, Stefan Berger, 2017/10/19
- [Qemu-devel] [PULL v1 02/21] tpm-tis: remove RAISE_STS_IRQ, Stefan Berger, 2017/10/19