In most cases this affects flags parameters that are unsigned in the public and driver API but signed in the XDR protocol. Switch the XDR protocol to unsigned for those. A counterexample is virNWFilterGetXMLDesc. Its flags parameter is signed in the public API and XDR protocol, but unsigned in the driver API. --- daemon/remote_generator.pl | 16 ---------------- src/driver.h | 2 +- src/nwfilter/nwfilter_driver.c | 2 +- src/remote/remote_protocol.x | 30 +++++++++++++++--------------- src/remote_protocol-structs | 30 +++++++++++++++--------------- 5 files changed, 32 insertions(+), 48 deletions(-) diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl index 9143b3a..ac808fb 100755 --- a/daemon/remote_generator.pl +++ b/daemon/remote_generator.pl @@ -896,22 +896,6 @@ elsif ($opt_k) { $type_name .= $2; $type_name =~ s/hyper/long/; - if ($type_name eq "int") { - # fix bad decisions in the xdr protocol - if ($arg_name eq "flags" and - $call->{ProcName} ne "DomainCoreDump" and - $call->{ProcName} ne "DomainGetXMLDesc" and - $call->{ProcName} ne "NetworkGetXMLDesc") { - $type_name = "unsigned int"; - } elsif ($arg_name eq "nvcpus" and - $call->{ProcName} eq "DomainSetVcpus") { - $type_name = "unsigned int"; - } elsif ($arg_name eq "vcpu" and - $call->{ProcName} eq "DomainPinVcpu") { - $type_name = "unsigned int"; - } - } - # SPECIAL: some hyper parameters map to long longs if (($call->{ProcName} eq "DomainMigrateSetMaxDowntime" and $arg_name eq "downtime") or diff --git a/src/driver.h b/src/driver.h index 450dd53..58e8f02 100644 --- a/src/driver.h +++ b/src/driver.h @@ -1282,7 +1282,7 @@ typedef int typedef char * (*virDrvNWFilterGetXMLDesc) (virNWFilterPtr nwfilter, - unsigned int flags); + int flags); typedef struct _virNWFilterDriver virNWFilterDriver; diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index db3d789..d9ac17e 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -407,7 +407,7 @@ cleanup: static char * nwfilterGetXMLDesc(virNWFilterPtr obj, - unsigned int flags) { + int flags) { virNWFilterDriverStatePtr driver = obj->conn->nwfilterPrivateData; virNWFilterObjPtr nwfilter; char *ret = NULL; diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index f5218cd..2b9f9de 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -430,7 +430,7 @@ struct remote_get_max_vcpus_ret { struct remote_node_get_info_ret { char model[32]; - hyper memory; + unsigned hyper memory; int cpus; int mhz; int nodes; @@ -612,7 +612,7 @@ struct remote_num_of_domains_ret { struct remote_domain_create_xml_args { remote_nonnull_string xml_desc; - int flags; + unsigned int flags; }; struct remote_domain_create_xml_ret { @@ -657,7 +657,7 @@ struct remote_domain_shutdown_args { struct remote_domain_reboot_args { remote_nonnull_domain dom; - int flags; + unsigned int flags; }; struct remote_domain_destroy_args { @@ -843,7 +843,7 @@ struct remote_domain_inject_nmi_args { struct remote_domain_set_vcpus_args { remote_nonnull_domain dom; - int nvcpus; + unsigned int nvcpus; }; struct remote_domain_set_vcpus_flags_args { @@ -863,7 +863,7 @@ struct remote_domain_get_vcpus_flags_ret { struct remote_domain_pin_vcpu_args { remote_nonnull_domain dom; - int vcpu; + unsigned int vcpu; opaque cpumap<REMOTE_CPUMAP_MAX>; }; @@ -1527,7 +1527,7 @@ struct remote_node_device_reset_args { struct remote_node_device_create_xml_args { remote_nonnull_string xml_desc; - int flags; + unsigned int flags; }; struct remote_node_device_create_xml_ret { @@ -1871,7 +1871,7 @@ struct remote_domain_managed_save_remove_args { struct remote_domain_snapshot_create_xml_args { remote_nonnull_domain dom; remote_nonnull_string xml_desc; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_create_xml_ret { @@ -1880,7 +1880,7 @@ struct remote_domain_snapshot_create_xml_ret { struct remote_domain_snapshot_get_xml_desc_args { remote_nonnull_domain_snapshot snap; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_get_xml_desc_ret { @@ -1889,7 +1889,7 @@ struct remote_domain_snapshot_get_xml_desc_ret { struct remote_domain_snapshot_num_args { remote_nonnull_domain dom; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_num_ret { @@ -1899,7 +1899,7 @@ struct remote_domain_snapshot_num_ret { struct remote_domain_snapshot_list_names_args { remote_nonnull_domain dom; int maxnames; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_list_names_ret { @@ -1909,7 +1909,7 @@ struct remote_domain_snapshot_list_names_ret { struct remote_domain_snapshot_lookup_by_name_args { remote_nonnull_domain dom; remote_nonnull_string name; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_lookup_by_name_ret { @@ -1918,7 +1918,7 @@ struct remote_domain_snapshot_lookup_by_name_ret { struct remote_domain_has_current_snapshot_args { remote_nonnull_domain dom; - int flags; + unsigned int flags; }; struct remote_domain_has_current_snapshot_ret { @@ -1927,7 +1927,7 @@ struct remote_domain_has_current_snapshot_ret { struct remote_domain_snapshot_current_args { remote_nonnull_domain dom; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_current_ret { @@ -1936,12 +1936,12 @@ struct remote_domain_snapshot_current_ret { struct remote_domain_revert_to_snapshot_args { remote_nonnull_domain_snapshot snap; - int flags; + unsigned int flags; }; struct remote_domain_snapshot_delete_args { remote_nonnull_domain_snapshot snap; - int flags; + unsigned int flags; }; struct remote_domain_open_console_args { diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index fd23fa0..04f36ca 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -140,7 +140,7 @@ struct remote_get_max_vcpus_ret { }; struct remote_node_get_info_ret { char model[32]; - int64_t memory; + uint64_t memory; int cpus; int mhz; int nodes; @@ -325,7 +325,7 @@ struct remote_num_of_domains_ret { }; struct remote_domain_create_xml_args { remote_nonnull_string xml_desc; - int flags; + u_int flags; }; struct remote_domain_create_xml_ret { remote_nonnull_domain dom; @@ -359,7 +359,7 @@ struct remote_domain_shutdown_args { }; struct remote_domain_reboot_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_destroy_args { remote_nonnull_domain dom; @@ -526,7 +526,7 @@ struct remote_domain_inject_nmi_args { }; struct remote_domain_set_vcpus_args { remote_nonnull_domain dom; - int nvcpus; + u_int nvcpus; }; struct remote_domain_set_vcpus_flags_args { remote_nonnull_domain dom; @@ -542,7 +542,7 @@ struct remote_domain_get_vcpus_flags_ret { }; struct remote_domain_pin_vcpu_args { remote_nonnull_domain dom; - int vcpu; + u_int vcpu; struct { u_int cpumap_len; char * cpumap_val; @@ -1103,7 +1103,7 @@ struct remote_node_device_reset_args { }; struct remote_node_device_create_xml_args { remote_nonnull_string xml_desc; - int flags; + u_int flags; }; struct remote_node_device_create_xml_ret { remote_nonnull_node_device dev; @@ -1370,21 +1370,21 @@ struct remote_domain_managed_save_remove_args { struct remote_domain_snapshot_create_xml_args { remote_nonnull_domain dom; remote_nonnull_string xml_desc; - int flags; + u_int flags; }; struct remote_domain_snapshot_create_xml_ret { remote_nonnull_domain_snapshot snap; }; struct remote_domain_snapshot_get_xml_desc_args { remote_nonnull_domain_snapshot snap; - int flags; + u_int flags; }; struct remote_domain_snapshot_get_xml_desc_ret { remote_nonnull_string xml; }; struct remote_domain_snapshot_num_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_snapshot_num_ret { int num; @@ -1392,7 +1392,7 @@ struct remote_domain_snapshot_num_ret { struct remote_domain_snapshot_list_names_args { remote_nonnull_domain dom; int maxnames; - int flags; + u_int flags; }; struct remote_domain_snapshot_list_names_ret { struct { @@ -1403,32 +1403,32 @@ struct remote_domain_snapshot_list_names_ret { struct remote_domain_snapshot_lookup_by_name_args { remote_nonnull_domain dom; remote_nonnull_string name; - int flags; + u_int flags; }; struct remote_domain_snapshot_lookup_by_name_ret { remote_nonnull_domain_snapshot snap; }; struct remote_domain_has_current_snapshot_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_has_current_snapshot_ret { int result; }; struct remote_domain_snapshot_current_args { remote_nonnull_domain dom; - int flags; + u_int flags; }; struct remote_domain_snapshot_current_ret { remote_nonnull_domain_snapshot snap; }; struct remote_domain_revert_to_snapshot_args { remote_nonnull_domain_snapshot snap; - int flags; + u_int flags; }; struct remote_domain_snapshot_delete_args { remote_nonnull_domain_snapshot snap; - int flags; + u_int flags; }; struct remote_domain_open_console_args { remote_nonnull_domain dom; -- 1.7.0.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list