[libvirt] [PATCH 18/22] remote generator, client: Handle functions with multiple return values

Matthias Bolte matthias.bolte at googlemail.com
Sun Apr 24 09:14:05 UTC 2011


---
 daemon/remote_generator.pl        |   63 +++++++---
 src/remote/remote_client_bodies.c |  257 ++++++++++++++++++++++++++++++++++-
 src/remote/remote_driver.c        |  266 -------------------------------------
 3 files changed, 296 insertions(+), 290 deletions(-)

diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl
index 5045b7f..b0e9a4c 100755
--- a/daemon/remote_generator.pl
+++ b/daemon/remote_generator.pl
@@ -751,14 +751,9 @@ elsif ($opt_k) {
                           "AuthPolkit",
 
                           "CPUBaseline",
-                          "DomainBlockStats",
                           "DomainCreate",
                           "DomainDestroy",
                           "DomainGetAutostart",
-                          "DomainGetBlockInfo",
-                          "DomainGetInfo",
-                          "DomainGetJobInfo",
-                          "DomainInterfaceStats",
                           "DomainMigrateFinish",
                           "NWFilterDefineXML", # public API and XDR protocol mismatch
                           "DomainMigratePerform",
@@ -772,8 +767,6 @@ elsif ($opt_k) {
                           "ListDefinedInterfaces",
                           "ListNWFilters",
                           "SupportsFeature",
-                          "StorageVolGetInfo",
-                          "StoragePoolGetInfo",
                           "NodeListDevices",
                           "NodeGetCellsFreeMemory",
                           "ListDefinedNetworks",
@@ -783,7 +776,6 @@ elsif ($opt_k) {
                           "NetworkGetAutostart",
                           "StoragePoolGetAutostart",
                           "SecretSetValue",
-                          "NodeGetInfo",
                           "GetURI",
                           "ListInterfaces",
                           "ListDefinedStoragePools",
@@ -831,16 +823,13 @@ elsif ($opt_k) {
             next;
         }
 
+        # handle arguments to the function
         my @args_list = ();
         my @vars_list = ();
         my @setters_list = ();
-        my @ret_list = ();
         my $priv_src = "conn";
         my $priv_name = "privateData";
         my $call_args = "&args";
-        my $call_ret = "&ret";
-        my $single_ret_var = "int rv = -1";
-        my $single_ret_type = "int";
 
         if ($call->{args} eq "void") {
             $call_args = "NULL";
@@ -937,6 +926,10 @@ elsif ($opt_k) {
             }
         }
 
+        if (! @args_list) {
+            push(@args_list, "virConnectPtr conn");
+        }
+
         # fix priv_name for the NumOf* functions
         if ($priv_name eq "privateData" and
             !($call->{ProcName} =~ m/Domains/) and
@@ -946,13 +939,36 @@ elsif ($opt_k) {
             $priv_name = "${prefix}PrivateData";
         }
 
+        # handle return values of the function
+        my @ret_list = ();
+        my $call_ret = "&ret";
+        my $single_ret_var = "int rv = -1";
+        my $single_ret_type = "int";
+        my $multi_ret = 0;
+
+        if ($call->{ret} ne "void" and
+            scalar(@{$call->{ret_members}}) > 1) {
+            $multi_ret = 1;
+        }
+
         if ($call->{ret} eq "void") {
             $call_ret = "NULL";
         } else {
             push(@vars_list, "$call->{ret} ret");
 
             foreach my $ret_member (@{$call->{ret_members}}) {
-                if ($ret_member =~ m/remote_nonnull_string (\S+);/) {
+                if ($multi_ret) {
+                    if ($ret_member =~ m/(char|short|int|hyper) (\S+)\[\S+\];/) {
+                        push(@ret_list, "memcpy(result->$2, ret.$2, sizeof result->$2);");
+                    } elsif ($ret_member =~ m/char (\S+);/ or
+                        $ret_member =~ m/short (\S+);/ or
+                        $ret_member =~ m/int (\S+);/ or
+                        $ret_member =~ m/hyper (\S+);/) {
+                        push(@ret_list, "result->$1 = ret.$1;");
+                    } else {
+                        die "unhandled type for multi-return-value: $ret_member";
+                    }
+                } elsif ($ret_member =~ m/remote_nonnull_string (\S+);/) {
                     push(@ret_list, "rv = ret.$1;");
                     $single_ret_var = "char *rv = NULL";
                     $single_ret_type = "char *";
@@ -998,8 +1014,21 @@ elsif ($opt_k) {
             }
         }
 
-        if (! @args_list) {
-            push(@args_list, "virConnectPtr conn");
+        # select struct type for multi-return-value functions
+        if ($multi_ret) {
+            my $last_arg;
+            my $struct_name = $call->{ProcName};
+            $struct_name =~ s/Get//;
+
+            if ($call->{ProcName} eq "DomainGetBlockInfo") {
+                $last_arg = pop(@args_list);
+            }
+
+            push(@args_list, "vir${struct_name}Ptr result");
+
+            if (defined $last_arg) {
+                push(@args_list, $last_arg);
+            }
         }
 
         # print function
@@ -1047,7 +1076,9 @@ elsif ($opt_k) {
             print "    ";
             print join("\n    ", @ret_list);
             print "\n";
-        } else {
+        }
+
+        if ($multi_ret or !@ret_list) {
             print "    rv = 0;\n";
         }
 
diff --git a/src/remote/remote_client_bodies.c b/src/remote/remote_client_bodies.c
index 5471c1b..334b963 100644
--- a/src/remote/remote_client_bodies.c
+++ b/src/remote/remote_client_bodies.c
@@ -117,7 +117,37 @@ done:
 
 /* remoteDispatchDomainBlockPeek has to be implemented manually */
 
-/* remoteDispatchDomainBlockStats has to be implemented manually */
+static int
+remoteDomainBlockStats(virDomainPtr dom, const char *path, virDomainBlockStatsPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = dom->conn->privateData;
+    remote_domain_block_stats_args args;
+    remote_domain_block_stats_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, dom);
+    args.path = (char *)path;
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_BLOCK_STATS,
+             (xdrproc_t)xdr_remote_domain_block_stats_args, (char *)&args,
+             (xdrproc_t)xdr_remote_domain_block_stats_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->rd_req = ret.rd_req;
+    result->rd_bytes = ret.rd_bytes;
+    result->wr_req = ret.wr_req;
+    result->wr_bytes = ret.wr_bytes;
+    result->errs = ret.errs;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 static int
 remoteDomainCoreDump(virDomainPtr dom, const char *to, int flags)
@@ -293,11 +323,105 @@ done:
 
 /* remoteDispatchDomainGetBlkioParameters has to be implemented manually */
 
-/* remoteDispatchDomainGetBlockInfo has to be implemented manually */
+static int
+remoteDomainGetBlockInfo(virDomainPtr dom, const char *path, virDomainBlockInfoPtr result, unsigned int flags)
+{
+    int rv = -1;
+    struct private_data *priv = dom->conn->privateData;
+    remote_domain_get_block_info_args args;
+    remote_domain_get_block_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, dom);
+    args.path = (char *)path;
+    args.flags = flags;
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_BLOCK_INFO,
+             (xdrproc_t)xdr_remote_domain_get_block_info_args, (char *)&args,
+             (xdrproc_t)xdr_remote_domain_get_block_info_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->allocation = ret.allocation;
+    result->capacity = ret.capacity;
+    result->physical = ret.physical;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
+
+static int
+remoteDomainGetInfo(virDomainPtr dom, virDomainInfoPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = dom->conn->privateData;
+    remote_domain_get_info_args args;
+    remote_domain_get_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, dom);
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_INFO,
+             (xdrproc_t)xdr_remote_domain_get_info_args, (char *)&args,
+             (xdrproc_t)xdr_remote_domain_get_info_ret, (char *)&ret) == -1)
+        goto done;
 
-/* remoteDispatchDomainGetInfo has to be implemented manually */
+    result->state = ret.state;
+    result->maxMem = ret.maxMem;
+    result->memory = ret.memory;
+    result->nrVirtCpu = ret.nrVirtCpu;
+    result->cpuTime = ret.cpuTime;
+    rv = 0;
 
-/* remoteDispatchDomainGetJobInfo has to be implemented manually */
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
+
+static int
+remoteDomainGetJobInfo(virDomainPtr dom, virDomainJobInfoPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = dom->conn->privateData;
+    remote_domain_get_job_info_args args;
+    remote_domain_get_job_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, dom);
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_JOB_INFO,
+             (xdrproc_t)xdr_remote_domain_get_job_info_args, (char *)&args,
+             (xdrproc_t)xdr_remote_domain_get_job_info_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->type = ret.type;
+    result->timeElapsed = ret.timeElapsed;
+    result->timeRemaining = ret.timeRemaining;
+    result->dataTotal = ret.dataTotal;
+    result->dataProcessed = ret.dataProcessed;
+    result->dataRemaining = ret.dataRemaining;
+    result->memTotal = ret.memTotal;
+    result->memProcessed = ret.memProcessed;
+    result->memRemaining = ret.memRemaining;
+    result->fileTotal = ret.fileTotal;
+    result->fileProcessed = ret.fileProcessed;
+    result->fileRemaining = ret.fileRemaining;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 static unsigned long
 remoteDomainGetMaxMemory(virDomainPtr dom)
@@ -468,7 +592,40 @@ done:
     return rv;
 }
 
-/* remoteDispatchDomainInterfaceStats has to be implemented manually */
+static int
+remoteDomainInterfaceStats(virDomainPtr dom, const char *path, virDomainInterfaceStatsPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = dom->conn->privateData;
+    remote_domain_interface_stats_args args;
+    remote_domain_interface_stats_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_domain(&args.dom, dom);
+    args.path = (char *)path;
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_INTERFACE_STATS,
+             (xdrproc_t)xdr_remote_domain_interface_stats_args, (char *)&args,
+             (xdrproc_t)xdr_remote_domain_interface_stats_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->rx_bytes = ret.rx_bytes;
+    result->rx_packets = ret.rx_packets;
+    result->rx_errs = ret.rx_errs;
+    result->rx_drop = ret.rx_drop;
+    result->tx_bytes = ret.tx_bytes;
+    result->tx_packets = ret.tx_packets;
+    result->tx_errs = ret.tx_errs;
+    result->tx_drop = ret.tx_drop;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 static int
 remoteDomainIsActive(virDomainPtr dom)
@@ -2143,7 +2300,36 @@ done:
     return rv;
 }
 
-/* remoteDispatchNodeGetInfo has to be implemented manually */
+static int
+remoteNodeGetInfo(virConnectPtr conn, virNodeInfoPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = conn->privateData;
+    remote_node_get_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(conn, priv, 0, REMOTE_PROC_NODE_GET_INFO,
+             (xdrproc_t)xdr_void, (char *)NULL,
+             (xdrproc_t)xdr_remote_node_get_info_ret, (char *)&ret) == -1)
+        goto done;
+
+    memcpy(result->model, ret.model, sizeof result->model);
+    result->memory = ret.memory;
+    result->cpus = ret.cpus;
+    result->mhz = ret.mhz;
+    result->nodes = ret.nodes;
+    result->sockets = ret.sockets;
+    result->cores = ret.cores;
+    result->threads = ret.threads;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 /* remoteDispatchNodeGetSecurityModel has to be implemented manually */
 
@@ -2831,7 +3017,35 @@ done:
 
 /* remoteDispatchStoragePoolGetAutostart has to be implemented manually */
 
-/* remoteDispatchStoragePoolGetInfo has to be implemented manually */
+static int
+remoteStoragePoolGetInfo(virStoragePoolPtr pool, virStoragePoolInfoPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = pool->conn->storagePrivateData;
+    remote_storage_pool_get_info_args args;
+    remote_storage_pool_get_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_storage_pool(&args.pool, pool);
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(pool->conn, priv, 0, REMOTE_PROC_STORAGE_POOL_GET_INFO,
+             (xdrproc_t)xdr_remote_storage_pool_get_info_args, (char *)&args,
+             (xdrproc_t)xdr_remote_storage_pool_get_info_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->state = ret.state;
+    result->capacity = ret.capacity;
+    result->allocation = ret.allocation;
+    result->available = ret.available;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 static int
 remoteStoragePoolIsActive(virStoragePoolPtr pool)
@@ -3177,7 +3391,34 @@ done:
     return rv;
 }
 
-/* remoteDispatchStorageVolGetInfo has to be implemented manually */
+static int
+remoteStorageVolGetInfo(virStorageVolPtr vol, virStorageVolInfoPtr result)
+{
+    int rv = -1;
+    struct private_data *priv = vol->conn->storagePrivateData;
+    remote_storage_vol_get_info_args args;
+    remote_storage_vol_get_info_ret ret;
+
+    remoteDriverLock(priv);
+
+    make_nonnull_storage_vol(&args.vol, vol);
+
+    memset(&ret, 0, sizeof ret);
+
+    if (call(vol->conn, priv, 0, REMOTE_PROC_STORAGE_VOL_GET_INFO,
+             (xdrproc_t)xdr_remote_storage_vol_get_info_args, (char *)&args,
+             (xdrproc_t)xdr_remote_storage_vol_get_info_ret, (char *)&ret) == -1)
+        goto done;
+
+    result->type = ret.type;
+    result->capacity = ret.capacity;
+    result->allocation = ret.allocation;
+    rv = 0;
+
+done:
+    remoteDriverUnlock(priv);
+    return rv;
+}
 
 static char *
 remoteStorageVolGetPath(virStorageVolPtr vol)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 79ebfb3..6cbcc35 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -1811,37 +1811,6 @@ done:
 }
 
 static int
-remoteNodeGetInfo (virConnectPtr conn, virNodeInfoPtr info)
-{
-    int rv = -1;
-    remote_node_get_info_ret ret;
-    struct private_data *priv = conn->privateData;
-
-    remoteDriverLock(priv);
-
-    memset (&ret, 0, sizeof ret);
-    if (call (conn, priv, 0, REMOTE_PROC_NODE_GET_INFO,
-              (xdrproc_t) xdr_void, (char *) NULL,
-              (xdrproc_t) xdr_remote_node_get_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    if (virStrcpyStatic(info->model, ret.model) == NULL)
-        goto done;
-    info->memory = ret.memory;
-    info->cpus = ret.cpus;
-    info->mhz = ret.mhz;
-    info->nodes = ret.nodes;
-    info->sockets = ret.sockets;
-    info->cores = ret.cores;
-    info->threads = ret.threads;
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
-static int
 remoteNodeGetCellsFreeMemory(virConnectPtr conn,
                             unsigned long long *freeMems,
                             int startCell,
@@ -2291,37 +2260,6 @@ done:
 }
 
 static int
-remoteDomainGetInfo (virDomainPtr domain, virDomainInfoPtr info)
-{
-    int rv = -1;
-    remote_domain_get_info_args args;
-    remote_domain_get_info_ret ret;
-    struct private_data *priv = domain->conn->privateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_domain (&args.dom, domain);
-
-    memset (&ret, 0, sizeof ret);
-    if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_INFO,
-              (xdrproc_t) xdr_remote_domain_get_info_args, (char *) &args,
-              (xdrproc_t) xdr_remote_domain_get_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    info->state = ret.state;
-    info->maxMem = ret.maxMem;
-    info->memory = ret.memory;
-    info->nrVirtCpu = ret.nrVirtCpu;
-    info->cpuTime = ret.cpuTime;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
-static int
 remoteDomainPinVcpu (virDomainPtr domain,
                      unsigned int vcpu,
                      unsigned char *cpumap,
@@ -3035,78 +2973,6 @@ done:
 }
 
 static int
-remoteDomainBlockStats (virDomainPtr domain, const char *path,
-                        struct _virDomainBlockStats *stats)
-{
-    int rv = -1;
-    remote_domain_block_stats_args args;
-    remote_domain_block_stats_ret ret;
-    struct private_data *priv = domain->conn->privateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_domain (&args.dom, domain);
-    args.path = (char *) path;
-
-    memset (&ret, 0, sizeof ret);
-    if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_BLOCK_STATS,
-              (xdrproc_t) xdr_remote_domain_block_stats_args, (char *) &args,
-              (xdrproc_t) xdr_remote_domain_block_stats_ret, (char *) &ret)
-        == -1)
-        goto done;
-
-    stats->rd_req = ret.rd_req;
-    stats->rd_bytes = ret.rd_bytes;
-    stats->wr_req = ret.wr_req;
-    stats->wr_bytes = ret.wr_bytes;
-    stats->errs = ret.errs;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
-static int
-remoteDomainInterfaceStats (virDomainPtr domain, const char *path,
-                            struct _virDomainInterfaceStats *stats)
-{
-    int rv = -1;
-    remote_domain_interface_stats_args args;
-    remote_domain_interface_stats_ret ret;
-    struct private_data *priv = domain->conn->privateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_domain (&args.dom, domain);
-    args.path = (char *) path;
-
-    memset (&ret, 0, sizeof ret);
-    if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_INTERFACE_STATS,
-              (xdrproc_t) xdr_remote_domain_interface_stats_args,
-                (char *) &args,
-              (xdrproc_t) xdr_remote_domain_interface_stats_ret,
-                (char *) &ret) == -1)
-        goto done;
-
-    stats->rx_bytes = ret.rx_bytes;
-    stats->rx_packets = ret.rx_packets;
-    stats->rx_errs = ret.rx_errs;
-    stats->rx_drop = ret.rx_drop;
-    stats->tx_bytes = ret.tx_bytes;
-    stats->tx_packets = ret.tx_packets;
-    stats->tx_errs = ret.tx_errs;
-    stats->tx_drop = ret.tx_drop;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
-static int
 remoteDomainMemoryStats (virDomainPtr domain,
                          struct _virDomainMemoryStat *stats,
                          unsigned int nr_stats)
@@ -3253,40 +3119,6 @@ done:
     return rv;
 }
 
-static int
-remoteDomainGetBlockInfo (virDomainPtr domain,
-                          const char *path,
-                          virDomainBlockInfoPtr info,
-                          unsigned int flags)
-{
-    int rv = -1;
-    remote_domain_get_block_info_args args;
-    remote_domain_get_block_info_ret ret;
-    struct private_data *priv = domain->conn->privateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_domain (&args.dom, domain);
-    args.path = (char*)path;
-    args.flags = flags;
-
-    memset (&ret, 0, sizeof ret);
-    if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_BLOCK_INFO,
-              (xdrproc_t) xdr_remote_domain_get_block_info_args, (char *) &args,
-              (xdrproc_t) xdr_remote_domain_get_block_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    info->allocation = ret.allocation;
-    info->capacity = ret.capacity;
-    info->physical = ret.physical;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
 /*----------------------------------------------------------------------*/
 
 static virDrvOpenStatus ATTRIBUTE_NONNULL (1)
@@ -3901,36 +3733,6 @@ done:
 }
 
 static int
-remoteStoragePoolGetInfo (virStoragePoolPtr pool, virStoragePoolInfoPtr info)
-{
-    int rv = -1;
-    remote_storage_pool_get_info_args args;
-    remote_storage_pool_get_info_ret ret;
-    struct private_data *priv = pool->conn->storagePrivateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_storage_pool (&args.pool, pool);
-
-    memset (&ret, 0, sizeof ret);
-    if (call (pool->conn, priv, 0, REMOTE_PROC_STORAGE_POOL_GET_INFO,
-              (xdrproc_t) xdr_remote_storage_pool_get_info_args, (char *) &args,
-              (xdrproc_t) xdr_remote_storage_pool_get_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    info->state = ret.state;
-    info->capacity = ret.capacity;
-    info->allocation = ret.allocation;
-    info->available = ret.available;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
-static int
 remoteStoragePoolGetAutostart (virStoragePoolPtr pool, int *autostart)
 {
     int rv = -1;
@@ -4014,35 +3816,6 @@ done:
     return rv;
 }
 
-static int
-remoteStorageVolGetInfo (virStorageVolPtr vol, virStorageVolInfoPtr info)
-{
-    int rv = -1;
-    remote_storage_vol_get_info_args args;
-    remote_storage_vol_get_info_ret ret;
-    struct private_data *priv = vol->conn->storagePrivateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_storage_vol (&args.vol, vol);
-
-    memset (&ret, 0, sizeof ret);
-    if (call (vol->conn, priv, 0, REMOTE_PROC_STORAGE_VOL_GET_INFO,
-              (xdrproc_t) xdr_remote_storage_vol_get_info_args, (char *) &args,
-              (xdrproc_t) xdr_remote_storage_vol_get_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    info->type = ret.type;
-    info->capacity = ret.capacity;
-    info->allocation = ret.allocation;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
 /*----------------------------------------------------------------------*/
 
 static virDrvOpenStatus ATTRIBUTE_NONNULL (1)
@@ -6226,45 +5999,6 @@ done:
     return cpu;
 }
 
-
-static int
-remoteDomainGetJobInfo (virDomainPtr domain, virDomainJobInfoPtr info)
-{
-    int rv = -1;
-    remote_domain_get_job_info_args args;
-    remote_domain_get_job_info_ret ret;
-    struct private_data *priv = domain->conn->privateData;
-
-    remoteDriverLock(priv);
-
-    make_nonnull_domain (&args.dom, domain);
-
-    memset (&ret, 0, sizeof ret);
-    if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_JOB_INFO,
-              (xdrproc_t) xdr_remote_domain_get_job_info_args, (char *) &args,
-              (xdrproc_t) xdr_remote_domain_get_job_info_ret, (char *) &ret) == -1)
-        goto done;
-
-    info->type = ret.type;
-    info->timeElapsed = ret.timeElapsed;
-    info->timeRemaining = ret.timeRemaining;
-    info->dataTotal = ret.dataTotal;
-    info->dataProcessed = ret.dataProcessed;
-    info->dataRemaining = ret.dataRemaining;
-    info->memTotal = ret.memTotal;
-    info->memProcessed = ret.memProcessed;
-    info->memRemaining = ret.memRemaining;
-    info->fileTotal = ret.fileTotal;
-    info->fileProcessed = ret.fileProcessed;
-    info->fileRemaining = ret.fileRemaining;
-
-    rv = 0;
-
-done:
-    remoteDriverUnlock(priv);
-    return rv;
-}
-
 static int
 remoteDomainSnapshotListNames (virDomainPtr domain, char **const names,
                                int maxnames, unsigned int flags)
-- 
1.7.0.4




More information about the libvir-list mailing list