[libvirt] [PATCH 2/7] Sysinfo parsing and saving to/from configuration files

Daniel P. Berrange berrange at redhat.com
Wed Nov 3 11:41:38 UTC 2010


On Tue, Nov 02, 2010 at 05:36:44PM +0100, Daniel Veillard wrote:
> 
> * src/conf/domain_conf.h: defines a new internal type added to the
>   domain structure
> * src/conf/domain_conf.c: parsing and serialization of that new type
> 
> Signed-off-by: Daniel Veillard <veillard at redhat.com>
> ---
>  src/conf/domain_conf.c |  192 +++++++++++++++++++++++++++++++++++++++++++++++-
>  src/conf/domain_conf.h |   26 +++++++
>  2 files changed, 217 insertions(+), 1 deletions(-)
> 

> @@ -6504,6 +6679,21 @@ char *virDomainDefFormat(virDomainDefPtr def,
>          virBufferVSprintf(&buf, " current='%u'", def->vcpus);
>      virBufferVSprintf(&buf, ">%u</vcpu>\n", def->maxvcpus);
>  
> +    if (def->sysinfo)
> +        virDomainSysinfoDefFormat(&buf, def->sysinfo);
> +
> +    if (def->smbios_mode) {
> +        const char *mode;
> +
> +        mode = virDomainSmbiosModeTypeToString(def->smbios_mode);
> +        if (mode == NULL) {
> +            virDomainReportError(VIR_ERR_INTERNAL_ERROR,
> +                             _("unexpected smbios mode %d"), def->smbios_mode);
> +            goto cleanup;
> +        }
> +        virBufferVSprintf(&buf, "  <smbios mode='%s'/>\n", mode);
> +    }
> +
>      if (def->os.bootloader) {
>          virBufferEscapeString(&buf, "  <bootloader>%s</bootloader>\n",
>                                def->os.bootloader);
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 5499f28..91ba131 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -606,6 +606,30 @@ struct _virDomainMemballoonDef {
>  };
>  
>  
> +enum virDomainSysinfoType {
> +    VIR_DOMAIN_SYSINFO_SMBIOS,
> +
> +    VIR_DOMAIN_SYSINFO_LAST
> +};
> +
> +typedef struct _virSysinfoDef virSysinfoDef;
> +typedef virSysinfoDef *virSysinfoDefPtr;
> +struct _virSysinfoDef {
> +    int type;
> +
> +    char *bios_vendor;
> +    char *bios_version;
> +    char *bios_date;
> +    char *bios_release;
> +
> +    char *system_manufacturer;
> +    char *system_product;
> +    char *system_version;
> +    char *system_serial;
> +    char *system_uuid;
> +    char *system_sku;
> +};
> +
>  /* Flags for the 'type' field in next struct */
>  enum virDomainDeviceType {
>      VIR_DOMAIN_DEVICE_DISK,
> @@ -943,6 +967,7 @@ struct _virDomainDef {
>      virDomainWatchdogDefPtr watchdog;
>      virDomainMemballoonDefPtr memballoon;
>      virCPUDefPtr cpu;
> +    virSysinfoDefPtr sysinfo;
>  
>      void *namespaceData;
>      virDomainXMLNamespace ns;
> @@ -1195,6 +1220,7 @@ VIR_ENUM_DECL(virDomainChr)


Is this the right version of the patch ?  The code references def->smbios_mode,
but smbios_mode is never added to virDomainDef in domain_conf.h ?

In line with my comments on previous patches, the smbios_mode would naturally
fit under the virDomainOSDef struct.

Regards,
Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list