]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
S390: CPU support for s390(x)
authorThang Pham <thang.pham@us.ibm.com>
Fri, 22 Jun 2012 11:50:11 +0000 (13:50 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 25 Jun 2012 14:43:18 +0000 (16:43 +0200)
Adding CPU encoder/decoder for s390 to avoid runtime error messages.

Signed-off-by: Thang Pham <thang.pham@us.ibm.com>
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
src/Makefile.am
src/cpu/cpu.c
src/cpu/cpu_s390.c [new file with mode: 0644]
src/cpu/cpu_s390.h [new file with mode: 0644]

index e40909bbb4244f2ee25a89114a83f44b0dbe99f3..2309984edf64802dbe8e76b48ac49d03d4ef2307 100644 (file)
@@ -566,6 +566,7 @@ CPU_SOURCES =                                                       \
                cpu/cpu.h cpu/cpu.c                             \
                cpu/cpu_generic.h cpu/cpu_generic.c             \
                cpu/cpu_x86.h cpu/cpu_x86.c cpu/cpu_x86_data.h  \
+               cpu/cpu_s390.h cpu/cpu_s390.c                   \
                cpu/cpu_map.h cpu/cpu_map.c cpu/cpu_powerpc.h   \
                cpu/cpu_powerpc.c
 
index b8ccd24dfd7cbce186a01b9118ad3f80cb5e3ed6..70a1da5c423c0de1feb88c6f32b4333df6e9fcc9 100644 (file)
@@ -29,6 +29,7 @@
 #include "cpu.h"
 #include "cpu_x86.h"
 #include "cpu_powerpc.h"
+#include "cpu_s390.h"
 #include "cpu_generic.h"
 
 
@@ -38,6 +39,7 @@
 static struct cpuArchDriver *drivers[] = {
     &cpuDriverX86,
     &cpuDriverPowerPC,
+    &cpuDriverS390,
     /* generic driver must always be the last one */
     &cpuDriverGeneric
 };
diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c
new file mode 100644 (file)
index 0000000..eb2acef
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * cpu_s390.c: CPU driver for s390(x) CPUs
+ *
+ * Copyright IBM Corp. 2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ *
+ * Authors:
+ *      Thang Pham <thang.pham@us.ibm.com>
+ */
+
+#include <config.h>
+
+#include "memory.h"
+#include "cpu.h"
+
+
+#define VIR_FROM_THIS VIR_FROM_CPU
+
+static const char *archs[] = { "s390", "s390x" };
+
+static union cpuData *
+s390NodeData(void)
+{
+    union cpuData *data;
+
+    if (VIR_ALLOC(data) < 0) {
+        virReportOOMError();
+        return NULL;
+    }
+
+    return data;
+}
+
+
+static int
+s390Decode(virCPUDefPtr cpu ATTRIBUTE_UNUSED,
+           const union cpuData *data ATTRIBUTE_UNUSED,
+           const char **models ATTRIBUTE_UNUSED,
+           unsigned int nmodels ATTRIBUTE_UNUSED,
+           const char *preferred ATTRIBUTE_UNUSED)
+{
+    return 0;
+}
+
+static void
+s390DataFree(union cpuData *data)
+{
+    VIR_FREE(data);
+}
+
+struct cpuArchDriver cpuDriverS390 = {
+    .name = "s390",
+    .arch = archs,
+    .narch = ARRAY_CARDINALITY(archs),
+    .compare    = NULL,
+    .decode     = s390Decode,
+    .encode     = NULL,
+    .free       = s390DataFree,
+    .nodeData   = s390NodeData,
+    .guestData  = NULL,
+    .baseline   = NULL,
+    .update     = NULL,
+    .hasFeature = NULL,
+};
diff --git a/src/cpu/cpu_s390.h b/src/cpu/cpu_s390.h
new file mode 100644 (file)
index 0000000..4f28cf9
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * cpu_s390.h: CPU driver for s390(x) CPUs
+ *
+ * Copyright IBM Corp. 2012
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ *
+ * Authors:
+ *      Thang Pham <thang.pham@us.ibm.com>
+ */
+
+#ifndef __VIR_CPU_S390X_H__
+# define __VIR_CPU_S390X_H__
+
+# include "cpu.h"
+
+extern struct cpuArchDriver cpuDriverS390;
+
+#endif /* __VIR_CPU_S390X_H__ */