Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 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 |