static TPMInfo *qmp_query_tpm_inst(TPMBackend *drv)

{

    TPMInfo *res = g_new0(TPMInfo, 1);

    TPMPassthroughOptions *tpo;



    res->id = g_strdup(drv->id);

    res->model = drv->fe_model;

    res->options = g_new0(TpmTypeOptions, 1);



    switch (drv->ops->type) {

    case TPM_TYPE_PASSTHROUGH:

        res->options->type = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;

        tpo = g_new0(TPMPassthroughOptions, 1);

        res->options->u.passthrough = tpo;

        if (drv->path) {

            tpo->path = g_strdup(drv->path);

            tpo->has_path = true;

        }

        if (drv->cancel_path) {

            tpo->cancel_path = g_strdup(drv->cancel_path);

            tpo->has_cancel_path = true;

        }

        break;

    case TPM_TYPE__MAX:

        break;

    }



    return res;

}

static TPMInfo *qmp_query_tpm_inst(TPMBackend *drv)

{

    TPMInfo *res = g_new0(TPMInfo, 1);

    TPMPassthroughOptions *tpo;



    res->id = g_strdup(drv->id);

    res->model = drv->fe_model;

    res->options = g_new0(TpmTypeOptions, 1);



    switch (drv->ops->type) {

    case TPM_TYPE_PASSTHROUGH:

        res->options->type = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;

        tpo = g_new0(TPMPassthroughOptions, 1);

        res->options->u.passthrough = tpo;

        if (drv->path) {

            tpo->path = g_strdup(drv->path);

            tpo->has_path = true;

        }

        if (drv->cancel_path) {

            tpo->cancel_path = g_strdup(drv->cancel_path);

            tpo->has_cancel_path = true;

        }

        break;

    case TPM_TYPE__MAX:

        break;

    }



    return res;

}

static TPMInfo *FUNC_0(TPMBackend *drv)

{

    TPMInfo *res = g_new0(TPMInfo, 1);

    TPMPassthroughOptions *tpo;



    res->id = g_strdup(drv->id);

    res->model = drv->fe_model;

    res->options = g_new0(TpmTypeOptions, 1);



    switch (drv->ops->type) {

    case TPM_TYPE_PASSTHROUGH:

        res->options->type = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;

        tpo = g_new0(TPMPassthroughOptions, 1);

        res->options->u.passthrough = tpo;

        if (drv->path) {

            tpo->path = g_strdup(drv->path);

            tpo->has_path = true;

        }

        if (drv->cancel_path) {

            tpo->cancel_path = g_strdup(drv->cancel_path);

            tpo->has_cancel_path = true;

        }

        break;

    case TPM_TYPE__MAX:

        break;

    }



    return res;

}

static TPMInfo *FUNC_0(TPMBackend *drv)
{ TPMInfo *res = g_new0(TPMInfo, 1); TPMPassthroughOptions *tpo; res->id = g_strdup(drv->id); res->model = drv->fe_model; res->options = g_new0(TpmTypeOptions, 1); switch (drv->ops->type) { case TPM_TYPE_PASSTHROUGH:
res->options->type = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH; tpo = g_new0(TPMPassthroughOptions, 1); res->options->u.passthrough = tpo; if (drv->path) { tpo->path = g_strdup(drv->path); tpo->has_path = true; } if (drv->cancel_path) { tpo->cancel_path = g_strdup(drv->cancel_path); tpo->has_cancel_path = true; } break; case TPM_TYPE__MAX:
break; } return res; }