53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
|
/*
|
||
|
* Copyright (C) 2013 Imagination Technologies
|
||
|
* Author: Paul Burton <paul.burton@mips.com>
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify it
|
||
|
* under the terms of the GNU General Public License as published by the
|
||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||
|
* option) any later version.
|
||
|
*/
|
||
|
|
||
|
#ifndef __MIPS_ASM_SMP_CPS_H__
|
||
|
#define __MIPS_ASM_SMP_CPS_H__
|
||
|
|
||
|
#ifndef __ASSEMBLY__
|
||
|
|
||
|
struct vpe_boot_config {
|
||
|
unsigned long pc;
|
||
|
unsigned long sp;
|
||
|
unsigned long gp;
|
||
|
};
|
||
|
|
||
|
struct core_boot_config {
|
||
|
atomic_t vpe_mask;
|
||
|
struct vpe_boot_config *vpe_config;
|
||
|
};
|
||
|
|
||
|
extern struct core_boot_config *mips_cps_core_bootcfg;
|
||
|
|
||
|
extern void mips_cps_core_entry(void);
|
||
|
extern void mips_cps_core_init(void);
|
||
|
|
||
|
extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
|
||
|
|
||
|
extern void mips_cps_pm_save(void);
|
||
|
extern void mips_cps_pm_restore(void);
|
||
|
|
||
|
#ifdef CONFIG_MIPS_CPS
|
||
|
|
||
|
extern bool mips_cps_smp_in_use(void);
|
||
|
|
||
|
#else /* !CONFIG_MIPS_CPS */
|
||
|
|
||
|
static inline bool mips_cps_smp_in_use(void) { return false; }
|
||
|
|
||
|
#endif /* !CONFIG_MIPS_CPS */
|
||
|
|
||
|
#else /* __ASSEMBLY__ */
|
||
|
|
||
|
.extern mips_cps_bootcfg;
|
||
|
|
||
|
#endif /* __ASSEMBLY__ */
|
||
|
#endif /* __MIPS_ASM_SMP_CPS_H__ */
|