1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _GFP_H
3 #define _GFP_H
4 
5 #include <linux/types.h>
6 
7 #define __GFP_BITS_SHIFT 26
8 #define __GFP_BITS_MASK ((gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
9 
10 #define __GFP_HIGH		0x20u
11 #define __GFP_IO		0x40u
12 #define __GFP_FS		0x80u
13 #define __GFP_NOWARN		0x200u
14 #define __GFP_ZERO		0x8000u
15 #define __GFP_ATOMIC		0x80000u
16 #define __GFP_ACCOUNT		0x100000u
17 #define __GFP_DIRECT_RECLAIM	0x400000u
18 #define __GFP_KSWAPD_RECLAIM	0x2000000u
19 
20 #define __GFP_RECLAIM	(__GFP_DIRECT_RECLAIM|__GFP_KSWAPD_RECLAIM)
21 
22 #define GFP_ZONEMASK	0x0fu
23 #define GFP_ATOMIC	(__GFP_HIGH|__GFP_ATOMIC|__GFP_KSWAPD_RECLAIM)
24 #define GFP_KERNEL	(__GFP_RECLAIM | __GFP_IO | __GFP_FS)
25 #define GFP_NOWAIT	(__GFP_KSWAPD_RECLAIM)
26 
27 
gfpflags_allow_blocking(const gfp_t gfp_flags)28 static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
29 {
30 	return !!(gfp_flags & __GFP_DIRECT_RECLAIM);
31 }
32 
33 #endif
34