Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _TOOLS_MMZONE_H
3#define _TOOLS_MMZONE_H
4
5#include <linux/atomic.h>
6
7struct pglist_data *first_online_pgdat(void);
8struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
9
10#define for_each_online_pgdat(pgdat) \
11 for (pgdat = first_online_pgdat(); \
12 pgdat; \
13 pgdat = next_online_pgdat(pgdat))
14
15enum zone_type {
16 __MAX_NR_ZONES
17};
18
19#define MAX_NR_ZONES __MAX_NR_ZONES
20#define MAX_ORDER 11
21#define MAX_ORDER_NR_PAGES (1 << (MAX_ORDER - 1))
22
23#define pageblock_order (MAX_ORDER - 1)
24#define pageblock_nr_pages BIT(pageblock_order)
25
26struct zone {
27 atomic_long_t managed_pages;
28};
29
30typedef struct pglist_data {
31 struct zone node_zones[MAX_NR_ZONES];
32
33} pg_data_t;
34
35#endif