diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl index c405dc8092..9143b3a290 100755 --- a/daemon/remote_generator.pl +++ b/daemon/remote_generator.pl @@ -501,7 +501,7 @@ elsif ($opt_b) { $single_ret_check = " < 0"; } } - } elsif ($ret_member =~ m/^hyper (\S+)<(\S+)>;\s*\/\*\s*insert@(\d+)\s*\*\//) { + } elsif ($ret_member =~ m/^(?:unsigned )?hyper (\S+)<(\S+)>;\s*\/\*\s*insert@(\d+)\s*\*\//) { push(@vars_list, "int len"); push(@ret_list, "ret->$1.$1_len = len;"); push(@free_list_on_error, "VIR_FREE(ret->$1.$1_val);"); @@ -519,7 +519,7 @@ elsif ($opt_b) { $single_ret_check = " < 0"; splice(@args_list, int($3), 0, ("ret->$1.$1_val")); } - } elsif ($ret_member =~ m/^hyper (\S+)<\S+>;/) { + } elsif ($ret_member =~ m/^(?:unsigned )?hyper (\S+)<\S+>;/) { # error out on unannotated arrays die "hyper array without insert@ annotation: $ret_member"; } elsif ($ret_member =~ m/^(unsigned )?hyper (\S+);/) { @@ -1063,20 +1063,14 @@ elsif ($opt_k) { push(@ret_list, "rv = 0;"); $single_ret_var = "int rv = -1"; $single_ret_type = "int"; - } 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") { + } elsif ($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"; } else { - die "unhandled type for return value: $ret_member"; + push(@ret_list, "rv = ret.$arg_name;"); + $single_ret_var = "unsigned long rv = 0"; + $single_ret_type = "unsigned long"; } } elsif ($ret_member =~ m/^(\/)?\*/) { # ignore comments diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 730bf5fe9b..92202fba34 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -449,11 +449,11 @@ struct remote_node_get_cells_free_memory_args { }; struct remote_node_get_cells_free_memory_ret { - hyper cells; /* insert@1 */ + unsigned hyper cells; /* insert@1 */ }; struct remote_node_get_free_memory_ret { - hyper freeMem; + unsigned hyper freeMem; }; struct remote_domain_get_scheduler_type_args { diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index d0e1457411..517fe63de6 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -158,11 +158,11 @@ struct remote_node_get_cells_free_memory_args { struct remote_node_get_cells_free_memory_ret { struct { u_int cells_len; - int64_t * cells_val; + uint64_t * cells_val; } cells; }; struct remote_node_get_free_memory_ret { - int64_t freeMem; + uint64_t freeMem; }; struct remote_domain_get_scheduler_type_args { remote_nonnull_domain dom;