On Wed, May 11, 2011 at 04:50:28PM -0600, Eric Blake wrote: > * src/remote/remote_protocol.x (remote_get_version_ret) > (remote_get_lib_version_ret): Match public API. > * daemon/remote_generator.pl: Drop special case. > --- > > By the way, the previous patch and this one both assume that > Matthias' generator whitelist patch is applied. > > daemon/remote_generator.pl | 23 +++++++++-------------- > src/remote/remote_protocol.x | 4 ++-- > 2 files changed, 11 insertions(+), 16 deletions(-) > > diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl > index c53ebc8..6d91d15 100755 > --- a/daemon/remote_generator.pl > +++ b/daemon/remote_generator.pl > @@ -504,13 +504,6 @@ elsif ($opt_b) { > $type_name = $1 if ($1); > $type_name .= "long"; > > - if ($type_name eq "long" and > - $calls{$_}->{ProcName} =~ m/^Get(Lib)?Version$/) { > - # SPECIAL: virConnectGet(Lib)?Version uses unsigned long > - # in public API but hyper in XDR protocol > - $type_name = "unsigned long"; > - } > - > push(@vars_list, "$type_name $ret_name"); > push(@ret_list, "ret->$ret_name = $ret_name;"); > $single_ret_var = $ret_name; > @@ -990,19 +983,21 @@ elsif ($opt_k) { > $single_ret_type = "int"; > } elsif ($ret_member =~ m/^unsigned hyper (\S+);/) { > my $arg_name = $1; > - push(@ret_list, "rv = ret.$arg_name;"); > - $single_ret_var = "unsigned long rv = 0"; > - $single_ret_type = "unsigned long"; > - } elsif ($ret_member =~ m/^hyper (\S+);/) { > - my $arg_name = $1; > - > if ($call->{ProcName} =~ m/Get(Lib)?Version/) { > push(@args_list, "unsigned long *$arg_name"); > push(@ret_list, "if ($arg_name) *$arg_name = ret.$arg_name;"); > push(@ret_list, "rv = 0;"); > $single_ret_var = "int rv = -1"; > $single_ret_type = "int"; > - } elsif ($call->{ProcName} eq "NodeGetFreeMemory") { > + } else { > + push(@ret_list, "rv = ret.$arg_name;"); > + $single_ret_var = "unsigned long rv = 0"; > + $single_ret_type = "unsigned long"; > + } > + } elsif ($ret_member =~ m/^hyper (\S+);/) { > + my $arg_name = $1; > + > + if ($call->{ProcName} eq "NodeGetFreeMemory") { > push(@ret_list, "rv = ret.$arg_name;"); > $single_ret_var = "unsigned long long rv = 0"; > $single_ret_type = "unsigned long long"; > diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x > index 0b88353..04937e2 100644 > --- a/src/remote/remote_protocol.x > +++ b/src/remote/remote_protocol.x > @@ -391,11 +391,11 @@ struct remote_get_type_ret { > }; > > struct remote_get_version_ret { > - hyper hv_ver; > + unsigned hyper hv_ver; > }; > > struct remote_get_lib_version_ret { > - hyper lib_ver; > + unsigned hyper lib_ver; > }; Is this signed/unsigned change definitely compatible on the wire ? Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list