[libvirt RFC v3 06/19] remote: Add RPC support for the virDomainRestoreParametersFlags API
Claudio Fontana
cfontana at suse.de
Wed Apr 27 10:19:10 UTC 2022
On 4/27/22 1:00 AM, Jim Fehlig wrote:
> On 4/26/22 10:47, Claudio Fontana wrote:
>> Signed-off-by: Claudio Fontana <cfontana at suse.de>
>> ---
>> src/remote/remote_driver.c | 1 +
>> src/remote/remote_protocol.x | 14 +++++++++++++-
>> src/remote_protocol-structs | 8 ++++++++
>> 3 files changed, 22 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
>> index 1fc5d41971..c5b644ce49 100644
>> --- a/src/remote/remote_driver.c
>> +++ b/src/remote/remote_driver.c
>> @@ -8449,6 +8449,7 @@ static virHypervisorDriver hypervisor_driver = {
>> .domainSaveParametersFlags = remoteDomainSaveParametersFlags, /* 8.3.0 */
>> .domainRestore = remoteDomainRestore, /* 0.3.0 */
>> .domainRestoreFlags = remoteDomainRestoreFlags, /* 0.9.4 */
>> + .domainRestoreParametersFlags = remoteDomainRestoreParametersFlags, /* 8.3.0 */
>> .domainSaveImageGetXMLDesc = remoteDomainSaveImageGetXMLDesc, /* 0.9.4 */
>> .domainSaveImageDefineXML = remoteDomainSaveImageDefineXML, /* 0.9.4 */
>> .domainCoreDump = remoteDomainCoreDump, /* 0.3.0 */
>> diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
>> index c2ae5c5748..7b919ef375 100644
>> --- a/src/remote/remote_protocol.x
>> +++ b/src/remote/remote_protocol.x
>> @@ -3236,6 +3236,11 @@ struct remote_domain_save_parameters_flags_args {
>> unsigned int flags;
>> };
>>
>> +struct remote_domain_restore_parameters_flags_args {
>> + remote_typed_param params<REMOTE_DOMAIN_SAVE_PARAMS_MAX>;
>> + unsigned int flags;
>> +};
>> +
>> /* The device removed event is the last event where we have to support
>> * dual forms for back-compat to older clients; all future events can
>> * use just the modern form with callbackID. */
>> @@ -6935,5 +6940,12 @@ enum remote_procedure {
>> * @generate: both
>> * @acl: domain:hibernate
>> */
>> - REMOTE_PROC_DOMAIN_SAVE_PARAMETERS_FLAGS = 440
>> + REMOTE_PROC_DOMAIN_SAVE_PARAMETERS_FLAGS = 440,
>> +
>> + /**
>> + * @generate: both
>> + * @acl: domain:start
>> + * @acl: domain:write
>> + */
>> + REMOTE_PROC_DOMAIN_RESTORE_PARAMETERS_FLAGS = 441
>
> I've stared at this for quite a while but can't figure out why the dispatch stub
> does not pass virConnectPtr to virDomainRestoreParametersFlags. I'm hitting the
> following build failure
>
> In file included from ../src/remote/remote_daemon_dispatch.c:133:
>
> src/remote/remote_daemon_dispatch_stubs.h: In function
> ‘remoteDispatchDomainRestoreParametersFlags’:
>
> src/remote/remote_daemon_dispatch_stubs.h:10080:41: error: passing argument 1 of
> ‘virDomainRestoreParametersFlags’ from incompatible pointer type
> [-Werror=incompatible-pointer-types]
>
> 10080 | if (virDomainRestoreParametersFlags(params, nparams, args->flags) < 0)
>
> | ^~~~~~
>
> | |
>
> | virTypedParameterPtr {aka
> struct _virTypedParameter *}
>
> In file included from ../include/libvirt/libvirt.h:36,
>
> from ../src/internal.h:65,
>
> from ../src/util/virerror.h:24,
>
> from ../src/remote/remote_daemon_dispatch.c:23:
>
> ../include/libvirt/libvirt-domain.h:1576:72: note: expected ‘virConnectPtr’ {aka
> ‘struct _virConnect *’} but argument is of type ‘virTypedParameterPtr’ {aka
> ‘struct _virTypedParameter *’}
>
> 1576 | int virDomainRestoreParametersFlags (virConnectPtr
> conn,
>
>
> Perhaps a bug in gendispatch.pl. I'm not familiar with the script or debugging
> it, but others here can likely provide help.
Indeed, same issue I get.
Thanks again,
Claudio
>
> Jim
>
>> };
>> diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs
>> index 89eadeb644..72e92184ca 100644
>> --- a/src/remote_protocol-structs
>> +++ b/src/remote_protocol-structs
>> @@ -579,6 +579,13 @@ struct remote_domain_restore_flags_args {
>> remote_string dxml;
>> u_int flags;
>> };
>> +struct remote_domain_restore_parameters_flags_args {
>> + struct {
>> + u_int params_len;
>> + remote_typed_param * params_val;
>> + } params;
>> + u_int flags;
>> +};
>> struct remote_domain_save_image_get_xml_desc_args {
>> remote_nonnull_string file;
>> u_int flags;
>> @@ -3698,4 +3705,5 @@ enum remote_procedure {
>> REMOTE_PROC_DOMAIN_EVENT_MEMORY_DEVICE_SIZE_CHANGE = 438,
>> REMOTE_PROC_DOMAIN_SET_LAUNCH_SECURITY_STATE = 439,
>> REMOTE_PROC_DOMAIN_SAVE_PARAMETERS_FLAGS = 440,
>> + REMOTE_PROC_DOMAIN_RESTORE_PARAMETERS_FLAGS = 441,
>> };
>
More information about the libvir-list
mailing list