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

numa.h (1514B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Author: Jianmin Lv <lvjianmin@loongson.cn>
      4 *         Huacai Chen <chenhuacai@loongson.cn>
      5 *
      6 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
      7 */
      8
      9#ifndef _ASM_LOONGARCH_NUMA_H
     10#define _ASM_LOONGARCH_NUMA_H
     11
     12#include <linux/nodemask.h>
     13
     14#define NODE_ADDRSPACE_SHIFT 44
     15
     16#define pa_to_nid(addr)		(((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT)
     17#define nid_to_addrbase(nid)	(_ULCAST_(nid) << NODE_ADDRSPACE_SHIFT)
     18
     19#ifdef CONFIG_NUMA
     20
     21extern int numa_off;
     22extern s16 __cpuid_to_node[CONFIG_NR_CPUS];
     23extern nodemask_t numa_nodes_parsed __initdata;
     24
     25struct numa_memblk {
     26	u64			start;
     27	u64			end;
     28	int			nid;
     29};
     30
     31#define NR_NODE_MEMBLKS		(MAX_NUMNODES*2)
     32struct numa_meminfo {
     33	int			nr_blks;
     34	struct numa_memblk	blk[NR_NODE_MEMBLKS];
     35};
     36
     37extern int __init numa_add_memblk(int nodeid, u64 start, u64 end);
     38
     39extern void __init early_numa_add_cpu(int cpuid, s16 node);
     40extern void numa_add_cpu(unsigned int cpu);
     41extern void numa_remove_cpu(unsigned int cpu);
     42
     43static inline void numa_clear_node(int cpu)
     44{
     45}
     46
     47static inline void set_cpuid_to_node(int cpuid, s16 node)
     48{
     49	__cpuid_to_node[cpuid] = node;
     50}
     51
     52extern int early_cpu_to_node(int cpu);
     53
     54#else
     55
     56static inline void early_numa_add_cpu(int cpuid, s16 node)	{ }
     57static inline void numa_add_cpu(unsigned int cpu)		{ }
     58static inline void numa_remove_cpu(unsigned int cpu)		{ }
     59
     60static inline int early_cpu_to_node(int cpu)
     61{
     62	return 0;
     63}
     64
     65#endif	/* CONFIG_NUMA */
     66
     67#endif	/* _ASM_LOONGARCH_NUMA_H */