cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

smp.h (1212B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SMP_H
      3#define __ASM_SMP_H
      4
      5extern int init_per_cpu(int cpuid);
      6
      7#if defined(CONFIG_SMP)
      8
      9/* Page Zero Location PDC will look for the address to branch to when we poke
     10** slave CPUs still in "Icache loop".
     11*/
     12#define PDC_OS_BOOT_RENDEZVOUS     0x10
     13#define PDC_OS_BOOT_RENDEZVOUS_HI  0x28
     14
     15#ifndef ASSEMBLY
     16#include <linux/bitops.h>
     17#include <linux/threads.h>	/* for NR_CPUS */
     18#include <linux/cpumask.h>
     19typedef unsigned long address_t;
     20
     21
     22/*
     23 *	Private routines/data
     24 *
     25 *	physical and logical are equivalent until we support CPU hotplug.
     26 */
     27#define cpu_number_map(cpu)	(cpu)
     28#define cpu_logical_map(cpu)	(cpu)
     29
     30extern void smp_send_all_nop(void);
     31
     32extern void arch_send_call_function_single_ipi(int cpu);
     33extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
     34
     35#define raw_smp_processor_id()		(current_thread_info()->cpu)
     36
     37#endif /* !ASSEMBLY */
     38
     39#else /* CONFIG_SMP */
     40
     41static inline void smp_send_all_nop(void) { return; }
     42
     43#endif
     44
     45#define NO_PROC_ID		0xFF		/* No processor magic marker */
     46#define ANY_PROC_ID		0xFF		/* Any processor magic marker */
     47int __cpu_disable(void);
     48void __cpu_die(unsigned int cpu);
     49
     50#endif /*  __ASM_SMP_H */