]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
remote generator, daemon: Handle the CPU functions
authorMatthias Bolte <matthias.bolte@googlemail.com>
Sat, 23 Apr 2011 06:19:46 +0000 (08:19 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 6 May 2011 18:08:31 +0000 (20:08 +0200)
They require additional special cases.

daemon/remote.c
daemon/remote_dispatch_bodies.c
daemon/remote_dispatch_prototypes.h
daemon/remote_dispatch_table.h
daemon/remote_generator.pl

index c3885070aa737eb8f62dba2a8469504a2d41e5e4..880839c068d2c3de5b129e5d533b598c553d10d5 100644 (file)
@@ -3064,70 +3064,6 @@ cleanup:
     return rv;
 }
 
-static int
-remoteDispatchCpuCompare(struct qemud_server *server ATTRIBUTE_UNUSED,
-                         struct qemud_client *client ATTRIBUTE_UNUSED,
-                         virConnectPtr conn,
-                         remote_message_header *hdr ATTRIBUTE_UNUSED,
-                         remote_error *rerr,
-                         remote_cpu_compare_args *args,
-                         remote_cpu_compare_ret *ret)
-{
-    int result;
-    int rv = -1;
-
-    if (!conn) {
-        virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
-        goto cleanup;
-    }
-
-    if ((result = virConnectCompareCPU(conn, args->xml, args->flags)) == VIR_CPU_COMPARE_ERROR)
-        goto cleanup;
-
-    ret->result = result;
-    rv = 0;
-
-cleanup:
-    if (rv < 0)
-        remoteDispatchError(rerr);
-    return rv;
-}
-
-
-static int
-remoteDispatchCpuBaseline(struct qemud_server *server ATTRIBUTE_UNUSED,
-                          struct qemud_client *client ATTRIBUTE_UNUSED,
-                          virConnectPtr conn,
-                          remote_message_header *hdr ATTRIBUTE_UNUSED,
-                          remote_error *rerr,
-                          remote_cpu_baseline_args *args,
-                          remote_cpu_baseline_ret *ret)
-{
-    char *cpu;
-    int rv = -1;
-
-    if (!conn) {
-        virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
-        goto cleanup;
-    }
-
-    if (!(cpu = virConnectBaselineCPU(conn,
-                                      (const char **) args->xmlCPUs.xmlCPUs_val,
-                                      args->xmlCPUs.xmlCPUs_len,
-                                      args->flags)))
-        goto cleanup;
-
-    ret->cpu = cpu;
-
-    rv = 0;
-
-cleanup:
-    if (rv < 0)
-        remoteDispatchError(rerr);
-    return rv;
-}
-
-
 static int
 remoteDispatchDomainGetJobInfo(struct qemud_server *server ATTRIBUTE_UNUSED,
                                struct qemud_client *client ATTRIBUTE_UNUSED,
index fafccd054d78bc9790cabba778047f04c1821efc..17de412cd13dfe42ae7224a9137e322945c686d1 100644 (file)
 
 /* remoteDispatchClose has to be implemented manually */
 
-/* remoteDispatchCpuBaseline has to be implemented manually */
+static int
+remoteDispatchCPUBaseline(
+    struct qemud_server *server ATTRIBUTE_UNUSED,
+    struct qemud_client *client ATTRIBUTE_UNUSED,
+    virConnectPtr conn,
+    remote_message_header *hdr ATTRIBUTE_UNUSED,
+    remote_error *rerr,
+    remote_cpu_baseline_args *args,
+    remote_cpu_baseline_ret *ret)
+{
+    int rv = -1;
+    char *cpu;
+
+    if (!conn) {
+        virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
+        goto cleanup;
+    }
+
+    if ((cpu = virConnectBaselineCPU(conn, (const char **)args->xmlCPUs.xmlCPUs_val, args->xmlCPUs.xmlCPUs_len, args->flags)) == NULL)
+        goto cleanup;
+
+    ret->cpu = cpu;
+    rv = 0;
+
+cleanup:
+    if (rv < 0)
+        remoteDispatchError(rerr);
+    return rv;
+}
+
+static int
+remoteDispatchCPUCompare(
+    struct qemud_server *server ATTRIBUTE_UNUSED,
+    struct qemud_client *client ATTRIBUTE_UNUSED,
+    virConnectPtr conn,
+    remote_message_header *hdr ATTRIBUTE_UNUSED,
+    remote_error *rerr,
+    remote_cpu_compare_args *args,
+    remote_cpu_compare_ret *ret)
+{
+    int rv = -1;
+    int result;
+
+    if (!conn) {
+        virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
+        goto cleanup;
+    }
+
+    if ((result = virConnectCompareCPU(conn, args->xml, args->flags)) == VIR_CPU_COMPARE_ERROR)
+        goto cleanup;
+
+    ret->result = result;
+    rv = 0;
 
-/* remoteDispatchCpuCompare has to be implemented manually */
+cleanup:
+    if (rv < 0)
+        remoteDispatchError(rerr);
+    return rv;
+}
 
 static int
 remoteDispatchDomainAbortJob(
@@ -524,7 +580,7 @@ cleanup:
 /* remoteDispatchDomainGetMemoryParameters has to be implemented manually */
 
 static int
-remoteDispatchDomainGetOsType(
+remoteDispatchDomainGetOSType(
     struct qemud_server *server ATTRIBUTE_UNUSED,
     struct qemud_client *client ATTRIBUTE_UNUSED,
     virConnectPtr conn,
index 1e3be4806a7d6a9bc69ea8d1e3111ac6c6a961fb..b6819c015e3c457a8ff6eb6bbc5edb3285ce40e5 100644 (file)
@@ -50,7 +50,7 @@ static int remoteDispatchClose(
     remote_error *rerr,
     void *args,
     void *ret);
-static int remoteDispatchCpuBaseline(
+static int remoteDispatchCPUBaseline(
     struct qemud_server *server,
     struct qemud_client *client,
     virConnectPtr conn,
@@ -58,7 +58,7 @@ static int remoteDispatchCpuBaseline(
     remote_error *rerr,
     remote_cpu_baseline_args *args,
     remote_cpu_baseline_ret *ret);
-static int remoteDispatchCpuCompare(
+static int remoteDispatchCPUCompare(
     struct qemud_server *server,
     struct qemud_client *client,
     virConnectPtr conn,
@@ -274,7 +274,7 @@ static int remoteDispatchDomainGetMemoryParameters(
     remote_error *rerr,
     remote_domain_get_memory_parameters_args *args,
     remote_domain_get_memory_parameters_ret *ret);
-static int remoteDispatchDomainGetOsType(
+static int remoteDispatchDomainGetOSType(
     struct qemud_server *server,
     struct qemud_client *client,
     virConnectPtr conn,
index 357d1de0cad79a0ef15d53ce84027d97805ff97f..c140341580df8ea0cc33cdbf29e71772ebe2829c 100644 (file)
@@ -97,8 +97,8 @@
     .args_filter = (xdrproc_t) xdr_remote_domain_get_max_vcpus_args,
     .ret_filter = (xdrproc_t) xdr_remote_domain_get_max_vcpus_ret,
 },
-{   /* DomainGetOsType => 19 */
-    .fn = (dispatch_fn) remoteDispatchDomainGetOsType,
+{   /* DomainGetOSType => 19 */
+    .fn = (dispatch_fn) remoteDispatchDomainGetOSType,
     .args_filter = (xdrproc_t) xdr_remote_domain_get_os_type_args,
     .ret_filter = (xdrproc_t) xdr_remote_domain_get_os_type_ret,
 },
     .args_filter = (xdrproc_t) xdr_void,
     .ret_filter = (xdrproc_t) xdr_remote_get_lib_version_ret,
 },
-{   /* CpuCompare => 158 */
-    .fn = (dispatch_fn) remoteDispatchCpuCompare,
+{   /* CPUCompare => 158 */
+    .fn = (dispatch_fn) remoteDispatchCPUCompare,
     .args_filter = (xdrproc_t) xdr_remote_cpu_compare_args,
     .ret_filter = (xdrproc_t) xdr_remote_cpu_compare_ret,
 },
     .args_filter = (xdrproc_t) xdr_remote_domain_detach_device_flags_args,
     .ret_filter = (xdrproc_t) xdr_void,
 },
-{   /* CpuBaseline => 162 */
-    .fn = (dispatch_fn) remoteDispatchCpuBaseline,
+{   /* CPUBaseline => 162 */
+    .fn = (dispatch_fn) remoteDispatchCPUBaseline,
     .args_filter = (xdrproc_t) xdr_remote_cpu_baseline_args,
     .ret_filter = (xdrproc_t) xdr_remote_cpu_baseline_ret,
 },
index d2105cbe8c31919b315a7c95e80e90f668b8879c..1b43b8c9349ab933a0d453e2a04e908ba424cc6a 100755 (executable)
@@ -34,7 +34,8 @@ sub name_to_ProcName {
     @elems = map ucfirst, @elems;
     @elems = map { $_ =~ s/Nwfilter/NWFilter/; $_ =~ s/Xml/XML/;
                    $_ =~ s/Uri/URI/; $_ =~ s/Uuid/UUID/; $_ =~ s/Id/ID/;
-                   $_ =~ s/Mac/MAC/; $_ } @elems;
+                   $_ =~ s/Mac/MAC/; $_ =~ s/Cpu/CPU/; $_ =~ s/Os/OS/;
+                   $_ } @elems;
     join "", @elems
 }
 
@@ -257,8 +258,6 @@ elsif ($opt_b) {
                           "AuthSaslStep",
                           "AuthPolkit",
 
-                          "CpuBaseline",
-                          "CpuCompare",
                           "DomainBlockPeek",
                           "DomainBlockStats",
                           "DomainCreateWithFlags",
@@ -388,6 +387,8 @@ elsif ($opt_b) {
 
                     if ($calls{$_}->{ProcName} eq "SecretSetValue") {
                         push(@args_list, "(const unsigned char *)args->$1.$1_val");
+                    } elsif ($calls{$_}->{ProcName} eq "CPUBaseline") {
+                        push(@args_list, "(const char **)args->$1.$1_val");
                     } else {
                         push(@args_list, "args->$1.$1_val");
                     }
@@ -491,7 +492,12 @@ elsif ($opt_b) {
                         $single_ret_by_ref = 1;
                     } else {
                         $single_ret_by_ref = 0;
-                        $single_ret_check = " < 0";
+
+                        if ($calls{$_}->{ProcName} eq "CPUCompare") {
+                            $single_ret_check = " == VIR_CPU_COMPARE_ERROR";
+                        } else {
+                            $single_ret_check = " < 0";
+                        }
                     }
                 } elsif ($ret_member =~ m/hyper (\S+)<(\S+)>;/) {
                     push(@vars_list, "int len");
@@ -597,8 +603,10 @@ elsif ($opt_b) {
                 $prefix = "Drv"
             } elsif ($calls{$_}->{ProcName} =~ m/^(\S+)DumpXML$/) {
                 $proc_name = "${1}GetXMLDesc"
-            } elsif ($calls{$_}->{ProcName} eq "DomainGetOsType") {
-                $proc_name = "DomainGetOSType"
+            } elsif ($calls{$_}->{ProcName} eq "CPUBaseline") {
+                $proc_name = "ConnectBaselineCPU"
+            } elsif ($calls{$_}->{ProcName} eq "CPUCompare") {
+                $proc_name = "ConnectCompareCPU"
             }
 
             if ($single_ret_as_list) {