[libvirt] [PATCH 4/6] Wire protocol and remote driver for virDomainGetControlInfo
Daniel Veillard
veillard at redhat.com
Mon Jun 13 08:21:48 UTC 2011
On Tue, Jun 07, 2011 at 03:01:58PM +0200, Jiri Denemark wrote:
> ---
> daemon/remote_generator.pl | 20 ++++++++++++++------
> src/remote/remote_driver.c | 1 +
> src/remote/remote_protocol.x | 14 +++++++++++++-
> src/remote_protocol-structs | 9 +++++++++
> 4 files changed, 37 insertions(+), 7 deletions(-)
>
> diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl
> index 632972c..8881d6c 100755
> --- a/daemon/remote_generator.pl
> +++ b/daemon/remote_generator.pl
> @@ -668,9 +668,13 @@ elsif ($opt_b) {
> my $struct_name = $call->{ProcName};
> $struct_name =~ s/Get//;
>
> - if ($call->{ProcName} eq "DomainGetBlockInfo") {
> - # SPECIAL: virDomainGetBlockInfo has flags parameter after
> - # the struct parameter in its signature
> + if ($call->{ProcName} eq "DomainGetBlockInfo" ||
> + $call->{ProcName} eq "DomainGetControlInfo") {
> + # SPECIAL: virDomainGetBlockInfo and virDomainGetControlInfo
> + # have flags parameter after the struct parameter in
> + # its signature
> + # FIXME: this doesn't sound special at all; flags parameter is
> + # almost always the last one; anything else is special
> my $flags = pop(@args_list);
> push(@args_list, "&tmp");
> push(@args_list, $flags);
> @@ -1203,9 +1207,13 @@ elsif ($opt_k) {
> my $struct_name = $call->{ProcName};
> $struct_name =~ s/Get//;
>
> - if ($call->{ProcName} eq "DomainGetBlockInfo") {
> - # SPECIAL: virDomainGetBlockInfo has flags parameter after
> - # the struct parameter in its signature
> + if ($call->{ProcName} eq "DomainGetBlockInfo" ||
> + $call->{ProcName} eq "DomainGetControlInfo") {
> + # SPECIAL: virDomainGetBlockInfo and virDomainGetControlInfo
> + # have flags parameter after the struct parameter in
> + # its signature
> + # FIXME: this doesn't sound special at all; flags parameter is
> + # almost always the last one; anything else is special
> $last_arg = pop(@args_list);
> }
>
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index 8335a1a..f1c6674 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -6251,6 +6251,7 @@ static virDriver remote_driver = {
> .domainGetBlkioParameters = remoteDomainGetBlkioParameters, /* 0.9.0 */
> .domainGetInfo = remoteDomainGetInfo, /* 0.3.0 */
> .domainGetState = remoteDomainGetState, /* 0.9.2 */
> + .domainGetControlInfo = remoteDomainGetControlInfo, /* 0.9.3 */
> .domainSave = remoteDomainSave, /* 0.3.0 */
> .domainRestore = remoteDomainRestore, /* 0.3.0 */
> .domainCoreDump = remoteDomainCoreDump, /* 0.3.0 */
> diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
> index c9b8cff..7e8ad6d 100644
> --- a/src/remote/remote_protocol.x
> +++ b/src/remote/remote_protocol.x
> @@ -2035,6 +2035,17 @@ struct remote_domain_event_control_error_msg {
> remote_nonnull_domain dom;
> };
>
> +struct remote_domain_get_control_info_args {
> + remote_nonnull_domain dom;
> + unsigned int flags;
> +};
> +
> +struct remote_domain_get_control_info_ret {
> + unsigned int state;
> + unsigned int details;
> + unsigned hyper stateTime;
> +};
> +
> /*----- Protocol. -----*/
>
> /* Define the program number, protocol version and procedure numbers here. */
> @@ -2297,7 +2308,8 @@ enum remote_procedure {
> REMOTE_PROC_INTERFACE_CHANGE_COMMIT = 221, /* autogen autogen */
> REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK = 222, /* autogen autogen */
> REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS = 223, /* skipgen autogen */
> - REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR = 224 /* skipgen skipgen */
> + REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR = 224, /* skipgen skipgen */
> + REMOTE_PROC_DOMAIN_GET_CONTROL_INFO = 225 /* autogen autogen */
>
> /*
> * Notice how the entries are grouped in sets of 10 ?
> diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs
> index 1d90dd5..18511be 100644
> --- a/src/remote_protocol-structs
> +++ b/src/remote_protocol-structs
> @@ -1542,6 +1542,15 @@ struct remote_domain_migrate_confirm3_args {
> struct remote_domain_event_control_error_msg {
> remote_nonnull_domain dom;
> };
> +struct remote_domain_get_control_info_args {
> + remote_nonnull_domain dom;
> + u_int flags;
> +};
> +struct remote_domain_get_control_info_ret {
> + u_int state;
> + u_int details;
> + uint64_t stateTime;
> +};
> struct remote_message_header {
> u_int prog;
> u_int vers;
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list