Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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