[libvirt PATCH v2 3/5] vmx: Make virVMXParseFileName return an integer
Michal Privoznik
mprivozn at redhat.com
Tue Jan 5 09:15:47 UTC 2021
On 1/5/21 12:32 AM, Daniel Henrique Barboza wrote:
>
> On 12/21/20 1:19 PM, Martin Kletzander wrote:
>> And return the actual extracted value in a parameter. This way we can
>> later
>> return success even without any extracted value.
>>
>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>> ---
>> src/esx/esx_driver.c | 31 ++++++++++++++++++-------------
>> src/vmware/vmware_conf.c | 10 +++++-----
>> src/vmx/vmx.c | 21 ++++++++++-----------
>> src/vmx/vmx.h | 2 +-
>> tests/vmx2xmltest.c | 19 ++++++++++---------
>> 5 files changed, 44 insertions(+), 39 deletions(-)
>>
>> diff --git a/src/vmx/vmx.h b/src/vmx/vmx.h
>> index df5d39157b99..e5420c970a4b 100644
>> --- a/src/vmx/vmx.h
>> +++ b/src/vmx/vmx.h
>> @@ -36,7 +36,7 @@ virDomainXMLOptionPtr
>> virVMXDomainXMLConfInit(virCapsPtr caps);
>> * Context
>> */
>> -typedef char * (*virVMXParseFileName)(const char *fileName, void
>> *opaque);
>> +typedef int (*virVMXParseFileName)(const char *fileName, void
>> *opaque, char **src);
>
>
>
> This change is making the build break in my env:
>
> ../src/vmware/vmware_conf.c: In function ‘vmwareLoadDomains’:
> ../src/vmware/vmware_conf.c:142:23: error: assignment to
> ‘virVMXParseFileName’ {aka ‘int (*)(const char *, void *, char **)’}
> from incompatible pointer type ‘char * (*)(const char *, void *)’
> [-Werror=incompatible-pointer-types]
> 142 | ctx.parseFileName = vmwareCopyVMXFileName;
> | ^
> ../src/vmware/vmware_conf.c: At top level:
> ../src/vmware/vmware_conf.c:511:1: error: conflicting types for
> ‘vmwareCopyVMXFileName’
> 511 | vmwareCopyVMXFileName(const char *datastorePath, void *opaque
> G_GNUC_UNUSED,
> | ^~~~~~~~~~~~~~~~~~~~~
> In file included from ../src/vmware/vmware_conf.c:32:
> ../src/vmware/vmware_conf.h:86:7: note: previous declaration of
> ‘vmwareCopyVMXFileName’ was here
> 86 | char *vmwareCopyVMXFileName(const char *datastorePath, void
> *opaque);
> | ^~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> (...)
>
> ../src/vmware/vmware_driver.c: In function
> ‘vmwareConnectDomainXMLFromNative’:
> ../src/vmware/vmware_driver.c:953:23: error: assignment to
> ‘virVMXParseFileName’ {aka ‘int (*)(const char *, void *, char **)’}
> from incompatible pointer type ‘char * (*)(const char *, void *)’
> [-Werror=incompatible-pointer-types]
> 953 | ctx.parseFileName = vmwareCopyVMXFileName;
> | ^
> cc1: all warnings being treated as errors
>
>
>
> I believe there are a handful of virVMXParseFileName impl instances that
> needs
> to be changed as well.
Indeed. I think we will need to change virVMXFormatFileName() too at the
same time, because of vmwareCopyVMXFileName() which is passed as
formatFileName callback.
BTW: I've found out that we don't automatically enable vmware driver. I
had to enable it explicitly:
meson -Dsystem=true -Ddriver_vmware=enabled _build
I'm looking into that.
Michal
More information about the libvir-list
mailing list