root/arch/sh/include/asm/smp-ops.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. plat_smp_setup
  2. play_dead
  3. plat_smp_setup
  4. register_smp_ops
  5. play_dead

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __ASM_SH_SMP_OPS_H
   3 #define __ASM_SH_SMP_OPS_H
   4 
   5 struct plat_smp_ops {
   6         void (*smp_setup)(void);
   7         unsigned int (*smp_processor_id)(void);
   8         void (*prepare_cpus)(unsigned int max_cpus);
   9         void (*start_cpu)(unsigned int cpu, unsigned long entry_point);
  10         void (*send_ipi)(unsigned int cpu, unsigned int message);
  11         int (*cpu_disable)(unsigned int cpu);
  12         void (*cpu_die)(unsigned int cpu);
  13         void (*play_dead)(void);
  14 };
  15 
  16 extern struct plat_smp_ops *mp_ops;
  17 extern struct plat_smp_ops shx3_smp_ops;
  18 
  19 #ifdef CONFIG_SMP
  20 
  21 static inline void plat_smp_setup(void)
  22 {
  23         BUG_ON(!mp_ops);
  24         mp_ops->smp_setup();
  25 }
  26 
  27 static inline void play_dead(void)
  28 {
  29         mp_ops->play_dead();
  30 }
  31 
  32 extern void register_smp_ops(struct plat_smp_ops *ops);
  33 
  34 #else
  35 
  36 static inline void plat_smp_setup(void)
  37 {
  38         /* UP, nothing to do ... */
  39 }
  40 
  41 static inline void register_smp_ops(struct plat_smp_ops *ops)
  42 {
  43 }
  44 
  45 static inline void play_dead(void)
  46 {
  47         BUG();
  48 }
  49 
  50 #endif /* CONFIG_SMP */
  51 
  52 #endif /* __ASM_SH_SMP_OPS_H */

/* [<][>][^][v][top][bottom][index][help] */