Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / tools / testing / radix-tree / linux / gfp.h
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
28 static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
29 {
30         return !!(gfp_flags & __GFP_DIRECT_RECLAIM);
31 }
32
33 #endif