0001
0002
0003
0004
0005
0006
0007 #ifndef __MIPS_ASM_SMP_CPS_H__
0008 #define __MIPS_ASM_SMP_CPS_H__
0009
0010 #ifndef __ASSEMBLY__
0011
0012 struct vpe_boot_config {
0013 unsigned long pc;
0014 unsigned long sp;
0015 unsigned long gp;
0016 };
0017
0018 struct core_boot_config {
0019 atomic_t vpe_mask;
0020 struct vpe_boot_config *vpe_config;
0021 };
0022
0023 extern struct core_boot_config *mips_cps_core_bootcfg;
0024
0025 extern void mips_cps_core_entry(void);
0026 extern void mips_cps_core_init(void);
0027
0028 extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
0029
0030 extern void mips_cps_pm_save(void);
0031 extern void mips_cps_pm_restore(void);
0032
0033 #ifdef CONFIG_MIPS_CPS
0034
0035 extern bool mips_cps_smp_in_use(void);
0036
0037 #else
0038
0039 static inline bool mips_cps_smp_in_use(void) { return false; }
0040
0041 #endif
0042
0043 #else
0044
0045 .extern mips_cps_bootcfg;
0046
0047 #endif
0048 #endif