On Fri, 2021-11-26 at 16:43 +0100, Martin Kletzander wrote:
On Wed, Nov 10, 2021 at 10:24:25PM +0800, Luke Yue wrote:
> Currently it will only be used in the test driver.
>
> Signed-off-by: Luke Yue <lukedyue(a)gmail.com>
> ---
> src/conf/domain_conf.c | 67
> ++++++++++++++++++++++++++++++++++++++++
> src/conf/domain_conf.h | 6 ++++
> src/libvirt_private.syms | 2 ++
> 3 files changed, 75 insertions(+)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 3193120b79..512bfab9e9 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -16931,6 +16931,73 @@ virDomainVsockDefEquals(const
> virDomainVsockDef *a,
> }
>
>
> +static bool
> +virDomainTPMDefEquals(const virDomainTPMDef *a,
> + const virDomainTPMDef *b)
> +{
> + if (a->type != b->type)
> + return false;
> +
> + if (a->model != b->model)
> + return false;
> +
> + if (a->version != b->version)
> + return false;
> +
> + if (a->type == VIR_DOMAIN_TPM_TYPE_PASSTHROUGH) {
> + if (STRNEQ_NULLABLE(a-
> >data.passthrough.source.data.file.path,
> + b-
> >data.passthrough.source.data.file.path))
This will not compile as `source` is a pointer here.
I just noticed in commit 42b0000, the `source` was changed to be a
pointer, will fix in next version.
> + return false;
> + } else {
> + if (a->data.emulator.hassecretuuid != b-
> >data.emulator.hassecretuuid)
> + return false;
> +
> + if (a->data.emulator.hassecretuuid == true &&
> + memcmp(a->data.emulator.secretuuid,
> + b->data.emulator.secretuuid,
> + VIR_UUID_BUFLEN))
> + return false;
> +
> + if (a->data.emulator.persistent_state !=
> + b->data.emulator.persistent_state)
Also it would make sense to try to detach a device without all the
information, e.g. those that libvirt itself adds by default if they
are
missing, or in this case when persistent_state is set to the
specified
default (in formatdomain.html this is said to be "no" currently, but
not
filled in). Luckily the test driver itself does not do any of this,
so
I guess it's fine here.
Hmm, I will look into how libvirt adds these default devices and refine
this function in next version or in the future.
Thanks,
Luke