Warning: This file is not a C or C++ file. It does not have highlighting.

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
25extern void __init early_numa_add_cpu(int cpuid, s16 node);
26extern void numa_add_cpu(unsigned int cpu);
27extern void numa_remove_cpu(unsigned int cpu);
28
29static inline void numa_clear_node(int cpu)
30{
31}
32
33static inline void set_cpuid_to_node(int cpuid, s16 node)
34{
35 __cpuid_to_node[cpuid] = node;
36}
37
38extern int early_cpu_to_node(int cpu);
39
40#else
41
42static inline void early_numa_add_cpu(int cpuid, s16 node) { }
43static inline void numa_add_cpu(unsigned int cpu) { }
44static inline void numa_remove_cpu(unsigned int cpu) { }
45static inline void set_cpuid_to_node(int cpuid, s16 node) { }
46
47static inline int early_cpu_to_node(int cpu)
48{
49 return 0;
50}
51
52#endif /* CONFIG_NUMA */
53
54#endif /* _ASM_LOONGARCH_NUMA_H */
55

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/arch/loongarch/include/asm/numa.h