root/arch/riscv/include/asm/smp.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. show_ipi_stats
  2. riscv_hartid_to_cpuid
  3. cpuid_to_hartid_map

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2012 Regents of the University of California
   4  */
   5 
   6 #ifndef _ASM_RISCV_SMP_H
   7 #define _ASM_RISCV_SMP_H
   8 
   9 #include <linux/cpumask.h>
  10 #include <linux/irqreturn.h>
  11 #include <linux/thread_info.h>
  12 
  13 #define INVALID_HARTID ULONG_MAX
  14 
  15 struct seq_file;
  16 extern unsigned long boot_cpu_hartid;
  17 
  18 #ifdef CONFIG_SMP
  19 /*
  20  * Mapping between linux logical cpu index and hartid.
  21  */
  22 extern unsigned long __cpuid_to_hartid_map[NR_CPUS];
  23 #define cpuid_to_hartid_map(cpu)    __cpuid_to_hartid_map[cpu]
  24 
  25 /* print IPI stats */
  26 void show_ipi_stats(struct seq_file *p, int prec);
  27 
  28 /* SMP initialization hook for setup_arch */
  29 void __init setup_smp(void);
  30 
  31 /* Hook for the generic smp_call_function_many() routine. */
  32 void arch_send_call_function_ipi_mask(struct cpumask *mask);
  33 
  34 /* Hook for the generic smp_call_function_single() routine. */
  35 void arch_send_call_function_single_ipi(int cpu);
  36 
  37 int riscv_hartid_to_cpuid(int hartid);
  38 void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
  39 
  40 /*
  41  * Obtains the hart ID of the currently executing task.  This relies on
  42  * THREAD_INFO_IN_TASK, but we define that unconditionally.
  43  */
  44 #define raw_smp_processor_id() (current_thread_info()->cpu)
  45 
  46 #else
  47 
  48 static inline void show_ipi_stats(struct seq_file *p, int prec)
  49 {
  50 }
  51 
  52 static inline int riscv_hartid_to_cpuid(int hartid)
  53 {
  54         if (hartid == boot_cpu_hartid)
  55                 return 0;
  56 
  57         return -1;
  58 }
  59 static inline unsigned long cpuid_to_hartid_map(int cpu)
  60 {
  61         return boot_cpu_hartid;
  62 }
  63 
  64 #endif /* CONFIG_SMP */
  65 #endif /* _ASM_RISCV_SMP_H */

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