target/ppc: cpu_init: Move check_pow and QOM macros to a header
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> Message-Id: <20220216162426.1885923-27-farosas@linux.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
565873b380
commit
b58fd0c39b
@ -2732,4 +2732,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 */
|
||||
|
@ -2480,18 +2480,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) {
|
||||
@ -2510,31 +2498,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);
|
||||
|
Loading…
Reference in New Issue
Block a user