{
TPMInfo *info = g_new0(TPMInfo, 1);
TPMBackendClass *k = TPM_BACKEND_GET_CLASS(s);
+ TPMIfClass *tic = TPM_IF_GET_CLASS(s->tpmif);
info->id = g_strdup(s->id);
- info->model = s->fe_model;
+ info->model = tic->model;
if (k->get_tpm_options) {
info->options = k->get_tpm_options(s);
}
tpm_backend_prop_get_opened,
tpm_backend_prop_set_opened,
NULL);
- s->fe_model = -1;
s->bh = qemu_bh_new(tpm_backend_request_completed_bh, s);
}
return;
}
- s->be_driver->fe_model = TPM_MODEL_TPM_TIS;
-
if (tpm_backend_init(s->be_driver, TPM_IF(s), errp)) {
return;
}
dc->props = tpm_tis_properties;
dc->reset = tpm_tis_reset;
dc->vmsd = &vmstate_tpm_tis;
+ tc->model = TPM_MODEL_TPM_TIS;
tc->request_completed = tpm_tis_request_completed;
}
typedef struct TPMIfClass {
InterfaceClass parent_class;
+ enum TpmModel model;
void (*request_completed)(TPMIf *obj);
} TPMIfClass;
/* <public> */
char *id;
- enum TpmModel fe_model;
QLIST_ENTRY(TPMBackend) list;
};
TPMInfoList *info, *head = NULL, *cur_item = NULL;
QLIST_FOREACH(drv, &tpm_backends, list) {
- if (!tpm_models[drv->fe_model]) {
+ if (!drv->tpmif) {
continue;
}
+
info = g_new0(TPMInfoList, 1);
info->value = tpm_backend_query_tpm(drv);