qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 26/27] target/ppc: cpu_init: Move check_pow and QOM macros


From: David Gibson
Subject: Re: [PATCH v2 26/27] target/ppc: cpu_init: Move check_pow and QOM macros to a header
Date: Thu, 17 Feb 2022 10:35:40 +1100

On Wed, Feb 16, 2022 at 01:24:25PM -0300, Fabiano Rosas wrote:
> These will need to be accessed from other files once we move the CPUs
> code to separate files.
> 
> The check_pow_hid0 and check_pow_hid0_74xx are too specific to be
> moved to a header so I'll deal with them later when splitting this
> code between the multiple CPU families.
> 
> Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  target/ppc/cpu.h      | 39 +++++++++++++++++++++++++++++++++++++++
>  target/ppc/cpu_init.c | 37 -------------------------------------
>  2 files changed, 39 insertions(+), 37 deletions(-)
> 
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 6a06a7f533..1d33e8afea 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -2733,4 +2733,43 @@ void dump_mmu(CPUPPCState *env);
>  void ppc_maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len);
>  void ppc_store_vscr(CPUPPCState *env, uint32_t vscr);
>  uint32_t ppc_get_vscr(CPUPPCState *env);
> +
> +/*****************************************************************************/
> +/* Power management enable checks                                            
> */
> +static inline int check_pow_none(CPUPPCState *env)
> +{
> +    return 0;
> +}
> +
> +static inline int check_pow_nocheck(CPUPPCState *env)
> +{
> +    return 1;
> +}
> +
> +/*****************************************************************************/
> +/* PowerPC implementations definitions                                       
> */
> +
> +#define POWERPC_FAMILY(_name)                                               \
> +    static void                                                             \
> +    glue(glue(ppc_, _name), _cpu_family_class_init)(ObjectClass *, void *); \
> +                                                                            \
> +    static const TypeInfo                                                   \
> +    glue(glue(ppc_, _name), _cpu_family_type_info) = {                      \
> +        .name = stringify(_name) "-family-" TYPE_POWERPC_CPU,               \
> +        .parent = TYPE_POWERPC_CPU,                                         \
> +        .abstract = true,                                                   \
> +        .class_init = glue(glue(ppc_, _name), _cpu_family_class_init),      \
> +    };                                                                      \
> +                                                                            \
> +    static void glue(glue(ppc_, _name), _cpu_family_register_types)(void)   \
> +    {                                                                       \
> +        type_register_static(                                               \
> +            &glue(glue(ppc_, _name), _cpu_family_type_info));               \
> +    }                                                                       \
> +                                                                            \
> +    type_init(glue(glue(ppc_, _name), _cpu_family_register_types))          \
> +                                                                            \
> +    static void glue(glue(ppc_, _name), _cpu_family_class_init)
> +
> +
>  #endif /* PPC_CPU_H */
> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> index 4c6b462cad..5bbbcceb55 100644
> --- a/target/ppc/cpu_init.c
> +++ b/target/ppc/cpu_init.c
> @@ -2484,18 +2484,6 @@ static void init_excp_POWER10(CPUPPCState *env)
>  
>  #endif
>  
> -/*****************************************************************************/
> -/* Power management enable checks                                            
> */
> -static int check_pow_none(CPUPPCState *env)
> -{
> -    return 0;
> -}
> -
> -static int check_pow_nocheck(CPUPPCState *env)
> -{
> -    return 1;
> -}
> -
>  static int check_pow_hid0(CPUPPCState *env)
>  {
>      if (env->spr[SPR_HID0] & 0x00E00000) {
> @@ -2514,31 +2502,6 @@ static int check_pow_hid0_74xx(CPUPPCState *env)
>      return 0;
>  }
>  
> -/*****************************************************************************/
> -/* PowerPC implementations definitions                                       
> */
> -
> -#define POWERPC_FAMILY(_name)                                               \
> -    static void                                                             \
> -    glue(glue(ppc_, _name), _cpu_family_class_init)(ObjectClass *, void *); \
> -                                                                            \
> -    static const TypeInfo                                                   \
> -    glue(glue(ppc_, _name), _cpu_family_type_info) = {                      \
> -        .name = stringify(_name) "-family-" TYPE_POWERPC_CPU,               \
> -        .parent = TYPE_POWERPC_CPU,                                         \
> -        .abstract = true,                                                   \
> -        .class_init = glue(glue(ppc_, _name), _cpu_family_class_init),      \
> -    };                                                                      \
> -                                                                            \
> -    static void glue(glue(ppc_, _name), _cpu_family_register_types)(void)   \
> -    {                                                                       \
> -        type_register_static(                                               \
> -            &glue(glue(ppc_, _name), _cpu_family_type_info));               \
> -    }                                                                       \
> -                                                                            \
> -    type_init(glue(glue(ppc_, _name), _cpu_family_register_types))          \
> -                                                                            \
> -    static void glue(glue(ppc_, _name), _cpu_family_class_init)
> -
>  static void init_proc_405(CPUPPCState *env)
>  {
>      register_40x_sprs(env);

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]