Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
 4 */
 5
 6#ifndef _ASM_ARC_MMZONE_H
 7#define _ASM_ARC_MMZONE_H
 8
 9#ifdef CONFIG_DISCONTIGMEM
10
11extern struct pglist_data node_data[];
12#define NODE_DATA(nid) (&node_data[nid])
13
14static inline int pfn_to_nid(unsigned long pfn)
15{
16	int is_end_low = 1;
17
18	if (IS_ENABLED(CONFIG_ARC_HAS_PAE40))
19		is_end_low = pfn <= virt_to_pfn(0xFFFFFFFFUL);
20
21	/*
22	 * node 0: lowmem:             0x8000_0000   to 0xFFFF_FFFF
23	 * node 1: HIGHMEM w/o  PAE40: 0x0           to 0x7FFF_FFFF
24	 *         HIGHMEM with PAE40: 0x1_0000_0000 to ...
25	 */
26	if (pfn >= ARCH_PFN_OFFSET && is_end_low)
27		return 0;
28
29	return 1;
30}
31
32static inline int pfn_valid(unsigned long pfn)
33{
34	int nid = pfn_to_nid(pfn);
35
36	return (pfn <= node_end_pfn(nid));
37}
38#endif /* CONFIG_DISCONTIGMEM  */
39
40#endif