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@xxxxxxxxxx> 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list