#ifndef PAGEBLOCK_FLAGS_H
#define PAGEBLOCK_FLAGS_H
#include <linux/types.h>
#define PB_migratetype_bits …
enum pageblock_bits { … };
#if defined(CONFIG_HUGETLB_PAGE)
#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
extern unsigned int pageblock_order;
#else
#define pageblock_order …
#endif
#elif defined(CONFIG_TRANSPARENT_HUGEPAGE)
#define pageblock_order …
#else
#define pageblock_order …
#endif
#define pageblock_nr_pages …
#define pageblock_align(pfn) …
#define pageblock_aligned(pfn) …
#define pageblock_start_pfn(pfn) …
#define pageblock_end_pfn(pfn) …
struct page;
unsigned long get_pfnblock_flags_mask(const struct page *page,
unsigned long pfn,
unsigned long mask);
void set_pfnblock_flags_mask(struct page *page,
unsigned long flags,
unsigned long pfn,
unsigned long mask);
#ifdef CONFIG_COMPACTION
#define get_pageblock_skip(page) …
#define clear_pageblock_skip(page) …
#define set_pageblock_skip(page) …
#else
static inline bool get_pageblock_skip(struct page *page)
{
return false;
}
static inline void clear_pageblock_skip(struct page *page)
{
}
static inline void set_pageblock_skip(struct page *page)
{
}
#endif
#endif