提交 8fcbc0c6 编写于 作者: E Eric Blake

remote: remove special case for getting version

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.
上级 7647422a
......@@ -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";
......
......@@ -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 {
......
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册