diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2017-10-10 00:56:01 +0200 |
---|---|---|
committer | Stefan Berger <stefanb@linux.vnet.ibm.com> | 2017-10-19 11:42:32 -0400 |
commit | 698f5daa4a81984490612a6143b46f5da7392510 (patch) | |
tree | cbfc2fa751a1da2abfb8610088a5469425f24e1f /hw | |
parent | 3d4960c7addeb08513f04abaa3c52bb3c69f80f6 (diff) | |
download | qemu-698f5daa4a81984490612a6143b46f5da7392510.zip qemu-698f5daa4a81984490612a6143b46f5da7392510.tar.gz qemu-698f5daa4a81984490612a6143b46f5da7392510.tar.bz2 |
tpm: add a QOM TPM interface
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 <marcandre.lureau@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/tpm/tpm_int.h | 17 | ||||
-rw-r--r-- | hw/tpm/tpm_tis.c | 4 |
2 files changed, 21 insertions, 0 deletions
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) |