[libvirt] [PATCH] ARMHF: CPU Support for armhf.

Adding CPU encoder/decoder for armhf to avoid runtime error messages. Signed-off-by: Chuck Short <chuck.short@canonical.com> --- src/Makefile.am | 1 + src/cpu/cpu.c | 2 ++ src/cpu/cpu_arm.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/cpu/cpu_arm.h | 32 ++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 src/cpu/cpu_arm.c create mode 100644 src/cpu/cpu_arm.h diff --git a/src/Makefile.am b/src/Makefile.am index 6c3eaa7..bfe74d3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -567,6 +567,7 @@ CPU_SOURCES = \ 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_arm.h cpu/cpu_arm.c \ cpu/cpu_map.h cpu/cpu_map.c cpu/cpu_powerpc.h \ cpu/cpu_powerpc.c diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 70a1da5..0ccbd4c 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -30,6 +30,7 @@ #include "cpu_x86.h" #include "cpu_powerpc.h" #include "cpu_s390.h" +#include "cpu_arm.h" #include "cpu_generic.h" @@ -40,6 +41,7 @@ static struct cpuArchDriver *drivers[] = { &cpuDriverX86, &cpuDriverPowerPC, &cpuDriverS390, + &cpuDriverArm, /* generic driver must always be the last one */ &cpuDriverGeneric }; diff --git a/src/cpu/cpu_arm.c b/src/cpu/cpu_arm.c new file mode 100644 index 0000000..fe97425 --- /dev/null +++ b/src/cpu/cpu_arm.c @@ -0,0 +1,76 @@ + +/* + * cpu_arm.c: CPU driver for arm CPUs + * + * Copyright Canonical Ltd. 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: + * Chuck Short <chuck.short@canonical.com> + */ + +#include <config.h> + +#include "memory.h" +#include "cpu.h" + +#define VIR_FROM_THIS VIR_FROM_CPU + +static const char *archs[] = { "armv7l" }; + +static union cpuData * +ArmNodeData(void) +{ + union cpuData *data; + + if (VIR_ALLOC(data) < 0) { + virReportOOMError(); + return NULL; + } + + return data; +} + +static int +ArmDecode(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 +ArmDataFree(union cpuData *data) +{ + VIR_FREE(data); +} + +struct cpuArchDriver cpuDriverArm = { + .name = "arm", + .arch = archs, + .narch = ARRAY_CARDINALITY(archs), + .compare = NULL, + .decode = ArmDecode, + .encode = NULL, + .free = ArmDataFree, + .nodeData = ArmNodeData, + .guestData = NULL, + .baseline = NULL, + .update = NULL, + .hasFeature = NULL, +}; diff --git a/src/cpu/cpu_arm.h b/src/cpu/cpu_arm.h new file mode 100644 index 0000000..4b7ddc5 --- /dev/null +++ b/src/cpu/cpu_arm.h @@ -0,0 +1,32 @@ + +/* + * cpu_arm.h: CPU driver for arm CPUs + * + * Copyright Canonical Ltd. 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: + * Chuck Short <chuck.short@canonical.com> + */ + +#ifndef __VIR_CPU_ARM_H__ +#define __VIR_CPU_ARM_H__ + +#include "cpu.h" + +extern struct cpuArchDriver cpuDriverArm; + +#endif /* __VIR_CPU_ARM_H__ */ -- 1.7.10.4

On Thu, Jul 12, 2012 at 10:58:12 -0400, Chuck Short wrote:
Adding CPU encoder/decoder for armhf to avoid runtime error messages.
Can you be more specific about the error messages you are trying to fix with this patch?
Signed-off-by: Chuck Short <chuck.short@canonical.com> --- src/Makefile.am | 1 + src/cpu/cpu.c | 2 ++ src/cpu/cpu_arm.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/cpu/cpu_arm.h | 32 ++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 src/cpu/cpu_arm.c create mode 100644 src/cpu/cpu_arm.h
diff --git a/src/Makefile.am b/src/Makefile.am index 6c3eaa7..bfe74d3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -567,6 +567,7 @@ CPU_SOURCES = \ 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_arm.h cpu/cpu_arm.c \ cpu/cpu_map.h cpu/cpu_map.c cpu/cpu_powerpc.h \ cpu/cpu_powerpc.c
In any case, copy&paste generally doesn't work with patches as mailers like to wrap long lines do other ugly things to the patch. Thus the patch as you sent it won't apply at all. It's safer to use git send-email. Jirka

On Thu, 12 Jul 2012 17:09:27 +0200 Jiri Denemark <jdenemar@redhat.com> wrote:
On Thu, Jul 12, 2012 at 10:58:12 -0400, Chuck Short wrote:
Adding CPU encoder/decoder for armhf to avoid runtime error messages.
Can you be more specific about the error messages you are trying to fix with this patch?
It allows libvirt to run on highbank arm machines.
Signed-off-by: Chuck Short <chuck.short@canonical.com> --- src/Makefile.am | 1 + src/cpu/cpu.c | 2 ++ src/cpu/cpu_arm.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/cpu/cpu_arm.h | 32 ++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 src/cpu/cpu_arm.c create mode 100644 src/cpu/cpu_arm.h
diff --git a/src/Makefile.am b/src/Makefile.am index 6c3eaa7..bfe74d3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -567,6 +567,7 @@ CPU_SOURCES = \ 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_arm.h cpu/cpu_arm.c \ cpu/cpu_map.h cpu/cpu_map.c cpu/cpu_powerpc.h \ cpu/cpu_powerpc.c
In any case, copy&paste generally doesn't work with patches as mailers like to wrap long lines do other ugly things to the patch. Thus the patch as you sent it won't apply at all. It's safer to use git send-email.
Jirka
Oops, yeah Ill resend this, Im still getting use to it. Regards chuck
participants (2)
-
Chuck Short
-
Jiri Denemark