提交 3dfd5a2a 编写于 作者: M Marc-André Lureau 提交者: Stefan Berger

tpm: lookup the the TPM interface instead of TIS device

This will allow to introduce new devices implementing TPM.
Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
上级 d36e7db1
......@@ -208,7 +208,7 @@ static void acpi_get_misc_info(AcpiMiscInfo *info)
}
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->applesmc_io_base = applesmc_port();
}
......
......@@ -19,7 +19,7 @@ int tpm_config_parse(QemuOptsList *opts_list, const char *optarg);
int tpm_init(void);
void tpm_cleanup(void);
typedef enum TPMVersion {
typedef enum TPMVersion {
TPM_VERSION_UNSPEC = 0,
TPM_VERSION_1_2 = 1,
TPM_VERSION_2_0 = 2,
......@@ -44,20 +44,25 @@ typedef struct TPMIfClass {
void (*request_completed)(TPMIf *obj);
} TPMIfClass;
TPMVersion tpm_tis_get_tpm_version(Object *obj);
#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_TIS, NULL);
Object *obj = object_resolve_path_type("", TYPE_TPM_IF, NULL);
return TPM_IF(obj);
}
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 */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册