mirror of https://gitlab.com/qemu-project/qemu
tpm: lookup the the TPM interface instead of TIS device
This will allow to introduce new devices implementing TPM. 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
d36e7db1fb
commit
3dfd5a2a50
|
@ -208,7 +208,7 @@ static void acpi_get_misc_info(AcpiMiscInfo *info)
|
||||||
}
|
}
|
||||||
|
|
||||||
info->has_hpet = hpet_find();
|
info->has_hpet = hpet_find();
|
||||||
info->tpm_version = tpm_get_version();
|
info->tpm_version = tpm_get_version(tpm_find());
|
||||||
info->pvpanic_port = pvpanic_port();
|
info->pvpanic_port = pvpanic_port();
|
||||||
info->applesmc_io_base = applesmc_port();
|
info->applesmc_io_base = applesmc_port();
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ int tpm_config_parse(QemuOptsList *opts_list, const char *optarg);
|
||||||
int tpm_init(void);
|
int tpm_init(void);
|
||||||
void tpm_cleanup(void);
|
void tpm_cleanup(void);
|
||||||
|
|
||||||
typedef enum TPMVersion {
|
typedef enum TPMVersion {
|
||||||
TPM_VERSION_UNSPEC = 0,
|
TPM_VERSION_UNSPEC = 0,
|
||||||
TPM_VERSION_1_2 = 1,
|
TPM_VERSION_1_2 = 1,
|
||||||
TPM_VERSION_2_0 = 2,
|
TPM_VERSION_2_0 = 2,
|
||||||
|
@ -44,20 +44,25 @@ typedef struct TPMIfClass {
|
||||||
void (*request_completed)(TPMIf *obj);
|
void (*request_completed)(TPMIf *obj);
|
||||||
} TPMIfClass;
|
} TPMIfClass;
|
||||||
|
|
||||||
TPMVersion tpm_tis_get_tpm_version(Object *obj);
|
|
||||||
|
|
||||||
#define TYPE_TPM_TIS "tpm-tis"
|
#define TYPE_TPM_TIS "tpm-tis"
|
||||||
|
|
||||||
static inline TPMVersion tpm_get_version(void)
|
/* returns NULL unless there is exactly one TPM device */
|
||||||
|
static inline TPMIf *tpm_find(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_TPM
|
Object *obj = object_resolve_path_type("", TYPE_TPM_IF, NULL);
|
||||||
Object *obj = object_resolve_path_type("", TYPE_TPM_TIS, NULL);
|
|
||||||
|
|
||||||
if (obj) {
|
return TPM_IF(obj);
|
||||||
return tpm_tis_get_tpm_version(obj);
|
}
|
||||||
|
|
||||||
|
TPMVersion tpm_tis_get_tpm_version(Object *obj);
|
||||||
|
|
||||||
|
static inline TPMVersion tpm_get_version(TPMIf *ti)
|
||||||
|
{
|
||||||
|
if (!ti) {
|
||||||
|
return TPM_VERSION_UNSPEC;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return TPM_VERSION_UNSPEC;
|
return tpm_tis_get_tpm_version(OBJECT(ti));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* QEMU_TPM_H */
|
#endif /* QEMU_TPM_H */
|
||||||
|
|
Loading…
Reference in New Issue