Eric Blake wrote:
On 05/07/2010 02:05 AM, Jim Meyering wrote:
>> There's a way out.
>>
>> - maintain a textual representation of these structs and their members
>> (including type names, but not sizes) and make pdwtags a requirement
>> for running "make syntax-check", which would perform the
verification.
>> I.e., keep a copy of the output of pdwtags, but without the comments.
>
> FYI, here's code to generate the latter:
>
> pdwtags src/libvirt_driver_remote_la-remote_protocol.o \
> |perl -0777 -n \
> -e 'foreach my $p (split m!\n\n/\* \d+ \*/\n!)' \
> -e ' { if ($p =~ /^struct remote_/) {' \
> -e ' $p =~ s!\t*/\*.*?\*/!!sg;' \
> -e ' $p =~ s!\s+\n!\n!sg;' \
> -e ' print "$p\n" } }' \
> > remote-protocol-structs
>
> IMHO, it would be sufficient to enable a check comparing
> this output to a version-controlled reference file, and
> making it part of "make check".
I like it!
> Of course, this would add a dependency on pdwtags/dwarves,
> but it would be fine/easy to skip the check on non-Linux systems.
The same as we do for cppi - make it an optional 'make syntax-check', so
that those who have dwarves installed run it, and those who don't get a
warning that they should consider installing dwarves.
>
> Any objection to requiring the dwarves package for development on Linux?
No objection to an optional dependency from me.
Thanks for the feedback.
Here's a complete patch.
I wrote it before the removal of the field from struct remote_error,
and verified that it triggered upon removal, and that removing the
matching name from the new remote_protocol-structs file made the
test pass once again.
From 19d6d7aceddd3ad2c47154a908ae52ff06107db6 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Fri, 7 May 2010 16:01:26 +0200
Subject: [PATCH] help avoid accidental remote_protocol.x changes
Now, if you update remote_protocol.x without also updating
remote_protocol-structs to match, then "make check" will fail.
* src/Makefile.am (remote_protocol-structs): Extract list of
structs and member names from remote_protocol.o.
(check-local): Depend on it.
* src/remote_protocol-structs: New file.
---
src/Makefile.am | 19 +
src/remote_protocol-structs | 1308 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 1327 insertions(+), 0 deletions(-)
create mode 100644 src/remote_protocol-structs
diff --git a/src/Makefile.am b/src/Makefile.am
index 1fdf81d..1c92460 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -155,6 +155,25 @@ REMOTE_DRIVER_SOURCES = \
remote/remote_protocol.c \
remote/remote_protocol.h
+EXTRA_DIST += remote_protocol-structs
+check-local: remote_protocol-structs
+.PHONY: remote_protocol-structs
+remote_protocol-structs:
+ $(AM_V_GEN)if pdwtags --help > /dev/null 2>&1; then \
+ pdwtags libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
+ | perl -0777 -n \
+ -e 'foreach my $$p (split m!\n\n/\* \d+ \*/\n!)' \
+ -e ' { if ($$p =~ /^struct remote_/) {' \
+ -e ' $$p =~ s!\t*/\*.*?\*/!!sg;' \
+ -e ' $$p =~ s!\s+\n!\n!sg;' \
+ -e ' $$p =~ s!\s+$$!!;' \
+ -e ' print "$$p\n" } }' \
+ > $@-t; \
+ diff -u $@-t $@; st=$$?; rm -f $@-t; exit $$st; \
+ else \
+ echo 'WARNING: you lack pdwtags; skipping the $@ test'; \
+ fi
+
EXTRA_DIST += remote/remote_protocol.x remote/rpcgen_fix.pl
# Mock driver, covering domains, storage, networks, etc
diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs
new file mode 100644
index 0000000..c8f81f3
--- /dev/null
+++ b/src/remote_protocol-structs
@@ -0,0 +1,1308 @@
+struct remote_nonnull_domain {
+ remote_nonnull_string name;
+ remote_uuid uuid;
+ int id;
+};
+struct remote_nonnull_network {
+ remote_nonnull_string name;
+ remote_uuid uuid;
+};
+struct remote_nonnull_nwfilter {
+ remote_nonnull_string name;
+ remote_uuid uuid;
+};
+struct remote_nonnull_interface {
+ remote_nonnull_string name;
+ remote_nonnull_string mac;
+};
+struct remote_nonnull_storage_pool {
+ remote_nonnull_string name;
+ remote_uuid uuid;
+};
+struct remote_nonnull_storage_vol {
+ remote_nonnull_string pool;
+ remote_nonnull_string name;
+ remote_nonnull_string key;
+};
+struct remote_nonnull_node_device {
+ remote_nonnull_string name;
+};
+struct remote_nonnull_secret {
+ remote_uuid uuid;
+ int usageType;
+ remote_nonnull_string usageID;
+};
+struct remote_nonnull_domain_snapshot {
+ remote_nonnull_string name;
+ remote_nonnull_domain domain;
+};
+struct remote_error {
+ int code;
+ int domain;
+ remote_string message;
+ int level;
+ remote_domain dom;
+ remote_string str1;
+ remote_string str2;
+ remote_string str3;
+ int int1;
+ int int2;
+ remote_network net;
+};
+struct remote_vcpu_info {
+ u_int number;
+ int state;
+ uint64_t cpu_time;
+ int cpu;
+};
+struct remote_sched_param_value {
+ int type;
+ union {
+ int i;
+ u_int ui;
+ int64_t l;
+ uint64_t ul;
+ double d;
+ int b;
+ } remote_sched_param_value_u;
+};
+struct remote_sched_param {
+ remote_nonnull_string field;
+ remote_sched_param_value value;
+};
+struct remote_open_args {
+ remote_string name;
+ int flags;
+};
+struct remote_supports_feature_args {
+ int feature;
+};
+struct remote_supports_feature_ret {
+ int supported;
+};
+struct remote_get_type_ret {
+ remote_nonnull_string type;
+};
+struct remote_get_version_ret {
+ int64_t hv_ver;
+};
+struct remote_get_lib_version_ret {
+ int64_t lib_ver;
+};
+struct remote_get_hostname_ret {
+ remote_nonnull_string hostname;
+};
+struct remote_get_uri_ret {
+ remote_nonnull_string uri;
+};
+struct remote_get_max_vcpus_args {
+ remote_string type;
+};
+struct remote_get_max_vcpus_ret {
+ int max_vcpus;
+};
+struct remote_node_get_info_ret {
+ char model[32];
+ int64_t memory;
+ int cpus;
+ int mhz;
+ int nodes;
+ int sockets;
+ int cores;
+ int threads;
+};
+struct remote_get_capabilities_ret {
+ remote_nonnull_string capabilities;
+};
+struct remote_node_get_cells_free_memory_args {
+ int startCell;
+ int maxCells;
+};
+struct remote_node_get_cells_free_memory_ret {
+ struct {
+ u_int freeMems_len;
+ int64_t * freeMems_val;
+ } freeMems;
+};
+struct remote_node_get_free_memory_ret {
+ int64_t freeMem;
+};
+struct remote_domain_get_scheduler_type_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_scheduler_type_ret {
+ remote_nonnull_string type;
+ int nparams;
+};
+struct remote_domain_get_scheduler_parameters_args {
+ remote_nonnull_domain dom;
+ int nparams;
+};
+struct remote_domain_get_scheduler_parameters_ret {
+ struct {
+ u_int params_len;
+ remote_sched_param * params_val;
+ } params;
+};
+struct remote_domain_set_scheduler_parameters_args {
+ remote_nonnull_domain dom;
+ struct {
+ u_int params_len;
+ remote_sched_param * params_val;
+ } params;
+};
+struct remote_domain_block_stats_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string path;
+};
+struct remote_domain_block_stats_ret {
+ int64_t rd_req;
+ int64_t rd_bytes;
+ int64_t wr_req;
+ int64_t wr_bytes;
+ int64_t errs;
+};
+struct remote_domain_interface_stats_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string path;
+};
+struct remote_domain_interface_stats_ret {
+ int64_t rx_bytes;
+ int64_t rx_packets;
+ int64_t rx_errs;
+ int64_t rx_drop;
+ int64_t tx_bytes;
+ int64_t tx_packets;
+ int64_t tx_errs;
+ int64_t tx_drop;
+};
+struct remote_domain_memory_stats_args {
+ remote_nonnull_domain dom;
+ u_int maxStats;
+ u_int flags;
+};
+struct remote_domain_memory_stat {
+ int tag;
+ uint64_t val;
+};
+struct remote_domain_memory_stats_ret {
+ struct {
+ u_int stats_len;
+ remote_domain_memory_stat * stats_val;
+ } stats;
+};
+struct remote_domain_block_peek_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string path;
+ uint64_t offset;
+ u_int size;
+ u_int flags;
+};
+struct remote_domain_block_peek_ret {
+ struct {
+ u_int buffer_len;
+ char * buffer_val;
+ } buffer;
+};
+struct remote_domain_memory_peek_args {
+ remote_nonnull_domain dom;
+ uint64_t offset;
+ u_int size;
+ u_int flags;
+};
+struct remote_domain_memory_peek_ret {
+ struct {
+ u_int buffer_len;
+ char * buffer_val;
+ } buffer;
+};
+struct remote_domain_get_block_info_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string path;
+ u_int flags;
+};
+struct remote_domain_get_block_info_ret {
+ uint64_t allocation;
+ uint64_t capacity;
+ uint64_t physical;
+};
+struct remote_list_domains_args {
+ int maxids;
+};
+struct remote_list_domains_ret {
+ struct {
+ u_int ids_len;
+ int * ids_val;
+ } ids;
+};
+struct remote_num_of_domains_ret {
+ int num;
+};
+struct remote_domain_create_xml_args {
+ remote_nonnull_string xml_desc;
+ int flags;
+};
+struct remote_domain_create_xml_ret {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_lookup_by_id_args {
+ int id;
+};
+struct remote_domain_lookup_by_id_ret {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_lookup_by_uuid_args {
+ remote_uuid uuid;
+};
+struct remote_domain_lookup_by_uuid_ret {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_domain_lookup_by_name_ret {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_suspend_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_resume_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_shutdown_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_reboot_args {
+ remote_nonnull_domain dom;
+ int flags;
+};
+struct remote_domain_destroy_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_os_type_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_os_type_ret {
+ remote_nonnull_string type;
+};
+struct remote_domain_get_max_memory_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_max_memory_ret {
+ uint64_t memory;
+};
+struct remote_domain_set_max_memory_args {
+ remote_nonnull_domain dom;
+ uint64_t memory;
+};
+struct remote_domain_set_memory_args {
+ remote_nonnull_domain dom;
+ uint64_t memory;
+};
+struct remote_domain_get_info_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_info_ret {
+ u_char state;
+ uint64_t max_mem;
+ uint64_t memory;
+ u_short nr_virt_cpu;
+ uint64_t cpu_time;
+};
+struct remote_domain_save_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string to;
+};
+struct remote_domain_restore_args {
+ remote_nonnull_string from;
+};
+struct remote_domain_core_dump_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string to;
+ int flags;
+};
+struct remote_domain_dump_xml_args {
+ remote_nonnull_domain dom;
+ int flags;
+};
+struct remote_domain_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_domain_migrate_prepare_args {
+ remote_string uri_in;
+ uint64_t flags;
+ remote_string dname;
+ uint64_t resource;
+};
+struct remote_domain_migrate_prepare_ret {
+ struct {
+ u_int cookie_len;
+ char * cookie_val;
+ } cookie;
+ remote_string uri_out;
+};
+struct remote_domain_migrate_perform_args {
+ remote_nonnull_domain dom;
+ struct {
+ u_int cookie_len;
+ char * cookie_val;
+ } cookie;
+ remote_nonnull_string uri;
+ uint64_t flags;
+ remote_string dname;
+ uint64_t resource;
+};
+struct remote_domain_migrate_finish_args {
+ remote_nonnull_string dname;
+ struct {
+ u_int cookie_len;
+ char * cookie_val;
+ } cookie;
+ remote_nonnull_string uri;
+ uint64_t flags;
+};
+struct remote_domain_migrate_finish_ret {
+ remote_nonnull_domain ddom;
+};
+struct remote_domain_migrate_prepare2_args {
+ remote_string uri_in;
+ uint64_t flags;
+ remote_string dname;
+ uint64_t resource;
+ remote_nonnull_string dom_xml;
+};
+struct remote_domain_migrate_prepare2_ret {
+ struct {
+ u_int cookie_len;
+ char * cookie_val;
+ } cookie;
+ remote_string uri_out;
+};
+struct remote_domain_migrate_finish2_args {
+ remote_nonnull_string dname;
+ struct {
+ u_int cookie_len;
+ char * cookie_val;
+ } cookie;
+ remote_nonnull_string uri;
+ uint64_t flags;
+ int retcode;
+};
+struct remote_domain_migrate_finish2_ret {
+ remote_nonnull_domain ddom;
+};
+struct remote_list_defined_domains_args {
+ int maxnames;
+};
+struct remote_list_defined_domains_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_num_of_defined_domains_ret {
+ int num;
+};
+struct remote_domain_create_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_define_xml_args {
+ remote_nonnull_string xml;
+};
+struct remote_domain_define_xml_ret {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_undefine_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_set_vcpus_args {
+ remote_nonnull_domain dom;
+ int nvcpus;
+};
+struct remote_domain_pin_vcpu_args {
+ remote_nonnull_domain dom;
+ int vcpu;
+ struct {
+ u_int cpumap_len;
+ char * cpumap_val;
+ } cpumap;
+};
+struct remote_domain_get_vcpus_args {
+ remote_nonnull_domain dom;
+ int maxinfo;
+ int maplen;
+};
+struct remote_domain_get_vcpus_ret {
+ struct {
+ u_int info_len;
+ remote_vcpu_info * info_val;
+ } info;
+ struct {
+ u_int cpumaps_len;
+ char * cpumaps_val;
+ } cpumaps;
+};
+struct remote_domain_get_max_vcpus_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_max_vcpus_ret {
+ int num;
+};
+struct remote_domain_get_security_label_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_security_label_ret {
+ struct {
+ u_int label_len;
+ char * label_val;
+ } label;
+ int enforcing;
+};
+struct remote_node_get_security_model_ret {
+ struct {
+ u_int model_len;
+ char * model_val;
+ } model;
+ struct {
+ u_int doi_len;
+ char * doi_val;
+ } doi;
+};
+struct remote_domain_attach_device_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string xml;
+};
+struct remote_domain_attach_device_flags_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_domain_detach_device_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string xml;
+};
+struct remote_domain_detach_device_flags_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_domain_update_device_flags_args {
+ remote_nonnull_domain dom;
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_domain_get_autostart_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_autostart_ret {
+ int autostart;
+};
+struct remote_domain_set_autostart_args {
+ remote_nonnull_domain dom;
+ int autostart;
+};
+struct remote_num_of_networks_ret {
+ int num;
+};
+struct remote_list_networks_args {
+ int maxnames;
+};
+struct remote_list_networks_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_num_of_defined_networks_ret {
+ int num;
+};
+struct remote_list_defined_networks_args {
+ int maxnames;
+};
+struct remote_list_defined_networks_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_network_lookup_by_uuid_args {
+ remote_uuid uuid;
+};
+struct remote_network_lookup_by_uuid_ret {
+ remote_nonnull_network net;
+};
+struct remote_network_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_network_lookup_by_name_ret {
+ remote_nonnull_network net;
+};
+struct remote_network_create_xml_args {
+ remote_nonnull_string xml;
+};
+struct remote_network_create_xml_ret {
+ remote_nonnull_network net;
+};
+struct remote_network_define_xml_args {
+ remote_nonnull_string xml;
+};
+struct remote_network_define_xml_ret {
+ remote_nonnull_network net;
+};
+struct remote_network_undefine_args {
+ remote_nonnull_network net;
+};
+struct remote_network_create_args {
+ remote_nonnull_network net;
+};
+struct remote_network_destroy_args {
+ remote_nonnull_network net;
+};
+struct remote_network_dump_xml_args {
+ remote_nonnull_network net;
+ int flags;
+};
+struct remote_network_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_network_get_bridge_name_args {
+ remote_nonnull_network net;
+};
+struct remote_network_get_bridge_name_ret {
+ remote_nonnull_string name;
+};
+struct remote_network_get_autostart_args {
+ remote_nonnull_network net;
+};
+struct remote_network_get_autostart_ret {
+ int autostart;
+};
+struct remote_network_set_autostart_args {
+ remote_nonnull_network net;
+ int autostart;
+};
+struct remote_num_of_nwfilters_ret {
+ int num;
+};
+struct remote_list_nwfilters_args {
+ int maxnames;
+};
+struct remote_list_nwfilters_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_nwfilter_lookup_by_uuid_args {
+ remote_uuid uuid;
+};
+struct remote_nwfilter_lookup_by_uuid_ret {
+ remote_nonnull_nwfilter nwfilter;
+};
+struct remote_nwfilter_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_nwfilter_lookup_by_name_ret {
+ remote_nonnull_nwfilter nwfilter;
+};
+struct remote_nwfilter_define_xml_args {
+ remote_nonnull_string xml;
+};
+struct remote_nwfilter_define_xml_ret {
+ remote_nonnull_nwfilter nwfilter;
+};
+struct remote_nwfilter_undefine_args {
+ remote_nonnull_nwfilter nwfilter;
+};
+struct remote_nwfilter_get_xml_desc_args {
+ remote_nonnull_nwfilter nwfilter;
+ int flags;
+};
+struct remote_nwfilter_get_xml_desc_ret {
+ remote_nonnull_string xml;
+};
+struct remote_num_of_interfaces_ret {
+ int num;
+};
+struct remote_list_interfaces_args {
+ int maxnames;
+};
+struct remote_list_interfaces_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_num_of_defined_interfaces_ret {
+ int num;
+};
+struct remote_list_defined_interfaces_args {
+ int maxnames;
+};
+struct remote_list_defined_interfaces_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_interface_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_interface_lookup_by_name_ret {
+ remote_nonnull_interface iface;
+};
+struct remote_interface_lookup_by_mac_string_args {
+ remote_nonnull_string mac;
+};
+struct remote_interface_lookup_by_mac_string_ret {
+ remote_nonnull_interface iface;
+};
+struct remote_interface_get_xml_desc_args {
+ remote_nonnull_interface iface;
+ u_int flags;
+};
+struct remote_interface_get_xml_desc_ret {
+ remote_nonnull_string xml;
+};
+struct remote_interface_define_xml_args {
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_interface_define_xml_ret {
+ remote_nonnull_interface iface;
+};
+struct remote_interface_undefine_args {
+ remote_nonnull_interface iface;
+};
+struct remote_interface_create_args {
+ remote_nonnull_interface iface;
+ u_int flags;
+};
+struct remote_interface_destroy_args {
+ remote_nonnull_interface iface;
+ u_int flags;
+};
+struct remote_auth_list_ret {
+ struct {
+ u_int types_len;
+ remote_auth_type * types_val;
+ } types;
+};
+struct remote_auth_sasl_init_ret {
+ remote_nonnull_string mechlist;
+};
+struct remote_auth_sasl_start_args {
+ remote_nonnull_string mech;
+ int nil;
+ struct {
+ u_int data_len;
+ char * data_val;
+ } data;
+};
+struct remote_auth_sasl_start_ret {
+ int complete;
+ int nil;
+ struct {
+ u_int data_len;
+ char * data_val;
+ } data;
+};
+struct remote_auth_sasl_step_args {
+ int nil;
+ struct {
+ u_int data_len;
+ char * data_val;
+ } data;
+};
+struct remote_auth_sasl_step_ret {
+ int complete;
+ int nil;
+ struct {
+ u_int data_len;
+ char * data_val;
+ } data;
+};
+struct remote_auth_polkit_ret {
+ int complete;
+};
+struct remote_num_of_storage_pools_ret {
+ int num;
+};
+struct remote_list_storage_pools_args {
+ int maxnames;
+};
+struct remote_list_storage_pools_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_num_of_defined_storage_pools_ret {
+ int num;
+};
+struct remote_list_defined_storage_pools_args {
+ int maxnames;
+};
+struct remote_list_defined_storage_pools_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_find_storage_pool_sources_args {
+ remote_nonnull_string type;
+ remote_string srcSpec;
+ u_int flags;
+};
+struct remote_find_storage_pool_sources_ret {
+ remote_nonnull_string xml;
+};
+struct remote_storage_pool_lookup_by_uuid_args {
+ remote_uuid uuid;
+};
+struct remote_storage_pool_lookup_by_uuid_ret {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_storage_pool_lookup_by_name_ret {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_lookup_by_volume_args {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_pool_lookup_by_volume_ret {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_create_xml_args {
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_storage_pool_create_xml_ret {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_define_xml_args {
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_storage_pool_define_xml_ret {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_build_args {
+ remote_nonnull_storage_pool pool;
+ u_int flags;
+};
+struct remote_storage_pool_undefine_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_create_args {
+ remote_nonnull_storage_pool pool;
+ u_int flags;
+};
+struct remote_storage_pool_destroy_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_delete_args {
+ remote_nonnull_storage_pool pool;
+ u_int flags;
+};
+struct remote_storage_pool_refresh_args {
+ remote_nonnull_storage_pool pool;
+ u_int flags;
+};
+struct remote_storage_pool_dump_xml_args {
+ remote_nonnull_storage_pool pool;
+ u_int flags;
+};
+struct remote_storage_pool_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_storage_pool_get_info_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_get_info_ret {
+ u_char state;
+ uint64_t capacity;
+ uint64_t allocation;
+ uint64_t available;
+};
+struct remote_storage_pool_get_autostart_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_get_autostart_ret {
+ int autostart;
+};
+struct remote_storage_pool_set_autostart_args {
+ remote_nonnull_storage_pool pool;
+ int autostart;
+};
+struct remote_storage_pool_num_of_volumes_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_num_of_volumes_ret {
+ int num;
+};
+struct remote_storage_pool_list_volumes_args {
+ remote_nonnull_storage_pool pool;
+ int maxnames;
+};
+struct remote_storage_pool_list_volumes_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_storage_vol_lookup_by_name_args {
+ remote_nonnull_storage_pool pool;
+ remote_nonnull_string name;
+};
+struct remote_storage_vol_lookup_by_name_ret {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_lookup_by_key_args {
+ remote_nonnull_string key;
+};
+struct remote_storage_vol_lookup_by_key_ret {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_lookup_by_path_args {
+ remote_nonnull_string path;
+};
+struct remote_storage_vol_lookup_by_path_ret {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_create_xml_args {
+ remote_nonnull_storage_pool pool;
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_storage_vol_create_xml_ret {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_create_xml_from_args {
+ remote_nonnull_storage_pool pool;
+ remote_nonnull_string xml;
+ remote_nonnull_storage_vol clonevol;
+ u_int flags;
+};
+struct remote_storage_vol_create_xml_from_ret {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_delete_args {
+ remote_nonnull_storage_vol vol;
+ u_int flags;
+};
+struct remote_storage_vol_wipe_args {
+ remote_nonnull_storage_vol vol;
+ u_int flags;
+};
+struct remote_storage_vol_dump_xml_args {
+ remote_nonnull_storage_vol vol;
+ u_int flags;
+};
+struct remote_storage_vol_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_storage_vol_get_info_args {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_get_info_ret {
+ char type;
+ uint64_t capacity;
+ uint64_t allocation;
+};
+struct remote_storage_vol_get_path_args {
+ remote_nonnull_storage_vol vol;
+};
+struct remote_storage_vol_get_path_ret {
+ remote_nonnull_string name;
+};
+struct remote_node_num_of_devices_args {
+ remote_string cap;
+ u_int flags;
+};
+struct remote_node_num_of_devices_ret {
+ int num;
+};
+struct remote_node_list_devices_args {
+ remote_string cap;
+ int maxnames;
+ u_int flags;
+};
+struct remote_node_list_devices_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_node_device_lookup_by_name_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_lookup_by_name_ret {
+ remote_nonnull_node_device dev;
+};
+struct remote_node_device_dump_xml_args {
+ remote_nonnull_string name;
+ u_int flags;
+};
+struct remote_node_device_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_node_device_get_parent_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_get_parent_ret {
+ remote_string parent;
+};
+struct remote_node_device_num_of_caps_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_num_of_caps_ret {
+ int num;
+};
+struct remote_node_device_list_caps_args {
+ remote_nonnull_string name;
+ int maxnames;
+};
+struct remote_node_device_list_caps_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_node_device_dettach_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_re_attach_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_reset_args {
+ remote_nonnull_string name;
+};
+struct remote_node_device_create_xml_args {
+ remote_nonnull_string xml_desc;
+ int flags;
+};
+struct remote_node_device_create_xml_ret {
+ remote_nonnull_node_device dev;
+};
+struct remote_node_device_destroy_args {
+ remote_nonnull_string name;
+};
+struct remote_domain_events_register_ret {
+ int cb_registered;
+};
+struct remote_domain_events_deregister_ret {
+ int cb_registered;
+};
+struct remote_domain_event_lifecycle_msg {
+ remote_nonnull_domain dom;
+ int event;
+ int detail;
+};
+struct remote_domain_xml_from_native_args {
+ remote_nonnull_string nativeFormat;
+ remote_nonnull_string nativeConfig;
+ u_int flags;
+};
+struct remote_domain_xml_from_native_ret {
+ remote_nonnull_string domainXml;
+};
+struct remote_domain_xml_to_native_args {
+ remote_nonnull_string nativeFormat;
+ remote_nonnull_string domainXml;
+ u_int flags;
+};
+struct remote_domain_xml_to_native_ret {
+ remote_nonnull_string nativeConfig;
+};
+struct remote_num_of_secrets_ret {
+ int num;
+};
+struct remote_list_secrets_args {
+ int maxuuids;
+};
+struct remote_list_secrets_ret {
+ struct {
+ u_int uuids_len;
+ remote_nonnull_string * uuids_val;
+ } uuids;
+};
+struct remote_secret_lookup_by_uuid_args {
+ remote_uuid uuid;
+};
+struct remote_secret_lookup_by_uuid_ret {
+ remote_nonnull_secret secret;
+};
+struct remote_secret_define_xml_args {
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_secret_define_xml_ret {
+ remote_nonnull_secret secret;
+};
+struct remote_secret_get_xml_desc_args {
+ remote_nonnull_secret secret;
+ u_int flags;
+};
+struct remote_secret_get_xml_desc_ret {
+ remote_nonnull_string xml;
+};
+struct remote_secret_set_value_args {
+ remote_nonnull_secret secret;
+ struct {
+ u_int value_len;
+ char * value_val;
+ } value;
+ u_int flags;
+};
+struct remote_secret_get_value_args {
+ remote_nonnull_secret secret;
+ u_int flags;
+};
+struct remote_secret_get_value_ret {
+ struct {
+ u_int value_len;
+ char * value_val;
+ } value;
+};
+struct remote_secret_undefine_args {
+ remote_nonnull_secret secret;
+};
+struct remote_secret_lookup_by_usage_args {
+ int usageType;
+ remote_nonnull_string usageID;
+};
+struct remote_secret_lookup_by_usage_ret {
+ remote_nonnull_secret secret;
+};
+struct remote_domain_migrate_prepare_tunnel_args {
+ uint64_t flags;
+ remote_string dname;
+ uint64_t resource;
+ remote_nonnull_string dom_xml;
+};
+struct remote_is_secure_ret {
+ int secure;
+};
+struct remote_domain_is_active_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_is_active_ret {
+ int active;
+};
+struct remote_domain_is_persistent_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_is_persistent_ret {
+ int persistent;
+};
+struct remote_network_is_active_args {
+ remote_nonnull_network net;
+};
+struct remote_network_is_active_ret {
+ int active;
+};
+struct remote_network_is_persistent_args {
+ remote_nonnull_network net;
+};
+struct remote_network_is_persistent_ret {
+ int persistent;
+};
+struct remote_storage_pool_is_active_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_is_active_ret {
+ int active;
+};
+struct remote_storage_pool_is_persistent_args {
+ remote_nonnull_storage_pool pool;
+};
+struct remote_storage_pool_is_persistent_ret {
+ int persistent;
+};
+struct remote_interface_is_active_args {
+ remote_nonnull_interface iface;
+};
+struct remote_interface_is_active_ret {
+ int active;
+};
+struct remote_cpu_compare_args {
+ remote_nonnull_string xml;
+ u_int flags;
+};
+struct remote_cpu_compare_ret {
+ int result;
+};
+struct remote_cpu_baseline_args {
+ struct {
+ u_int xmlCPUs_len;
+ remote_nonnull_string * xmlCPUs_val;
+ } xmlCPUs;
+ u_int flags;
+};
+struct remote_cpu_baseline_ret {
+ remote_nonnull_string cpu;
+};
+struct remote_domain_get_job_info_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_get_job_info_ret {
+ int type;
+ uint64_t timeElapsed;
+ uint64_t timeRemaining;
+ uint64_t dataTotal;
+ uint64_t dataProcessed;
+ uint64_t dataRemaining;
+ uint64_t memTotal;
+ uint64_t memProcessed;
+ uint64_t memRemaining;
+ uint64_t fileTotal;
+ uint64_t fileProcessed;
+ uint64_t fileRemaining;
+};
+struct remote_domain_abort_job_args {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_migrate_set_max_downtime_args {
+ remote_nonnull_domain dom;
+ uint64_t downtime;
+ u_int flags;
+};
+struct remote_domain_events_register_any_args {
+ int eventID;
+};
+struct remote_domain_events_deregister_any_args {
+ int eventID;
+};
+struct remote_domain_event_reboot_msg {
+ remote_nonnull_domain dom;
+};
+struct remote_domain_event_rtc_change_msg {
+ remote_nonnull_domain dom;
+ int64_t offset;
+};
+struct remote_domain_event_watchdog_msg {
+ remote_nonnull_domain dom;
+ int action;
+};
+struct remote_domain_event_io_error_msg {
+ remote_nonnull_domain dom;
+ remote_nonnull_string srcPath;
+ remote_nonnull_string devAlias;
+ int action;
+};
+struct remote_domain_event_io_error_reason_msg {
+ remote_nonnull_domain dom;
+ remote_nonnull_string srcPath;
+ remote_nonnull_string devAlias;
+ int action;
+ remote_nonnull_string reason;
+};
+struct remote_domain_event_graphics_address {
+ int family;
+ remote_nonnull_string node;
+ remote_nonnull_string service;
+};
+struct remote_domain_event_graphics_identity {
+ remote_nonnull_string type;
+ remote_nonnull_string name;
+};
+struct remote_domain_event_graphics_msg {
+ remote_nonnull_domain dom;
+ int phase;
+ remote_domain_event_graphics_address local;
+ remote_domain_event_graphics_address remote;
+ remote_nonnull_string authScheme;
+ struct {
+ u_int subject_len;
+ remote_domain_event_graphics_identity * subject_val;
+ } subject;
+};
+struct remote_domain_managed_save_args {
+ remote_nonnull_domain dom;
+ u_int flags;
+};
+struct remote_domain_has_managed_save_image_args {
+ remote_nonnull_domain dom;
+ u_int flags;
+};
+struct remote_domain_has_managed_save_image_ret {
+ int ret;
+};
+struct remote_domain_managed_save_remove_args {
+ remote_nonnull_domain dom;
+ u_int flags;
+};
+struct remote_domain_snapshot_create_xml_args {
+ remote_nonnull_domain domain;
+ remote_nonnull_string xml_desc;
+ int flags;
+};
+struct remote_domain_snapshot_create_xml_ret {
+ remote_nonnull_domain_snapshot snap;
+};
+struct remote_domain_snapshot_dump_xml_args {
+ remote_nonnull_domain_snapshot snap;
+ int flags;
+};
+struct remote_domain_snapshot_dump_xml_ret {
+ remote_nonnull_string xml;
+};
+struct remote_domain_snapshot_num_args {
+ remote_nonnull_domain domain;
+ int flags;
+};
+struct remote_domain_snapshot_num_ret {
+ int num;
+};
+struct remote_domain_snapshot_list_names_args {
+ remote_nonnull_domain domain;
+ int nameslen;
+ int flags;
+};
+struct remote_domain_snapshot_list_names_ret {
+ struct {
+ u_int names_len;
+ remote_nonnull_string * names_val;
+ } names;
+};
+struct remote_domain_snapshot_lookup_by_name_args {
+ remote_nonnull_domain domain;
+ remote_nonnull_string name;
+ int flags;
+};
+struct remote_domain_snapshot_lookup_by_name_ret {
+ remote_nonnull_domain_snapshot snap;
+};
+struct remote_domain_has_current_snapshot_args {
+ remote_nonnull_domain domain;
+ int flags;
+};
+struct remote_domain_has_current_snapshot_ret {
+ int result;
+};
+struct remote_domain_snapshot_current_args {
+ remote_nonnull_domain domain;
+ int flags;
+};
+struct remote_domain_snapshot_current_ret {
+ remote_nonnull_domain_snapshot snap;
+};
+struct remote_domain_revert_to_snapshot_args {
+ remote_nonnull_domain_snapshot snap;
+ int flags;
+};
+struct remote_domain_snapshot_delete_args {
+ remote_nonnull_domain_snapshot snap;
+ int flags;
+};
+struct remote_message_header {
+ u_int prog;
+ u_int vers;
+ remote_procedure proc;
+ remote_message_type type;
+ u_int serial;
+ remote_message_status status;
+};
--
1.7.1.166.gf2086