]> xenbits.xensource.com Git - libvirt.git/commitdiff
remote: remove special case for getting version
authorEric Blake <eblake@redhat.com>
Wed, 11 May 2011 22:48:35 +0000 (16:48 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 18 May 2011 21:25:03 +0000 (15:25 -0600)
The on-the-wire protocol is identical; XDR guarantees that
both 'hyper' and 'unsigned hyper' are transmitted as 8 bytes.

* src/remote/remote_protocol.x (remote_get_version_ret)
(remote_get_lib_version_ret): Match public API.
* daemon/remote_generator.pl: Drop special case.
* src/remote_protocol-structs: Reflect updated type.

daemon/remote_generator.pl
src/remote/remote_protocol.x
src/remote_protocol-structs

index a3b842161e5b069f3398083ff8095f0ee8114c68..1fc3b177c800f33d2a0d850b16096c7c8e756513 100755 (executable)
@@ -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;
@@ -995,19 +988,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";
index 5932b2cf5fb6509b436a38de5772bdc9c53d1db6..c784dba52f572a0eca316d9071fdbd683621e514 100644 (file)
@@ -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;
 };
 
 struct remote_get_hostname_ret {
index 5b43cb400d39682e0173ffd0d24b6cb3f02ae21d..414b4d5b89ff13d81a1905936edeb4b9a3ad2c94 100644 (file)
@@ -115,10 +115,10 @@ struct remote_get_type_ret {
         remote_nonnull_string      type;
 };
 struct remote_get_version_ret {
-        int64_t                    hv_ver;
+        uint64_t                   hv_ver;
 };
 struct remote_get_lib_version_ret {
-        int64_t                    lib_ver;
+        uint64_t                   lib_ver;
 };
 struct remote_get_hostname_ret {
         remote_nonnull_string      hostname;