qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] tpm: Move TPM passthrough specific command l


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v2] tpm: Move TPM passthrough specific command line options to backend structure
Date: Mon, 22 Apr 2013 09:17:12 -0500
User-agent: Notmuch/0.15.2+77~g661dcf8 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Stefan Berger <address@hidden> writes:

> Move the TPM passthrough specific command line options to the passthrough
> backend implementation and attach them to the backend's interface structure.
>
> Add code to tpm.c for validating the TPM command line options.
>
> Signed-off-by: Stefan Berger <address@hidden>

This doesn't apply.  Looks like it's pre-QOM?

Regards,

Anthony Liguori

>
> ---
>  tpm/tpm.c             |    8 ++++++++
>  tpm/tpm_int.h         |    8 ++++++++
>  tpm/tpm_passthrough.c |   16 ++++++++++++++++
>  vl.c                  |   16 +---------------
>  4 files changed, 33 insertions(+), 15 deletions(-)
>
> Index: qemu-git.pt/vl.c
> ===================================================================
> --- qemu-git.pt.orig/vl.c
> +++ qemu-git.pt/vl.c
> @@ -502,21 +502,7 @@ static QemuOptsList qemu_tpmdev_opts = {
>      .implied_opt_name = "type",
>      .head = QTAILQ_HEAD_INITIALIZER(qemu_tpmdev_opts.head),
>      .desc = {
> -        {
> -            .name = "type",
> -            .type = QEMU_OPT_STRING,
> -            .help = "Type of TPM backend",
> -        },
> -        {
> -            .name = "cancel-path",
> -            .type = QEMU_OPT_STRING,
> -            .help = "Sysfs file entry for canceling TPM commands",
> -        },
> -        {
> -            .name = "path",
> -            .type = QEMU_OPT_STRING,
> -            .help = "Path to TPM device on the host",
> -        },
> +        /* options are defined in the TPM backends */
>          { /* end of list */ }
>      },
>  };
> Index: qemu-git.pt/tpm/tpm.c
> ===================================================================
> --- qemu-git.pt.orig/tpm/tpm.c
> +++ qemu-git.pt/tpm/tpm.c
> @@ -174,6 +174,14 @@ static int configure_tpm(QemuOpts *opts)
>          return 1;
>      }
>  
> +    /* validate backend specific opts */
> +    qemu_opts_validate(opts, be->opts, &local_err);
> +    if (error_is_set(&local_err)) {
> +        qerror_report_err(local_err);
> +        error_free(local_err);
> +        return 1;
> +    }
> +
>      drv = be->create(opts, id);
>      if (!drv) {
>          return 1;
> Index: qemu-git.pt/tpm/tpm_passthrough.c
> ===================================================================
> --- qemu-git.pt.orig/tpm/tpm_passthrough.c
> +++ qemu-git.pt/tpm/tpm_passthrough.c
> @@ -512,8 +512,24 @@ static void tpm_passthrough_destroy(TPMB
>      g_free(tpm_pt->tpm_dev);
>  }
>  
> +static const QemuOptDesc tpm_passthrough_cmdline_opts[] = {
> +    TPM_STANDARD_CMDLINE_OPTS,
> +    {
> +        .name = "cancel-path",
> +        .type = QEMU_OPT_STRING,
> +        .help = "Sysfs file entry for canceling TPM commands",
> +    },
> +    {
> +        .name = "path",
> +        .type = QEMU_OPT_STRING,
> +        .help = "Path to TPM device on the host",
> +    },
> +    { /* end of list */ },
> +};
> +
>  const TPMDriverOps tpm_passthrough_driver = {
>      .type                     = TPM_TYPE_PASSTHROUGH,
> +    .opts                     = tpm_passthrough_cmdline_opts,
>      .desc                     = tpm_passthrough_create_desc,
>      .create                   = tpm_passthrough_create,
>      .destroy                  = tpm_passthrough_destroy,
> Index: qemu-git.pt/tpm/tpm_int.h
> ===================================================================
> --- qemu-git.pt.orig/tpm/tpm_int.h
> +++ qemu-git.pt/tpm/tpm_int.h
> @@ -35,6 +35,7 @@ struct TPMState {
>  
>  struct TPMDriverOps {
>      enum TpmType type;
> +    const QemuOptDesc *opts;
>      /* get a descriptive text of the backend to display to the user */
>      const char *(*desc)(void);
>  
> @@ -59,6 +60,13 @@ struct TPMDriverOps {
>      bool (*get_tpm_established_flag)(TPMBackend *t);
>  };
>  
> +#define TPM_STANDARD_CMDLINE_OPTS \
> +    { \
> +        .name = "type", \
> +        .type = QEMU_OPT_STRING, \
> +        .help = "Type of TPM backend", \
> +    }
> +
>  struct tpm_req_hdr {
>      uint16_t tag;
>      uint32_t len;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]