mmzone.h (742B)
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