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@xxxxxxx> >> --- >> 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. > > Jim > Still fighting this one, could not defeat the beast yet.. >> }; >> 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, >> }; >