linux/arch/mips/include/asm/smp-cps.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2013 Imagination Technologies
   3 * Author: Paul Burton <paul.burton@mips.com>
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of the GNU General Public License as published by the
   7 * Free Software Foundation;  either version 2 of the  License, or (at your
   8 * option) any later version.
   9 */
  10
  11#ifndef __MIPS_ASM_SMP_CPS_H__
  12#define __MIPS_ASM_SMP_CPS_H__
  13
  14#ifndef __ASSEMBLY__
  15
  16struct vpe_boot_config {
  17        unsigned long pc;
  18        unsigned long sp;
  19        unsigned long gp;
  20};
  21
  22struct core_boot_config {
  23        atomic_t vpe_mask;
  24        struct vpe_boot_config *vpe_config;
  25};
  26
  27extern struct core_boot_config *mips_cps_core_bootcfg;
  28
  29extern void mips_cps_core_entry(void);
  30extern void mips_cps_core_init(void);
  31
  32extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
  33
  34extern void mips_cps_pm_save(void);
  35extern void mips_cps_pm_restore(void);
  36
  37#ifdef CONFIG_MIPS_CPS
  38
  39extern bool mips_cps_smp_in_use(void);
  40
  41#else /* !CONFIG_MIPS_CPS */
  42
  43static inline bool mips_cps_smp_in_use(void) { return false; }
  44
  45#endif /* !CONFIG_MIPS_CPS */
  46
  47#else /* __ASSEMBLY__ */
  48
  49.extern mips_cps_bootcfg;
  50
  51#endif /* __ASSEMBLY__ */
  52#endif /* __MIPS_ASM_SMP_CPS_H__ */
  53