[libvirt] [PATCH 04/10 V2] remote generator: Handle (unsigned) int arrays

Daniel P. Berrange berrange at redhat.com
Mon Jun 13 22:47:52 UTC 2011


On Tue, Jun 07, 2011 at 05:11:11PM +0800, Lai Jiangshan wrote:
> Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
> ---
>  daemon/remote_generator.pl |   17 +++++++++++++++++
>  1 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl
> index 632972c..532fe63 100755
> --- a/daemon/remote_generator.pl
> +++ b/daemon/remote_generator.pl
> @@ -407,6 +407,13 @@ elsif ($opt_b) {
>                      }
>  
>                      push(@args_list, "args->$2.$2_len");
> +                } elsif ($args_member =~ m/^(?:unsigned )?int (\S+)<\S+>;/) {
> +                    if (! @args_list) {
> +                        push(@args_list, "conn");
> +                    }
> +
> +                    push(@args_list, "args->$1.$1_val");
> +                    push(@args_list, "args->$1.$1_len");
>                  } elsif ($args_member =~ m/^remote_typed_param (\S+)<(\S+)>;/) {
>                      push(@vars_list, "virTypedParameterPtr $1 = NULL");
>                      push(@vars_list, "int n$1");
> @@ -985,6 +992,16 @@ elsif ($opt_k) {
>                      push(@setters_list, "args.$arg_name.${arg_name}_val = (char *)$arg_name;");
>                      push(@setters_list, "args.$arg_name.${arg_name}_len = ${arg_name}len;");
>                      push(@args_check_list, { name => "\"$arg_name\"", arg => "${arg_name}len", limit => $limit });
> +                } elsif ($args_member =~ m/^((?:unsigned )?int) (\S+)<(\S+)>;/) {
> +                    my $type_name = $1;
> +                    my $arg_name = $2;
> +                    my $limit = $3;
> +
> +                    push(@args_list, "${type_name} *$arg_name");
> +                    push(@args_list, "unsigned int ${arg_name}len");
> +                    push(@setters_list, "args.$arg_name.${arg_name}_val = $arg_name;");
> +                    push(@setters_list, "args.$arg_name.${arg_name}_len = ${arg_name}len;");
> +                    push(@args_check_list, { name => "\"$arg_name\"", arg => "${arg_name}len", limit => $limit });
>                  } elsif ($args_member =~ m/^remote_typed_param (\S+)<(\S+)>;/) {
>                      push(@args_list, "virTypedParameterPtr $1");
>                      push(@args_list, "int n$1");

ACK


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 :|




More information about the libvir-list mailing list