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>
This commit is contained in:
parent
3d4960c7ad
commit
698f5daa4a
@ -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);
|
||||
|
@ -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 \
|
||||
{ \
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user