0001
0002 #ifndef _TOOLS_MMZONE_H
0003 #define _TOOLS_MMZONE_H
0004
0005 #include <linux/atomic.h>
0006
0007 struct pglist_data *first_online_pgdat(void);
0008 struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
0009
0010 #define for_each_online_pgdat(pgdat) \
0011 for (pgdat = first_online_pgdat(); \
0012 pgdat; \
0013 pgdat = next_online_pgdat(pgdat))
0014
0015 enum zone_type {
0016 __MAX_NR_ZONES
0017 };
0018
0019 #define MAX_NR_ZONES __MAX_NR_ZONES
0020 #define MAX_ORDER 11
0021 #define MAX_ORDER_NR_PAGES (1 << (MAX_ORDER - 1))
0022
0023 #define pageblock_order (MAX_ORDER - 1)
0024 #define pageblock_nr_pages BIT(pageblock_order)
0025
0026 struct zone {
0027 atomic_long_t managed_pages;
0028 };
0029
0030 typedef struct pglist_data {
0031 struct zone node_zones[MAX_NR_ZONES];
0032
0033 } pg_data_t;
0034
0035 #endif