For some reason the virNodeGetFreeMemroy and virNodeGetCellsFreeMemory NUMA APIs were never added to the remote driver. THis patch fixes that. It also updates the 2 perl scripts which post-process the RPC files to not insert TABs, since we'd previously removed them from all the generated files. Finally, the remote_protocol.x has TAB -> SPACE conversion since we missed that first time around qemud/remote.c | 47 + qemud/remote_dispatch_localvars.h | 3 qemud/remote_dispatch_proc_switch.h | 15 qemud/remote_dispatch_prototypes.h | 2 qemud/remote_generate_stubs.pl | 20 qemud/remote_protocol.c | 30 + qemud/remote_protocol.h | 918 ++++++++++++++++++------------------ qemud/remote_protocol.x | 21 qemud/rpcgen_fix.pl | 4 src/remote_internal.c | 55 ++ 10 files changed, 657 insertions(+), 458 deletions(-) Regards, Daniel Index: src/remote_internal.c =================================================================== RCS file: /data/cvs/libvirt/src/remote_internal.c,v retrieving revision 1.74 diff -u -p -r1.74 remote_internal.c --- src/remote_internal.c 15 May 2008 14:21:34 -0000 1.74 +++ src/remote_internal.c 15 May 2008 21:07:22 -0000 @@ -1329,6 +1329,58 @@ remoteGetCapabilities (virConnectPtr con } static int +remoteNodeGetCellsFreeMemory(virConnectPtr conn, + unsigned long long *freeMems, + int startCell, + int maxCells) +{ + remote_node_get_cells_free_memory_args args; + remote_node_get_cells_free_memory_ret ret; + int i; + GET_PRIVATE (conn, -1); + + if (maxCells > REMOTE_NODE_MAX_CELLS) { + errorf (conn, VIR_ERR_RPC, + _("too many NUMA cells: %d > %d"), + maxCells, + REMOTE_NODE_MAX_CELLS); + return -1; + } + + args.startCell = startCell; + args.maxCells = maxCells; + + memset (&ret, 0, sizeof ret); + if (call (conn, priv, 0, REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY, + (xdrproc_t) xdr_remote_node_get_cells_free_memory_args, (char *)&args, + (xdrproc_t) xdr_remote_node_get_cells_free_memory_ret, (char *)&ret) == -1) + return -1; + + for (i = 0 ; i < ret.freeMems.freeMems_len ; i++) + freeMems[i] = ret.freeMems.freeMems_val[i]; + + xdr_free((xdrproc_t) xdr_remote_node_get_cells_free_memory_ret, (char *) &ret); + + return ret.freeMems.freeMems_len; +} + +static unsigned long long +remoteNodeGetFreeMemory (virConnectPtr conn) +{ + remote_node_get_free_memory_ret ret; + GET_PRIVATE (conn, -1); + + memset (&ret, 0, sizeof ret); + if (call (conn, priv, 0, REMOTE_PROC_NODE_GET_FREE_MEMORY, + (xdrproc_t) xdr_void, NULL, + (xdrproc_t) xdr_remote_node_get_free_memory_ret, (char *)&ret) == -1) + return 0; + + return ret.freeMem; +} + + +static int remoteListDomains (virConnectPtr conn, int *ids, int maxids) { int i; @@ -4728,7 +4780,8 @@ static virDriver driver = { .domainMigrateFinish = remoteDomainMigrateFinish, .domainBlockStats = remoteDomainBlockStats, .domainInterfaceStats = remoteDomainInterfaceStats, - .nodeGetCellsFreeMemory = NULL, + .nodeGetCellsFreeMemory = remoteNodeGetCellsFreeMemory, + .getFreeMemory = remoteNodeGetFreeMemory, }; static virNetworkDriver network_driver = { Index: qemud/remote.c =================================================================== RCS file: /data/cvs/libvirt/qemud/remote.c,v retrieving revision 1.31 diff -u -p -r1.31 remote.c --- qemud/remote.c 15 May 2008 06:12:32 -0000 1.31 +++ qemud/remote.c 15 May 2008 21:07:31 -0000 @@ -596,6 +596,53 @@ remoteDispatchGetCapabilities (struct qe } static int +remoteDispatchNodeGetCellsFreeMemory (struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client, + remote_message_header *req, + remote_node_get_cells_free_memory_args *args, + remote_node_get_cells_free_memory_ret *ret) +{ + CHECK_CONN(client); + + if (args->maxCells > REMOTE_NODE_MAX_CELLS) { + remoteDispatchError (client, req, + "%s", _("maxCells > REMOTE_NODE_MAX_CELLS")); + return -2; + } + + /* Allocate return buffer. */ + ret->freeMems.freeMems_val = calloc (args->maxCells, sizeof (*(ret->freeMems.freeMems_val))); + + ret->freeMems.freeMems_len = virNodeGetCellsFreeMemory(client->conn, + (unsigned long long *)ret->freeMems.freeMems_val, + args->startCell, + args->maxCells); + if (ret->freeMems.freeMems_len == 0) + return -1; + + return 0; +} + + +static int +remoteDispatchNodeGetFreeMemory (struct qemud_server *server ATTRIBUTE_UNUSED, + struct qemud_client *client, + remote_message_header *req, + void *args ATTRIBUTE_UNUSED, + remote_node_get_free_memory_ret *ret) +{ + unsigned long long freeMem; + CHECK_CONN(client); + + freeMem = virNodeGetFreeMemory(client->conn); + if (freeMem == 0) return -1; + + ret->freeMem = freeMem; + return 0; +} + + +static int remoteDispatchDomainGetSchedulerType (struct qemud_server *server ATTRIBUTE_UNUSED, struct qemud_client *client, remote_message_header *req, Index: qemud/remote_dispatch_localvars.h =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_dispatch_localvars.h,v retrieving revision 1.9 diff -u -p -r1.9 remote_dispatch_localvars.h --- qemud/remote_dispatch_localvars.h 20 Feb 2008 15:22:35 -0000 1.9 +++ qemud/remote_dispatch_localvars.h 15 May 2008 21:07:31 -0000 @@ -98,6 +98,8 @@ remote_domain_save_args lv_remote_domain remote_domain_migrate_prepare_args lv_remote_domain_migrate_prepare_args; remote_domain_migrate_prepare_ret lv_remote_domain_migrate_prepare_ret; remote_domain_undefine_args lv_remote_domain_undefine_args; +remote_node_get_cells_free_memory_args lv_remote_node_get_cells_free_memory_args; +remote_node_get_cells_free_memory_ret lv_remote_node_get_cells_free_memory_ret; remote_domain_get_scheduler_type_args lv_remote_domain_get_scheduler_type_args; remote_domain_get_scheduler_type_ret lv_remote_domain_get_scheduler_type_ret; remote_get_version_ret lv_remote_get_version_ret; @@ -122,6 +124,7 @@ remote_storage_pool_undefine_args lv_rem remote_domain_set_autostart_args lv_remote_domain_set_autostart_args; remote_storage_pool_get_autostart_args lv_remote_storage_pool_get_autostart_args; remote_storage_pool_get_autostart_ret lv_remote_storage_pool_get_autostart_ret; +remote_node_get_free_memory_ret lv_remote_node_get_free_memory_ret; remote_storage_vol_get_path_args lv_remote_storage_vol_get_path_args; remote_storage_vol_get_path_ret lv_remote_storage_vol_get_path_ret; remote_domain_lookup_by_id_args lv_remote_domain_lookup_by_id_args; Index: qemud/remote_dispatch_proc_switch.h =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_dispatch_proc_switch.h,v retrieving revision 1.10 diff -u -p -r1.10 remote_dispatch_proc_switch.h --- qemud/remote_dispatch_proc_switch.h 10 Apr 2008 16:54:54 -0000 1.10 +++ qemud/remote_dispatch_proc_switch.h 15 May 2008 21:07:31 -0000 @@ -491,6 +491,21 @@ case REMOTE_PROC_NETWORK_UNDEFINE: args = (char *) &lv_remote_network_undefine_args; memset (&lv_remote_network_undefine_args, 0, sizeof lv_remote_network_undefine_args); break; +case REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY: + fn = (dispatch_fn) remoteDispatchNodeGetCellsFreeMemory; + args_filter = (xdrproc_t) xdr_remote_node_get_cells_free_memory_args; + args = (char *) &lv_remote_node_get_cells_free_memory_args; + memset (&lv_remote_node_get_cells_free_memory_args, 0, sizeof lv_remote_node_get_cells_free_memory_args); + ret_filter = (xdrproc_t) xdr_remote_node_get_cells_free_memory_ret; + ret = (char *) &lv_remote_node_get_cells_free_memory_ret; + memset (&lv_remote_node_get_cells_free_memory_ret, 0, sizeof lv_remote_node_get_cells_free_memory_ret); + break; +case REMOTE_PROC_NODE_GET_FREE_MEMORY: + fn = (dispatch_fn) remoteDispatchNodeGetFreeMemory; + ret_filter = (xdrproc_t) xdr_remote_node_get_free_memory_ret; + ret = (char *) &lv_remote_node_get_free_memory_ret; + memset (&lv_remote_node_get_free_memory_ret, 0, sizeof lv_remote_node_get_free_memory_ret); + break; case REMOTE_PROC_NODE_GET_INFO: fn = (dispatch_fn) remoteDispatchNodeGetInfo; ret_filter = (xdrproc_t) xdr_remote_node_get_info_ret; Index: qemud/remote_dispatch_prototypes.h =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_dispatch_prototypes.h,v retrieving revision 1.10 diff -u -p -r1.10 remote_dispatch_prototypes.h --- qemud/remote_dispatch_prototypes.h 20 Feb 2008 15:22:35 -0000 1.10 +++ qemud/remote_dispatch_prototypes.h 15 May 2008 21:07:31 -0000 @@ -67,6 +67,8 @@ static int remoteDispatchNetworkLookupBy static int remoteDispatchNetworkLookupByUuid (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_network_lookup_by_uuid_args *args, remote_network_lookup_by_uuid_ret *ret); static int remoteDispatchNetworkSetAutostart (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_network_set_autostart_args *args, void *ret); static int remoteDispatchNetworkUndefine (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_network_undefine_args *args, void *ret); +static int remoteDispatchNodeGetCellsFreeMemory (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, remote_node_get_cells_free_memory_args *args, remote_node_get_cells_free_memory_ret *ret); +static int remoteDispatchNodeGetFreeMemory (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, void *args, remote_node_get_free_memory_ret *ret); static int remoteDispatchNodeGetInfo (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, void *args, remote_node_get_info_ret *ret); static int remoteDispatchNumOfDefinedDomains (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, void *args, remote_num_of_defined_domains_ret *ret); static int remoteDispatchNumOfDefinedNetworks (struct qemud_server *server, struct qemud_client *client, remote_message_header *req, void *args, remote_num_of_defined_networks_ret *ret); Index: qemud/remote_generate_stubs.pl =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_generate_stubs.pl,v retrieving revision 1.2 diff -u -p -r1.2 remote_generate_stubs.pl --- qemud/remote_generate_stubs.pl 5 Dec 2007 15:34:05 -0000 1.2 +++ qemud/remote_generate_stubs.pl 15 May 2008 21:07:31 -0000 @@ -84,8 +84,8 @@ if ($opt_d) { my @keys = sort (keys %calls); foreach (@keys) { print "$_:\n"; - print "\tname $calls{$_}->{name} ($calls{$_}->{ProcName})\n"; - print "\t$calls{$_}->{args} -> $calls{$_}->{ret}\n"; + print " name $calls{$_}->{name} ($calls{$_}->{ProcName})\n"; + print " $calls{$_}->{args} -> $calls{$_}->{ret}\n"; } } @@ -117,18 +117,18 @@ elsif ($opt_w) { my @keys = sort (keys %calls); foreach (@keys) { print "case REMOTE_PROC_$calls{$_}->{UC_NAME}:\n"; - print "\tfn = (dispatch_fn) remoteDispatch$calls{$_}->{ProcName};\n"; + print " fn = (dispatch_fn) remoteDispatch$calls{$_}->{ProcName};\n"; if ($calls{$_}->{args} ne "void") { - print "\targs_filter = (xdrproc_t) xdr_$calls{$_}->{args};\n"; - print "\targs = (char *) &lv_$calls{$_}->{args};\n"; - print "\tmemset (&lv_$calls{$_}->{args}, 0, sizeof lv_$calls{$_}->{args});\n" + print " args_filter = (xdrproc_t) xdr_$calls{$_}->{args};\n"; + print " args = (char *) &lv_$calls{$_}->{args};\n"; + print " memset (&lv_$calls{$_}->{args}, 0, sizeof lv_$calls{$_}->{args});\n" } if ($calls{$_}->{ret} ne "void") { - print "\tret_filter = (xdrproc_t) xdr_$calls{$_}->{ret};\n"; - print "\tret = (char *) &lv_$calls{$_}->{ret};\n"; - print "\tmemset (&lv_$calls{$_}->{ret}, 0, sizeof lv_$calls{$_}->{ret});\n" + print " ret_filter = (xdrproc_t) xdr_$calls{$_}->{ret};\n"; + print " ret = (char *) &lv_$calls{$_}->{ret};\n"; + print " memset (&lv_$calls{$_}->{ret}, 0, sizeof lv_$calls{$_}->{ret});\n" } - print "\tbreak;\n"; + print " break;\n"; } } Index: qemud/remote_protocol.c =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_protocol.c,v retrieving revision 1.10 diff -u -p -r1.10 remote_protocol.c --- qemud/remote_protocol.c 10 Apr 2008 16:54:54 -0000 1.10 +++ qemud/remote_protocol.c 15 May 2008 21:07:31 -0000 @@ -387,6 +387,36 @@ xdr_remote_get_capabilities_ret (XDR *xd } bool_t +xdr_remote_node_get_cells_free_memory_args (XDR *xdrs, remote_node_get_cells_free_memory_args *objp) +{ + + if (!xdr_int (xdrs, &objp->startCell)) + return FALSE; + if (!xdr_int (xdrs, &objp->maxCells)) + return FALSE; + return TRUE; +} + +bool_t +xdr_remote_node_get_cells_free_memory_ret (XDR *xdrs, remote_node_get_cells_free_memory_ret *objp) +{ + + if (!xdr_array (xdrs, (char **)&objp->freeMems.freeMems_val, (u_int *) &objp->freeMems.freeMems_len, REMOTE_NODE_MAX_CELLS, + sizeof (quad_t), (xdrproc_t) xdr_quad_t)) + return FALSE; + return TRUE; +} + +bool_t +xdr_remote_node_get_free_memory_ret (XDR *xdrs, remote_node_get_free_memory_ret *objp) +{ + + if (!xdr_quad_t (xdrs, &objp->freeMem)) + return FALSE; + return TRUE; +} + +bool_t xdr_remote_domain_get_scheduler_type_args (XDR *xdrs, remote_domain_get_scheduler_type_args *objp) { Index: qemud/remote_protocol.h =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_protocol.h,v retrieving revision 1.11 diff -u -p -r1.11 remote_protocol.h --- qemud/remote_protocol.h 10 Apr 2008 16:54:54 -0000 1.11 +++ qemud/remote_protocol.h 15 May 2008 21:07:31 -0000 @@ -30,34 +30,35 @@ typedef remote_nonnull_string *remote_st #define REMOTE_STORAGE_POOL_NAME_LIST_MAX 256 #define REMOTE_STORAGE_VOL_NAME_LIST_MAX 1024 #define REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX 16 +#define REMOTE_NODE_MAX_CELLS 1024 #define REMOTE_AUTH_SASL_DATA_MAX 65536 #define REMOTE_AUTH_TYPE_LIST_MAX 20 typedef char remote_uuid[VIR_UUID_BUFLEN]; struct remote_nonnull_domain { - remote_nonnull_string name; - remote_uuid uuid; - int id; + remote_nonnull_string name; + remote_uuid uuid; + int id; }; typedef struct remote_nonnull_domain remote_nonnull_domain; struct remote_nonnull_network { - remote_nonnull_string name; - remote_uuid uuid; + remote_nonnull_string name; + remote_uuid uuid; }; typedef struct remote_nonnull_network remote_nonnull_network; struct remote_nonnull_storage_pool { - remote_nonnull_string name; - remote_uuid uuid; + remote_nonnull_string name; + remote_uuid uuid; }; typedef struct remote_nonnull_storage_pool remote_nonnull_storage_pool; struct remote_nonnull_storage_vol { - remote_nonnull_string pool; - remote_nonnull_string name; - remote_nonnull_string key; + remote_nonnull_string pool; + remote_nonnull_string name; + remote_nonnull_string key; }; typedef struct remote_nonnull_storage_vol remote_nonnull_storage_vol; @@ -70,1076 +71,1097 @@ typedef remote_nonnull_storage_pool *rem typedef remote_nonnull_storage_vol *remote_storage_vol; 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; + 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; }; typedef struct remote_error remote_error; enum remote_auth_type { - REMOTE_AUTH_NONE = 0, - REMOTE_AUTH_SASL = 1, - REMOTE_AUTH_POLKIT = 2, + REMOTE_AUTH_NONE = 0, + REMOTE_AUTH_SASL = 1, + REMOTE_AUTH_POLKIT = 2, }; typedef enum remote_auth_type remote_auth_type; struct remote_vcpu_info { - u_int number; - int state; - u_quad_t cpu_time; - int cpu; + u_int number; + int state; + u_quad_t cpu_time; + int cpu; }; typedef struct remote_vcpu_info remote_vcpu_info; struct remote_sched_param_value { - int type; - union { - int i; - u_int ui; - quad_t l; - u_quad_t ul; - double d; - int b; - } remote_sched_param_value_u; + int type; + union { + int i; + u_int ui; + quad_t l; + u_quad_t ul; + double d; + int b; + } remote_sched_param_value_u; }; typedef struct remote_sched_param_value remote_sched_param_value; struct remote_sched_param { - remote_nonnull_string field; - remote_sched_param_value value; + remote_nonnull_string field; + remote_sched_param_value value; }; typedef struct remote_sched_param remote_sched_param; struct remote_open_args { - remote_string name; - int flags; + remote_string name; + int flags; }; typedef struct remote_open_args remote_open_args; struct remote_supports_feature_args { - int feature; + int feature; }; typedef struct remote_supports_feature_args remote_supports_feature_args; struct remote_supports_feature_ret { - int supported; + int supported; }; typedef struct remote_supports_feature_ret remote_supports_feature_ret; struct remote_get_type_ret { - remote_nonnull_string type; + remote_nonnull_string type; }; typedef struct remote_get_type_ret remote_get_type_ret; struct remote_get_version_ret { - quad_t hv_ver; + quad_t hv_ver; }; typedef struct remote_get_version_ret remote_get_version_ret; struct remote_get_hostname_ret { - remote_nonnull_string hostname; + remote_nonnull_string hostname; }; typedef struct remote_get_hostname_ret remote_get_hostname_ret; struct remote_get_max_vcpus_args { - remote_string type; + remote_string type; }; typedef struct remote_get_max_vcpus_args remote_get_max_vcpus_args; struct remote_get_max_vcpus_ret { - int max_vcpus; + int max_vcpus; }; typedef struct remote_get_max_vcpus_ret remote_get_max_vcpus_ret; struct remote_node_get_info_ret { - char model[32]; - quad_t memory; - int cpus; - int mhz; - int nodes; - int sockets; - int cores; - int threads; + char model[32]; + quad_t memory; + int cpus; + int mhz; + int nodes; + int sockets; + int cores; + int threads; }; typedef struct remote_node_get_info_ret remote_node_get_info_ret; struct remote_get_capabilities_ret { - remote_nonnull_string capabilities; + remote_nonnull_string capabilities; }; typedef struct remote_get_capabilities_ret remote_get_capabilities_ret; +struct remote_node_get_cells_free_memory_args { + int startCell; + int maxCells; +}; +typedef struct remote_node_get_cells_free_memory_args remote_node_get_cells_free_memory_args; + +struct remote_node_get_cells_free_memory_ret { + struct { + u_int freeMems_len; + quad_t *freeMems_val; + } freeMems; +}; +typedef struct remote_node_get_cells_free_memory_ret remote_node_get_cells_free_memory_ret; + +struct remote_node_get_free_memory_ret { + quad_t freeMem; +}; +typedef struct remote_node_get_free_memory_ret remote_node_get_free_memory_ret; + struct remote_domain_get_scheduler_type_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_scheduler_type_args remote_domain_get_scheduler_type_args; struct remote_domain_get_scheduler_type_ret { - remote_nonnull_string type; - int nparams; + remote_nonnull_string type; + int nparams; }; typedef struct remote_domain_get_scheduler_type_ret remote_domain_get_scheduler_type_ret; struct remote_domain_get_scheduler_parameters_args { - remote_nonnull_domain dom; - int nparams; + remote_nonnull_domain dom; + int nparams; }; typedef struct remote_domain_get_scheduler_parameters_args remote_domain_get_scheduler_parameters_args; struct remote_domain_get_scheduler_parameters_ret { - struct { - u_int params_len; - remote_sched_param *params_val; - } params; + struct { + u_int params_len; + remote_sched_param *params_val; + } params; }; typedef struct remote_domain_get_scheduler_parameters_ret remote_domain_get_scheduler_parameters_ret; struct remote_domain_set_scheduler_parameters_args { - remote_nonnull_domain dom; - struct { - u_int params_len; - remote_sched_param *params_val; - } params; + remote_nonnull_domain dom; + struct { + u_int params_len; + remote_sched_param *params_val; + } params; }; typedef struct remote_domain_set_scheduler_parameters_args remote_domain_set_scheduler_parameters_args; struct remote_domain_block_stats_args { - remote_nonnull_domain dom; - remote_nonnull_string path; + remote_nonnull_domain dom; + remote_nonnull_string path; }; typedef struct remote_domain_block_stats_args remote_domain_block_stats_args; struct remote_domain_block_stats_ret { - quad_t rd_req; - quad_t rd_bytes; - quad_t wr_req; - quad_t wr_bytes; - quad_t errs; + quad_t rd_req; + quad_t rd_bytes; + quad_t wr_req; + quad_t wr_bytes; + quad_t errs; }; typedef struct remote_domain_block_stats_ret remote_domain_block_stats_ret; struct remote_domain_interface_stats_args { - remote_nonnull_domain dom; - remote_nonnull_string path; + remote_nonnull_domain dom; + remote_nonnull_string path; }; typedef struct remote_domain_interface_stats_args remote_domain_interface_stats_args; struct remote_domain_interface_stats_ret { - quad_t rx_bytes; - quad_t rx_packets; - quad_t rx_errs; - quad_t rx_drop; - quad_t tx_bytes; - quad_t tx_packets; - quad_t tx_errs; - quad_t tx_drop; + quad_t rx_bytes; + quad_t rx_packets; + quad_t rx_errs; + quad_t rx_drop; + quad_t tx_bytes; + quad_t tx_packets; + quad_t tx_errs; + quad_t tx_drop; }; typedef struct remote_domain_interface_stats_ret remote_domain_interface_stats_ret; struct remote_list_domains_args { - int maxids; + int maxids; }; typedef struct remote_list_domains_args remote_list_domains_args; struct remote_list_domains_ret { - struct { - u_int ids_len; - int *ids_val; - } ids; + struct { + u_int ids_len; + int *ids_val; + } ids; }; typedef struct remote_list_domains_ret remote_list_domains_ret; struct remote_num_of_domains_ret { - int num; + int num; }; typedef struct remote_num_of_domains_ret remote_num_of_domains_ret; struct remote_domain_create_linux_args { - remote_nonnull_string xml_desc; - int flags; + remote_nonnull_string xml_desc; + int flags; }; typedef struct remote_domain_create_linux_args remote_domain_create_linux_args; struct remote_domain_create_linux_ret { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_create_linux_ret remote_domain_create_linux_ret; struct remote_domain_lookup_by_id_args { - int id; + int id; }; typedef struct remote_domain_lookup_by_id_args remote_domain_lookup_by_id_args; struct remote_domain_lookup_by_id_ret { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_lookup_by_id_ret remote_domain_lookup_by_id_ret; struct remote_domain_lookup_by_uuid_args { - remote_uuid uuid; + remote_uuid uuid; }; typedef struct remote_domain_lookup_by_uuid_args remote_domain_lookup_by_uuid_args; struct remote_domain_lookup_by_uuid_ret { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_lookup_by_uuid_ret remote_domain_lookup_by_uuid_ret; struct remote_domain_lookup_by_name_args { - remote_nonnull_string name; + remote_nonnull_string name; }; typedef struct remote_domain_lookup_by_name_args remote_domain_lookup_by_name_args; struct remote_domain_lookup_by_name_ret { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_lookup_by_name_ret remote_domain_lookup_by_name_ret; struct remote_domain_suspend_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_suspend_args remote_domain_suspend_args; struct remote_domain_resume_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_resume_args remote_domain_resume_args; struct remote_domain_shutdown_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_shutdown_args remote_domain_shutdown_args; struct remote_domain_reboot_args { - remote_nonnull_domain dom; - int flags; + remote_nonnull_domain dom; + int flags; }; typedef struct remote_domain_reboot_args remote_domain_reboot_args; struct remote_domain_destroy_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_destroy_args remote_domain_destroy_args; struct remote_domain_get_os_type_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_os_type_args remote_domain_get_os_type_args; struct remote_domain_get_os_type_ret { - remote_nonnull_string type; + remote_nonnull_string type; }; typedef struct remote_domain_get_os_type_ret remote_domain_get_os_type_ret; struct remote_domain_get_max_memory_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_max_memory_args remote_domain_get_max_memory_args; struct remote_domain_get_max_memory_ret { - u_quad_t memory; + u_quad_t memory; }; typedef struct remote_domain_get_max_memory_ret remote_domain_get_max_memory_ret; struct remote_domain_set_max_memory_args { - remote_nonnull_domain dom; - u_quad_t memory; + remote_nonnull_domain dom; + u_quad_t memory; }; typedef struct remote_domain_set_max_memory_args remote_domain_set_max_memory_args; struct remote_domain_set_memory_args { - remote_nonnull_domain dom; - u_quad_t memory; + remote_nonnull_domain dom; + u_quad_t memory; }; typedef struct remote_domain_set_memory_args remote_domain_set_memory_args; struct remote_domain_get_info_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_info_args remote_domain_get_info_args; struct remote_domain_get_info_ret { - u_char state; - u_quad_t max_mem; - u_quad_t memory; - u_short nr_virt_cpu; - u_quad_t cpu_time; + u_char state; + u_quad_t max_mem; + u_quad_t memory; + u_short nr_virt_cpu; + u_quad_t cpu_time; }; typedef struct remote_domain_get_info_ret remote_domain_get_info_ret; struct remote_domain_save_args { - remote_nonnull_domain dom; - remote_nonnull_string to; + remote_nonnull_domain dom; + remote_nonnull_string to; }; typedef struct remote_domain_save_args remote_domain_save_args; struct remote_domain_restore_args { - remote_nonnull_string from; + remote_nonnull_string from; }; typedef struct remote_domain_restore_args remote_domain_restore_args; struct remote_domain_core_dump_args { - remote_nonnull_domain dom; - remote_nonnull_string to; - int flags; + remote_nonnull_domain dom; + remote_nonnull_string to; + int flags; }; typedef struct remote_domain_core_dump_args remote_domain_core_dump_args; struct remote_domain_dump_xml_args { - remote_nonnull_domain dom; - int flags; + remote_nonnull_domain dom; + int flags; }; typedef struct remote_domain_dump_xml_args remote_domain_dump_xml_args; struct remote_domain_dump_xml_ret { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_domain_dump_xml_ret remote_domain_dump_xml_ret; struct remote_domain_migrate_prepare_args { - remote_string uri_in; - u_quad_t flags; - remote_string dname; - u_quad_t resource; + remote_string uri_in; + u_quad_t flags; + remote_string dname; + u_quad_t resource; }; typedef struct remote_domain_migrate_prepare_args remote_domain_migrate_prepare_args; struct remote_domain_migrate_prepare_ret { - struct { - u_int cookie_len; - char *cookie_val; - } cookie; - remote_string uri_out; + struct { + u_int cookie_len; + char *cookie_val; + } cookie; + remote_string uri_out; }; typedef struct remote_domain_migrate_prepare_ret remote_domain_migrate_prepare_ret; struct remote_domain_migrate_perform_args { - remote_nonnull_domain dom; - struct { - u_int cookie_len; - char *cookie_val; - } cookie; - remote_nonnull_string uri; - u_quad_t flags; - remote_string dname; - u_quad_t resource; + remote_nonnull_domain dom; + struct { + u_int cookie_len; + char *cookie_val; + } cookie; + remote_nonnull_string uri; + u_quad_t flags; + remote_string dname; + u_quad_t resource; }; typedef struct remote_domain_migrate_perform_args remote_domain_migrate_perform_args; struct remote_domain_migrate_finish_args { - remote_nonnull_string dname; - struct { - u_int cookie_len; - char *cookie_val; - } cookie; - remote_nonnull_string uri; - u_quad_t flags; + remote_nonnull_string dname; + struct { + u_int cookie_len; + char *cookie_val; + } cookie; + remote_nonnull_string uri; + u_quad_t flags; }; typedef struct remote_domain_migrate_finish_args remote_domain_migrate_finish_args; struct remote_domain_migrate_finish_ret { - remote_nonnull_domain ddom; + remote_nonnull_domain ddom; }; typedef struct remote_domain_migrate_finish_ret remote_domain_migrate_finish_ret; struct remote_list_defined_domains_args { - int maxnames; + int maxnames; }; typedef struct remote_list_defined_domains_args remote_list_defined_domains_args; struct remote_list_defined_domains_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_list_defined_domains_ret remote_list_defined_domains_ret; struct remote_num_of_defined_domains_ret { - int num; + int num; }; typedef struct remote_num_of_defined_domains_ret remote_num_of_defined_domains_ret; struct remote_domain_create_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_create_args remote_domain_create_args; struct remote_domain_define_xml_args { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_domain_define_xml_args remote_domain_define_xml_args; struct remote_domain_define_xml_ret { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_define_xml_ret remote_domain_define_xml_ret; struct remote_domain_undefine_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_undefine_args remote_domain_undefine_args; struct remote_domain_set_vcpus_args { - remote_nonnull_domain dom; - int nvcpus; + remote_nonnull_domain dom; + int nvcpus; }; typedef struct remote_domain_set_vcpus_args remote_domain_set_vcpus_args; struct remote_domain_pin_vcpu_args { - remote_nonnull_domain dom; - int vcpu; - struct { - u_int cpumap_len; - char *cpumap_val; - } cpumap; + remote_nonnull_domain dom; + int vcpu; + struct { + u_int cpumap_len; + char *cpumap_val; + } cpumap; }; typedef struct remote_domain_pin_vcpu_args remote_domain_pin_vcpu_args; struct remote_domain_get_vcpus_args { - remote_nonnull_domain dom; - int maxinfo; - int maplen; + remote_nonnull_domain dom; + int maxinfo; + int maplen; }; typedef struct remote_domain_get_vcpus_args remote_domain_get_vcpus_args; 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 { + u_int info_len; + remote_vcpu_info *info_val; + } info; + struct { + u_int cpumaps_len; + char *cpumaps_val; + } cpumaps; }; typedef struct remote_domain_get_vcpus_ret remote_domain_get_vcpus_ret; struct remote_domain_get_max_vcpus_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_max_vcpus_args remote_domain_get_max_vcpus_args; struct remote_domain_get_max_vcpus_ret { - int num; + int num; }; typedef struct remote_domain_get_max_vcpus_ret remote_domain_get_max_vcpus_ret; struct remote_domain_attach_device_args { - remote_nonnull_domain dom; - remote_nonnull_string xml; + remote_nonnull_domain dom; + remote_nonnull_string xml; }; typedef struct remote_domain_attach_device_args remote_domain_attach_device_args; struct remote_domain_detach_device_args { - remote_nonnull_domain dom; - remote_nonnull_string xml; + remote_nonnull_domain dom; + remote_nonnull_string xml; }; typedef struct remote_domain_detach_device_args remote_domain_detach_device_args; struct remote_domain_get_autostart_args { - remote_nonnull_domain dom; + remote_nonnull_domain dom; }; typedef struct remote_domain_get_autostart_args remote_domain_get_autostart_args; struct remote_domain_get_autostart_ret { - int autostart; + int autostart; }; typedef struct remote_domain_get_autostart_ret remote_domain_get_autostart_ret; struct remote_domain_set_autostart_args { - remote_nonnull_domain dom; - int autostart; + remote_nonnull_domain dom; + int autostart; }; typedef struct remote_domain_set_autostart_args remote_domain_set_autostart_args; struct remote_num_of_networks_ret { - int num; + int num; }; typedef struct remote_num_of_networks_ret remote_num_of_networks_ret; struct remote_list_networks_args { - int maxnames; + int maxnames; }; typedef struct remote_list_networks_args remote_list_networks_args; struct remote_list_networks_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_list_networks_ret remote_list_networks_ret; struct remote_num_of_defined_networks_ret { - int num; + int num; }; typedef struct remote_num_of_defined_networks_ret remote_num_of_defined_networks_ret; struct remote_list_defined_networks_args { - int maxnames; + int maxnames; }; typedef struct remote_list_defined_networks_args remote_list_defined_networks_args; struct remote_list_defined_networks_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_list_defined_networks_ret remote_list_defined_networks_ret; struct remote_network_lookup_by_uuid_args { - remote_uuid uuid; + remote_uuid uuid; }; typedef struct remote_network_lookup_by_uuid_args remote_network_lookup_by_uuid_args; struct remote_network_lookup_by_uuid_ret { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_lookup_by_uuid_ret remote_network_lookup_by_uuid_ret; struct remote_network_lookup_by_name_args { - remote_nonnull_string name; + remote_nonnull_string name; }; typedef struct remote_network_lookup_by_name_args remote_network_lookup_by_name_args; struct remote_network_lookup_by_name_ret { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_lookup_by_name_ret remote_network_lookup_by_name_ret; struct remote_network_create_xml_args { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_network_create_xml_args remote_network_create_xml_args; struct remote_network_create_xml_ret { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_create_xml_ret remote_network_create_xml_ret; struct remote_network_define_xml_args { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_network_define_xml_args remote_network_define_xml_args; struct remote_network_define_xml_ret { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_define_xml_ret remote_network_define_xml_ret; struct remote_network_undefine_args { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_undefine_args remote_network_undefine_args; struct remote_network_create_args { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_create_args remote_network_create_args; struct remote_network_destroy_args { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_destroy_args remote_network_destroy_args; struct remote_network_dump_xml_args { - remote_nonnull_network net; - int flags; + remote_nonnull_network net; + int flags; }; typedef struct remote_network_dump_xml_args remote_network_dump_xml_args; struct remote_network_dump_xml_ret { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_network_dump_xml_ret remote_network_dump_xml_ret; struct remote_network_get_bridge_name_args { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_get_bridge_name_args remote_network_get_bridge_name_args; struct remote_network_get_bridge_name_ret { - remote_nonnull_string name; + remote_nonnull_string name; }; typedef struct remote_network_get_bridge_name_ret remote_network_get_bridge_name_ret; struct remote_network_get_autostart_args { - remote_nonnull_network net; + remote_nonnull_network net; }; typedef struct remote_network_get_autostart_args remote_network_get_autostart_args; struct remote_network_get_autostart_ret { - int autostart; + int autostart; }; typedef struct remote_network_get_autostart_ret remote_network_get_autostart_ret; struct remote_network_set_autostart_args { - remote_nonnull_network net; - int autostart; + remote_nonnull_network net; + int autostart; }; typedef struct remote_network_set_autostart_args remote_network_set_autostart_args; struct remote_auth_list_ret { - struct { - u_int types_len; - remote_auth_type *types_val; - } types; + struct { + u_int types_len; + remote_auth_type *types_val; + } types; }; typedef struct remote_auth_list_ret remote_auth_list_ret; struct remote_auth_sasl_init_ret { - remote_nonnull_string mechlist; + remote_nonnull_string mechlist; }; typedef struct remote_auth_sasl_init_ret remote_auth_sasl_init_ret; struct remote_auth_sasl_start_args { - remote_nonnull_string mech; - int nil; - struct { - u_int data_len; - char *data_val; - } data; + remote_nonnull_string mech; + int nil; + struct { + u_int data_len; + char *data_val; + } data; }; typedef struct remote_auth_sasl_start_args remote_auth_sasl_start_args; struct remote_auth_sasl_start_ret { - int complete; - int nil; - struct { - u_int data_len; - char *data_val; - } data; + int complete; + int nil; + struct { + u_int data_len; + char *data_val; + } data; }; typedef struct remote_auth_sasl_start_ret remote_auth_sasl_start_ret; struct remote_auth_sasl_step_args { - int nil; - struct { - u_int data_len; - char *data_val; - } data; + int nil; + struct { + u_int data_len; + char *data_val; + } data; }; typedef struct remote_auth_sasl_step_args remote_auth_sasl_step_args; struct remote_auth_sasl_step_ret { - int complete; - int nil; - struct { - u_int data_len; - char *data_val; - } data; + int complete; + int nil; + struct { + u_int data_len; + char *data_val; + } data; }; typedef struct remote_auth_sasl_step_ret remote_auth_sasl_step_ret; struct remote_auth_polkit_ret { - int complete; + int complete; }; typedef struct remote_auth_polkit_ret remote_auth_polkit_ret; struct remote_num_of_storage_pools_ret { - int num; + int num; }; typedef struct remote_num_of_storage_pools_ret remote_num_of_storage_pools_ret; struct remote_list_storage_pools_args { - int maxnames; + int maxnames; }; typedef struct remote_list_storage_pools_args remote_list_storage_pools_args; struct remote_list_storage_pools_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_list_storage_pools_ret remote_list_storage_pools_ret; struct remote_num_of_defined_storage_pools_ret { - int num; + int num; }; typedef struct remote_num_of_defined_storage_pools_ret remote_num_of_defined_storage_pools_ret; struct remote_list_defined_storage_pools_args { - int maxnames; + int maxnames; }; typedef struct remote_list_defined_storage_pools_args remote_list_defined_storage_pools_args; struct remote_list_defined_storage_pools_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_list_defined_storage_pools_ret remote_list_defined_storage_pools_ret; struct remote_storage_pool_lookup_by_uuid_args { - remote_uuid uuid; + remote_uuid uuid; }; typedef struct remote_storage_pool_lookup_by_uuid_args remote_storage_pool_lookup_by_uuid_args; struct remote_storage_pool_lookup_by_uuid_ret { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_lookup_by_uuid_ret remote_storage_pool_lookup_by_uuid_ret; struct remote_storage_pool_lookup_by_name_args { - remote_nonnull_string name; + remote_nonnull_string name; }; typedef struct remote_storage_pool_lookup_by_name_args remote_storage_pool_lookup_by_name_args; struct remote_storage_pool_lookup_by_name_ret { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_lookup_by_name_ret remote_storage_pool_lookup_by_name_ret; struct remote_storage_pool_lookup_by_volume_args { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_pool_lookup_by_volume_args remote_storage_pool_lookup_by_volume_args; struct remote_storage_pool_lookup_by_volume_ret { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_lookup_by_volume_ret remote_storage_pool_lookup_by_volume_ret; struct remote_storage_pool_create_xml_args { - remote_nonnull_string xml; - u_int flags; + remote_nonnull_string xml; + u_int flags; }; typedef struct remote_storage_pool_create_xml_args remote_storage_pool_create_xml_args; struct remote_storage_pool_create_xml_ret { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_create_xml_ret remote_storage_pool_create_xml_ret; struct remote_storage_pool_define_xml_args { - remote_nonnull_string xml; - u_int flags; + remote_nonnull_string xml; + u_int flags; }; typedef struct remote_storage_pool_define_xml_args remote_storage_pool_define_xml_args; struct remote_storage_pool_define_xml_ret { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_define_xml_ret remote_storage_pool_define_xml_ret; struct remote_storage_pool_build_args { - remote_nonnull_storage_pool pool; - u_int flags; + remote_nonnull_storage_pool pool; + u_int flags; }; typedef struct remote_storage_pool_build_args remote_storage_pool_build_args; struct remote_storage_pool_undefine_args { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_undefine_args remote_storage_pool_undefine_args; struct remote_storage_pool_create_args { - remote_nonnull_storage_pool pool; - u_int flags; + remote_nonnull_storage_pool pool; + u_int flags; }; typedef struct remote_storage_pool_create_args remote_storage_pool_create_args; struct remote_storage_pool_destroy_args { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_destroy_args remote_storage_pool_destroy_args; struct remote_storage_pool_delete_args { - remote_nonnull_storage_pool pool; - u_int flags; + remote_nonnull_storage_pool pool; + u_int flags; }; typedef struct remote_storage_pool_delete_args remote_storage_pool_delete_args; struct remote_storage_pool_refresh_args { - remote_nonnull_storage_pool pool; - u_int flags; + remote_nonnull_storage_pool pool; + u_int flags; }; typedef struct remote_storage_pool_refresh_args remote_storage_pool_refresh_args; struct remote_storage_pool_dump_xml_args { - remote_nonnull_storage_pool pool; - u_int flags; + remote_nonnull_storage_pool pool; + u_int flags; }; typedef struct remote_storage_pool_dump_xml_args remote_storage_pool_dump_xml_args; struct remote_storage_pool_dump_xml_ret { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_storage_pool_dump_xml_ret remote_storage_pool_dump_xml_ret; struct remote_storage_pool_get_info_args { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_get_info_args remote_storage_pool_get_info_args; struct remote_storage_pool_get_info_ret { - u_char state; - u_quad_t capacity; - u_quad_t allocation; - u_quad_t available; + u_char state; + u_quad_t capacity; + u_quad_t allocation; + u_quad_t available; }; typedef struct remote_storage_pool_get_info_ret remote_storage_pool_get_info_ret; struct remote_storage_pool_get_autostart_args { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_get_autostart_args remote_storage_pool_get_autostart_args; struct remote_storage_pool_get_autostart_ret { - int autostart; + int autostart; }; typedef struct remote_storage_pool_get_autostart_ret remote_storage_pool_get_autostart_ret; struct remote_storage_pool_set_autostart_args { - remote_nonnull_storage_pool pool; - int autostart; + remote_nonnull_storage_pool pool; + int autostart; }; typedef struct remote_storage_pool_set_autostart_args remote_storage_pool_set_autostart_args; struct remote_storage_pool_num_of_volumes_args { - remote_nonnull_storage_pool pool; + remote_nonnull_storage_pool pool; }; typedef struct remote_storage_pool_num_of_volumes_args remote_storage_pool_num_of_volumes_args; struct remote_storage_pool_num_of_volumes_ret { - int num; + int num; }; typedef struct remote_storage_pool_num_of_volumes_ret remote_storage_pool_num_of_volumes_ret; struct remote_storage_pool_list_volumes_args { - remote_nonnull_storage_pool pool; - int maxnames; + remote_nonnull_storage_pool pool; + int maxnames; }; typedef struct remote_storage_pool_list_volumes_args remote_storage_pool_list_volumes_args; struct remote_storage_pool_list_volumes_ret { - struct { - u_int names_len; - remote_nonnull_string *names_val; - } names; + struct { + u_int names_len; + remote_nonnull_string *names_val; + } names; }; typedef struct remote_storage_pool_list_volumes_ret remote_storage_pool_list_volumes_ret; struct remote_storage_vol_lookup_by_name_args { - remote_nonnull_storage_pool pool; - remote_nonnull_string name; + remote_nonnull_storage_pool pool; + remote_nonnull_string name; }; typedef struct remote_storage_vol_lookup_by_name_args remote_storage_vol_lookup_by_name_args; struct remote_storage_vol_lookup_by_name_ret { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_lookup_by_name_ret remote_storage_vol_lookup_by_name_ret; struct remote_storage_vol_lookup_by_key_args { - remote_nonnull_string key; + remote_nonnull_string key; }; typedef struct remote_storage_vol_lookup_by_key_args remote_storage_vol_lookup_by_key_args; struct remote_storage_vol_lookup_by_key_ret { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_lookup_by_key_ret remote_storage_vol_lookup_by_key_ret; struct remote_storage_vol_lookup_by_path_args { - remote_nonnull_string path; + remote_nonnull_string path; }; typedef struct remote_storage_vol_lookup_by_path_args remote_storage_vol_lookup_by_path_args; struct remote_storage_vol_lookup_by_path_ret { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_lookup_by_path_ret remote_storage_vol_lookup_by_path_ret; struct remote_storage_vol_create_xml_args { - remote_nonnull_storage_pool pool; - remote_nonnull_string xml; - u_int flags; + remote_nonnull_storage_pool pool; + remote_nonnull_string xml; + u_int flags; }; typedef struct remote_storage_vol_create_xml_args remote_storage_vol_create_xml_args; struct remote_storage_vol_create_xml_ret { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_create_xml_ret remote_storage_vol_create_xml_ret; struct remote_storage_vol_delete_args { - remote_nonnull_storage_vol vol; - u_int flags; + remote_nonnull_storage_vol vol; + u_int flags; }; typedef struct remote_storage_vol_delete_args remote_storage_vol_delete_args; struct remote_storage_vol_dump_xml_args { - remote_nonnull_storage_vol vol; - u_int flags; + remote_nonnull_storage_vol vol; + u_int flags; }; typedef struct remote_storage_vol_dump_xml_args remote_storage_vol_dump_xml_args; struct remote_storage_vol_dump_xml_ret { - remote_nonnull_string xml; + remote_nonnull_string xml; }; typedef struct remote_storage_vol_dump_xml_ret remote_storage_vol_dump_xml_ret; struct remote_storage_vol_get_info_args { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_get_info_args remote_storage_vol_get_info_args; struct remote_storage_vol_get_info_ret { - char type; - u_quad_t capacity; - u_quad_t allocation; + char type; + u_quad_t capacity; + u_quad_t allocation; }; typedef struct remote_storage_vol_get_info_ret remote_storage_vol_get_info_ret; struct remote_storage_vol_get_path_args { - remote_nonnull_storage_vol vol; + remote_nonnull_storage_vol vol; }; typedef struct remote_storage_vol_get_path_args remote_storage_vol_get_path_args; struct remote_storage_vol_get_path_ret { - remote_nonnull_string name; + remote_nonnull_string name; }; typedef struct remote_storage_vol_get_path_ret remote_storage_vol_get_path_ret; #define REMOTE_PROGRAM 0x20008086 #define REMOTE_PROTOCOL_VERSION 1 enum remote_procedure { - REMOTE_PROC_OPEN = 1, - REMOTE_PROC_CLOSE = 2, - REMOTE_PROC_GET_TYPE = 3, - REMOTE_PROC_GET_VERSION = 4, - REMOTE_PROC_GET_MAX_VCPUS = 5, - REMOTE_PROC_NODE_GET_INFO = 6, - REMOTE_PROC_GET_CAPABILITIES = 7, - REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8, - REMOTE_PROC_DOMAIN_CREATE = 9, - REMOTE_PROC_DOMAIN_CREATE_LINUX = 10, - REMOTE_PROC_DOMAIN_DEFINE_XML = 11, - REMOTE_PROC_DOMAIN_DESTROY = 12, - REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13, - REMOTE_PROC_DOMAIN_DUMP_XML = 14, - REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15, - REMOTE_PROC_DOMAIN_GET_INFO = 16, - REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17, - REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18, - REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19, - REMOTE_PROC_DOMAIN_GET_VCPUS = 20, - REMOTE_PROC_LIST_DEFINED_DOMAINS = 21, - REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22, - REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23, - REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24, - REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25, - REMOTE_PROC_DOMAIN_PIN_VCPU = 26, - REMOTE_PROC_DOMAIN_REBOOT = 27, - REMOTE_PROC_DOMAIN_RESUME = 28, - REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29, - REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30, - REMOTE_PROC_DOMAIN_SET_MEMORY = 31, - REMOTE_PROC_DOMAIN_SET_VCPUS = 32, - REMOTE_PROC_DOMAIN_SHUTDOWN = 33, - REMOTE_PROC_DOMAIN_SUSPEND = 34, - REMOTE_PROC_DOMAIN_UNDEFINE = 35, - REMOTE_PROC_LIST_DEFINED_NETWORKS = 36, - REMOTE_PROC_LIST_DOMAINS = 37, - REMOTE_PROC_LIST_NETWORKS = 38, - REMOTE_PROC_NETWORK_CREATE = 39, - REMOTE_PROC_NETWORK_CREATE_XML = 40, - REMOTE_PROC_NETWORK_DEFINE_XML = 41, - REMOTE_PROC_NETWORK_DESTROY = 42, - REMOTE_PROC_NETWORK_DUMP_XML = 43, - REMOTE_PROC_NETWORK_GET_AUTOSTART = 44, - REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45, - REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46, - REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47, - REMOTE_PROC_NETWORK_SET_AUTOSTART = 48, - REMOTE_PROC_NETWORK_UNDEFINE = 49, - REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50, - REMOTE_PROC_NUM_OF_DOMAINS = 51, - REMOTE_PROC_NUM_OF_NETWORKS = 52, - REMOTE_PROC_DOMAIN_CORE_DUMP = 53, - REMOTE_PROC_DOMAIN_RESTORE = 54, - REMOTE_PROC_DOMAIN_SAVE = 55, - REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56, - REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57, - REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58, - REMOTE_PROC_GET_HOSTNAME = 59, - REMOTE_PROC_SUPPORTS_FEATURE = 60, - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61, - REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62, - REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63, - REMOTE_PROC_DOMAIN_BLOCK_STATS = 64, - REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65, - REMOTE_PROC_AUTH_LIST = 66, - REMOTE_PROC_AUTH_SASL_INIT = 67, - REMOTE_PROC_AUTH_SASL_START = 68, - REMOTE_PROC_AUTH_SASL_STEP = 69, - REMOTE_PROC_AUTH_POLKIT = 70, - REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71, - REMOTE_PROC_LIST_STORAGE_POOLS = 72, - REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73, - REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74, - REMOTE_PROC_DISCOVER_STORAGE_POOLS = 75, - REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76, - REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77, - REMOTE_PROC_STORAGE_POOL_CREATE = 78, - REMOTE_PROC_STORAGE_POOL_BUILD = 79, - REMOTE_PROC_STORAGE_POOL_DESTROY = 80, - REMOTE_PROC_STORAGE_POOL_DELETE = 81, - REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82, - REMOTE_PROC_STORAGE_POOL_REFRESH = 83, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86, - REMOTE_PROC_STORAGE_POOL_GET_INFO = 87, - REMOTE_PROC_STORAGE_POOL_DUMP_XML = 88, - REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89, - REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90, - REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91, - REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92, - REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93, - REMOTE_PROC_STORAGE_VOL_DELETE = 94, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, - REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, - REMOTE_PROC_STORAGE_VOL_DUMP_XML = 99, - REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, + REMOTE_PROC_OPEN = 1, + REMOTE_PROC_CLOSE = 2, + REMOTE_PROC_GET_TYPE = 3, + REMOTE_PROC_GET_VERSION = 4, + REMOTE_PROC_GET_MAX_VCPUS = 5, + REMOTE_PROC_NODE_GET_INFO = 6, + REMOTE_PROC_GET_CAPABILITIES = 7, + REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8, + REMOTE_PROC_DOMAIN_CREATE = 9, + REMOTE_PROC_DOMAIN_CREATE_LINUX = 10, + REMOTE_PROC_DOMAIN_DEFINE_XML = 11, + REMOTE_PROC_DOMAIN_DESTROY = 12, + REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13, + REMOTE_PROC_DOMAIN_DUMP_XML = 14, + REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15, + REMOTE_PROC_DOMAIN_GET_INFO = 16, + REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17, + REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18, + REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19, + REMOTE_PROC_DOMAIN_GET_VCPUS = 20, + REMOTE_PROC_LIST_DEFINED_DOMAINS = 21, + REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22, + REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23, + REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24, + REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25, + REMOTE_PROC_DOMAIN_PIN_VCPU = 26, + REMOTE_PROC_DOMAIN_REBOOT = 27, + REMOTE_PROC_DOMAIN_RESUME = 28, + REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29, + REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30, + REMOTE_PROC_DOMAIN_SET_MEMORY = 31, + REMOTE_PROC_DOMAIN_SET_VCPUS = 32, + REMOTE_PROC_DOMAIN_SHUTDOWN = 33, + REMOTE_PROC_DOMAIN_SUSPEND = 34, + REMOTE_PROC_DOMAIN_UNDEFINE = 35, + REMOTE_PROC_LIST_DEFINED_NETWORKS = 36, + REMOTE_PROC_LIST_DOMAINS = 37, + REMOTE_PROC_LIST_NETWORKS = 38, + REMOTE_PROC_NETWORK_CREATE = 39, + REMOTE_PROC_NETWORK_CREATE_XML = 40, + REMOTE_PROC_NETWORK_DEFINE_XML = 41, + REMOTE_PROC_NETWORK_DESTROY = 42, + REMOTE_PROC_NETWORK_DUMP_XML = 43, + REMOTE_PROC_NETWORK_GET_AUTOSTART = 44, + REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45, + REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46, + REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47, + REMOTE_PROC_NETWORK_SET_AUTOSTART = 48, + REMOTE_PROC_NETWORK_UNDEFINE = 49, + REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50, + REMOTE_PROC_NUM_OF_DOMAINS = 51, + REMOTE_PROC_NUM_OF_NETWORKS = 52, + REMOTE_PROC_DOMAIN_CORE_DUMP = 53, + REMOTE_PROC_DOMAIN_RESTORE = 54, + REMOTE_PROC_DOMAIN_SAVE = 55, + REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56, + REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57, + REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58, + REMOTE_PROC_GET_HOSTNAME = 59, + REMOTE_PROC_SUPPORTS_FEATURE = 60, + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61, + REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62, + REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63, + REMOTE_PROC_DOMAIN_BLOCK_STATS = 64, + REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65, + REMOTE_PROC_AUTH_LIST = 66, + REMOTE_PROC_AUTH_SASL_INIT = 67, + REMOTE_PROC_AUTH_SASL_START = 68, + REMOTE_PROC_AUTH_SASL_STEP = 69, + REMOTE_PROC_AUTH_POLKIT = 70, + REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71, + REMOTE_PROC_LIST_STORAGE_POOLS = 72, + REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73, + REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74, + REMOTE_PROC_DISCOVER_STORAGE_POOLS = 75, + REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76, + REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77, + REMOTE_PROC_STORAGE_POOL_CREATE = 78, + REMOTE_PROC_STORAGE_POOL_BUILD = 79, + REMOTE_PROC_STORAGE_POOL_DESTROY = 80, + REMOTE_PROC_STORAGE_POOL_DELETE = 81, + REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82, + REMOTE_PROC_STORAGE_POOL_REFRESH = 83, + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84, + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85, + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86, + REMOTE_PROC_STORAGE_POOL_GET_INFO = 87, + REMOTE_PROC_STORAGE_POOL_DUMP_XML = 88, + REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89, + REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90, + REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91, + REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92, + REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93, + REMOTE_PROC_STORAGE_VOL_DELETE = 94, + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95, + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96, + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, + REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, + REMOTE_PROC_STORAGE_VOL_DUMP_XML = 99, + REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, + REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101, + REMOTE_PROC_NODE_GET_FREE_MEMORY = 102, }; typedef enum remote_procedure remote_procedure; enum remote_message_direction { - REMOTE_CALL = 0, - REMOTE_REPLY = 1, - REMOTE_MESSAGE = 2, + REMOTE_CALL = 0, + REMOTE_REPLY = 1, + REMOTE_MESSAGE = 2, }; typedef enum remote_message_direction remote_message_direction; enum remote_message_status { - REMOTE_OK = 0, - REMOTE_ERROR = 1, + REMOTE_OK = 0, + REMOTE_ERROR = 1, }; typedef enum remote_message_status remote_message_status; #define REMOTE_MESSAGE_HEADER_XDR_LEN 4 struct remote_message_header { - u_int prog; - u_int vers; - remote_procedure proc; - remote_message_direction direction; - u_int serial; - remote_message_status status; + u_int prog; + u_int vers; + remote_procedure proc; + remote_message_direction direction; + u_int serial; + remote_message_status status; }; typedef struct remote_message_header remote_message_header; @@ -1172,6 +1194,9 @@ extern bool_t xdr_remote_get_max_vcpus_ extern bool_t xdr_remote_get_max_vcpus_ret (XDR *, remote_get_max_vcpus_ret*); extern bool_t xdr_remote_node_get_info_ret (XDR *, remote_node_get_info_ret*); extern bool_t xdr_remote_get_capabilities_ret (XDR *, remote_get_capabilities_ret*); +extern bool_t xdr_remote_node_get_cells_free_memory_args (XDR *, remote_node_get_cells_free_memory_args*); +extern bool_t xdr_remote_node_get_cells_free_memory_ret (XDR *, remote_node_get_cells_free_memory_ret*); +extern bool_t xdr_remote_node_get_free_memory_ret (XDR *, remote_node_get_free_memory_ret*); extern bool_t xdr_remote_domain_get_scheduler_type_args (XDR *, remote_domain_get_scheduler_type_args*); extern bool_t xdr_remote_domain_get_scheduler_type_ret (XDR *, remote_domain_get_scheduler_type_ret*); extern bool_t xdr_remote_domain_get_scheduler_parameters_args (XDR *, remote_domain_get_scheduler_parameters_args*); @@ -1344,6 +1369,9 @@ extern bool_t xdr_remote_get_max_vcpus_a extern bool_t xdr_remote_get_max_vcpus_ret (); extern bool_t xdr_remote_node_get_info_ret (); extern bool_t xdr_remote_get_capabilities_ret (); +extern bool_t xdr_remote_node_get_cells_free_memory_args (); +extern bool_t xdr_remote_node_get_cells_free_memory_ret (); +extern bool_t xdr_remote_node_get_free_memory_ret (); extern bool_t xdr_remote_domain_get_scheduler_type_args (); extern bool_t xdr_remote_domain_get_scheduler_type_ret (); extern bool_t xdr_remote_domain_get_scheduler_parameters_args (); Index: qemud/remote_protocol.x =================================================================== RCS file: /data/cvs/libvirt/qemud/remote_protocol.x,v retrieving revision 1.11 diff -u -p -r1.11 remote_protocol.x --- qemud/remote_protocol.x 10 Apr 2008 16:53:29 -0000 1.11 +++ qemud/remote_protocol.x 15 May 2008 21:07:31 -0000 @@ -87,6 +87,9 @@ const REMOTE_STORAGE_VOL_NAME_LIST_MAX = /* Upper limit on list of scheduler parameters. */ const REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX = 16; +/* Upper limit on number of NUMA cells */ +const REMOTE_NODE_MAX_CELLS = 1024; + /* Upper limit on SASL auth negotiation packet */ const REMOTE_AUTH_SASL_DATA_MAX = 65536; @@ -254,6 +257,19 @@ 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 { + hyper freeMems<REMOTE_NODE_MAX_CELLS>; +}; + +struct remote_node_get_free_memory_ret { + hyper freeMem; +}; + struct remote_domain_get_scheduler_type_args { remote_nonnull_domain dom; }; @@ -1017,7 +1033,10 @@ enum remote_procedure { REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, REMOTE_PROC_STORAGE_VOL_DUMP_XML = 99, - REMOTE_PROC_STORAGE_VOL_GET_PATH = 100 + REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, + + REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101, + REMOTE_PROC_NODE_GET_FREE_MEMORY = 102 }; /* Custom RPC structure. */ Index: qemud/rpcgen_fix.pl =================================================================== RCS file: /data/cvs/libvirt/qemud/rpcgen_fix.pl,v retrieving revision 1.1 diff -u -p -r1.1 rpcgen_fix.pl --- qemud/rpcgen_fix.pl 11 Jun 2007 11:36:17 -0000 1.1 +++ qemud/rpcgen_fix.pl 15 May 2008 21:07:31 -0000 @@ -24,6 +24,8 @@ while (<>) { next; } + s/\t/ /g; + if (m/^}/) { $in_function = 0; @@ -52,7 +54,7 @@ while (<>) { foreach (keys %uses) { $i = $uses{$_}; unshift @function, - ("\tchar **objp_cpp$i = (char **) (void *) &$_;\n"); + (" char **objp_cpp$i = (char **) (void *) &$_;\n"); $i++; } @function = -- |: Red Hat, Engineering, Boston -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list