[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v2 07/16] target/hexagon: Declare QOM definitions in 'cpu-qom
From: |
Brian Cain |
Subject: |
RE: [PATCH v2 07/16] target/hexagon: Declare QOM definitions in 'cpu-qom.h' |
Date: |
Thu, 26 Oct 2023 19:11:47 +0000 |
> -----Original Message-----
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Sent: Friday, October 13, 2023 9:01 AM
> To: qemu-devel@nongnu.org
> Cc: Eduardo Habkost <eduardo@habkost.net>; Xiaojuan Yang
> <yangxiaojuan@loongson.cn>; Michael S. Tsirkin <mst@redhat.com>; qemu-
> ppc@nongnu.org; Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>; David
> Hildenbrand <david@redhat.com>; qemu-s390x@nongnu.org; Edgar E. Iglesias
> <edgar.iglesias@gmail.com>; Jiaxun Yang <jiaxun.yang@flygoat.com>; Song
> Gao <gaosong@loongson.cn>; Philippe Mathieu-Daudé <philmd@linaro.org>;
> Paolo Bonzini <pbonzini@redhat.com>; Stafford Horne <shorne@gmail.com>;
> Alistair Francis <alistair.francis@wdc.com>; Yanan Wang
> <wangyanan55@huawei.com>; Max Filippov <jcmvbkbc@gmail.com>; Artyom
> Tarasenko <atar4qemu@gmail.com>; Marcel Apfelbaum
> <marcel.apfelbaum@gmail.com>; Cédric Le Goater <clg@kaod.org>; Laurent
> Vivier <lvivier@redhat.com>; Aurelien Jarno <aurelien@aurel32.net>; qemu-
> riscv@nongnu.org; Palmer Dabbelt <palmer@dabbelt.com>; Yoshinori Sato
> <ysato@users.sourceforge.jp>; Bastian Koppelmann <kbastian@mail.uni-
> paderborn.de>; Bin Meng <bin.meng@windriver.com>; Daniel Henrique
> Barboza <danielhb413@gmail.com>; Mark Cave-Ayland <mark.cave-
> ayland@ilande.co.uk>; Weiwei Li <liweiwei@iscas.ac.cn>; Daniel Henrique
> Barboza <dbarboza@ventanamicro.com>; Nicholas Piggin
> <npiggin@gmail.com>; qemu-arm@nongnu.org; Liu Zhiwei
> <zhiwei_liu@linux.alibaba.com>; Marek Vasut <marex@denx.de>; Laurent
> Vivier <laurent@vivier.eu>; Peter Maydell <peter.maydell@linaro.org>; Brian
> Cain <bcain@quicinc.com>; Thomas Huth <thuth@redhat.com>; Chris Wulff
> <crwulff@gmail.com>; Sergio Lopez <slp@redhat.com>; Richard Henderson
> <richard.henderson@linaro.org>; Ilya Leoshkevich <iii@linux.ibm.com>;
> Michael Rolnik <mrolnik@gmail.com>
> Subject: [PATCH v2 07/16] target/hexagon: Declare QOM definitions in 'cpu-
> qom.h'
>
> WARNING: This email originated from outside of Qualcomm. Please be wary of
> any links or attachments, and do not enable macros.
>
> "target/foo/cpu.h" contains the target specific declarations.
>
> A heterogeneous setup need to access target agnostic declarations
> (at least the QOM ones, to instantiate the objects).
>
> Our convention is to add such target agnostic QOM declarations in
> the "target/foo/cpu-qom.h" header.
>
> Extract QOM definitions from "cpu.h" to "cpu-qom.h".
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/hexagon/cpu-qom.h | 28 ++++++++++++++++++++++++++++
> target/hexagon/cpu.h | 15 +--------------
> 2 files changed, 29 insertions(+), 14 deletions(-)
> create mode 100644 target/hexagon/cpu-qom.h
>
> diff --git a/target/hexagon/cpu-qom.h b/target/hexagon/cpu-qom.h
> new file mode 100644
> index 0000000000..f02df7ee6f
> --- /dev/null
> +++ b/target/hexagon/cpu-qom.h
> @@ -0,0 +1,28 @@
> +/*
> + * QEMU Hexagon CPU QOM header (target agnostic)
> + *
> + * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights
> Reserved.
> + *
> + * SPDX-License-Identifier: GPL-2.0-or-later
> + */
> +
> +#ifndef QEMU_HEXAGON_CPU_QOM_H
> +#define QEMU_HEXAGON_CPU_QOM_H
> +
> +#include "hw/core/cpu.h"
> +#include "qom/object.h"
> +
> +#define TYPE_HEXAGON_CPU "hexagon-cpu"
> +
> +#define HEXAGON_CPU_TYPE_SUFFIX "-" TYPE_HEXAGON_CPU
> +#define HEXAGON_CPU_TYPE_NAME(name) (name
> HEXAGON_CPU_TYPE_SUFFIX)
> +
> +#define TYPE_HEXAGON_CPU_V67 HEXAGON_CPU_TYPE_NAME("v67")
> +#define TYPE_HEXAGON_CPU_V68 HEXAGON_CPU_TYPE_NAME("v68")
> +#define TYPE_HEXAGON_CPU_V69 HEXAGON_CPU_TYPE_NAME("v69")
> +#define TYPE_HEXAGON_CPU_V71 HEXAGON_CPU_TYPE_NAME("v71")
> +#define TYPE_HEXAGON_CPU_V73 HEXAGON_CPU_TYPE_NAME("v73")
> +
> +OBJECT_DECLARE_CPU_TYPE(HexagonCPU, HexagonCPUClass,
> HEXAGON_CPU)
> +
> +#endif
> diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h
> index 035ac4fb6d..7d16083c6a 100644
> --- a/target/hexagon/cpu.h
> +++ b/target/hexagon/cpu.h
> @@ -20,11 +20,10 @@
>
> #include "fpu/softfloat-types.h"
>
> +#include "cpu-qom.h"
> #include "exec/cpu-defs.h"
> #include "hex_regs.h"
> #include "mmvec/mmvec.h"
> -#include "qom/object.h"
> -#include "hw/core/cpu.h"
> #include "hw/registerfields.h"
>
> #define NUM_PREGS 4
> @@ -36,18 +35,8 @@
> #define PRED_WRITES_MAX 5 /* 4 insns + endloop */
> #define VSTORES_MAX 2
>
> -#define TYPE_HEXAGON_CPU "hexagon-cpu"
> -
> -#define HEXAGON_CPU_TYPE_SUFFIX "-" TYPE_HEXAGON_CPU
> -#define HEXAGON_CPU_TYPE_NAME(name) (name
> HEXAGON_CPU_TYPE_SUFFIX)
> #define CPU_RESOLVING_TYPE TYPE_HEXAGON_CPU
>
> -#define TYPE_HEXAGON_CPU_V67 HEXAGON_CPU_TYPE_NAME("v67")
> -#define TYPE_HEXAGON_CPU_V68 HEXAGON_CPU_TYPE_NAME("v68")
> -#define TYPE_HEXAGON_CPU_V69 HEXAGON_CPU_TYPE_NAME("v69")
> -#define TYPE_HEXAGON_CPU_V71 HEXAGON_CPU_TYPE_NAME("v71")
> -#define TYPE_HEXAGON_CPU_V73 HEXAGON_CPU_TYPE_NAME("v73")
> -
> void hexagon_cpu_list(void);
> #define cpu_list hexagon_cpu_list
>
> @@ -127,8 +116,6 @@ typedef struct CPUArchState {
> VTCMStoreLog vtcm_log;
> } CPUHexagonState;
>
> -OBJECT_DECLARE_CPU_TYPE(HexagonCPU, HexagonCPUClass,
> HEXAGON_CPU)
> -
> typedef struct HexagonCPUClass {
> CPUClass parent_class;
>
> --
> 2.41.0
Reviewed-by: Brian Cain <bcain@quicinc.com>
- [PATCH v2 00/16] target: Make 'cpu-qom.h' really target agnostic, Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 01/16] target: Unify QOM style, Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 03/16] target/arm: Move internal declarations from 'cpu-qom.h' to 'cpu.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 02/16] target: Mention 'cpu-qom.h' is target agnostic, Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 04/16] target/ppc: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 05/16] target/riscv: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 06/16] target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 07/16] target/hexagon: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- RE: [PATCH v2 07/16] target/hexagon: Declare QOM definitions in 'cpu-qom.h',
Brian Cain <=
- [PATCH v2 08/16] target/loongarch: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 09/16] target/nios2: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 11/16] target/riscv: Move TYPE_RISCV_CPU_BASE definition to 'cpu.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 12/16] target: Move ArchCPUClass definition to 'cpu.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 10/16] target/openrisc: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 13/16] target/i386: Declare CPU QOM types using DEFINE_TYPES() macro, Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 14/16] target/mips: Declare CPU QOM types using DEFINE_TYPES() macro, Philippe Mathieu-Daudé, 2023/10/13
- [PATCH v2 15/16] target/ppc: Declare CPU QOM types using DEFINE_TYPES() macro, Philippe Mathieu-Daudé, 2023/10/13