linux/arch/x86/include/asm/cpumask.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _ASM_X86_CPUMASK_H
   3#define _ASM_X86_CPUMASK_H
   4#ifndef __ASSEMBLY__
   5#include <linux/cpumask.h>
   6
   7extern cpumask_var_t cpu_callin_mask;
   8extern cpumask_var_t cpu_callout_mask;
   9extern cpumask_var_t cpu_initialized_mask;
  10extern cpumask_var_t cpu_sibling_setup_mask;
  11
  12extern void setup_cpu_local_masks(void);
  13
  14/*
  15 * NMI and MCE exceptions need cpu_is_offline() _really_ early,
  16 * provide an arch_ special for them to avoid instrumentation.
  17 */
  18#if NR_CPUS > 1
  19static __always_inline bool arch_cpu_online(int cpu)
  20{
  21        return arch_test_bit(cpu, cpumask_bits(cpu_online_mask));
  22}
  23#else
  24static __always_inline bool arch_cpu_online(int cpu)
  25{
  26        return cpu == 0;
  27}
  28#endif
  29
  30#define arch_cpu_is_offline(cpu)        unlikely(!arch_cpu_online(cpu))
  31
  32#endif /* __ASSEMBLY__ */
  33#endif /* _ASM_X86_CPUMASK_H */
  34