mm: page-flags: clean up the page flag test, set, clear macros
- PAGEFLAG_FALSE only defines TEST, make it define SET and CLEAR as well, analogous to PAGEFLAG. - Define TESTSETFLAG_FALSE, analogous to TESTSETFLAG. - Define TESTSCFLAG_FALSE, analogous to TESTSCFLAG - Make PG_mlocked accessors the same on both MMU and !MMU setups Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3a79d52aa3
commit
2f3e442ccc
1 changed files with 14 additions and 7 deletions
|
@ -171,13 +171,12 @@ static inline int __TestClearPage##uname(struct page *page) \
|
||||||
#define __PAGEFLAG(uname, lname) TESTPAGEFLAG(uname, lname) \
|
#define __PAGEFLAG(uname, lname) TESTPAGEFLAG(uname, lname) \
|
||||||
__SETPAGEFLAG(uname, lname) __CLEARPAGEFLAG(uname, lname)
|
__SETPAGEFLAG(uname, lname) __CLEARPAGEFLAG(uname, lname)
|
||||||
|
|
||||||
#define PAGEFLAG_FALSE(uname) \
|
|
||||||
static inline int Page##uname(const struct page *page) \
|
|
||||||
{ return 0; }
|
|
||||||
|
|
||||||
#define TESTSCFLAG(uname, lname) \
|
#define TESTSCFLAG(uname, lname) \
|
||||||
TESTSETFLAG(uname, lname) TESTCLEARFLAG(uname, lname)
|
TESTSETFLAG(uname, lname) TESTCLEARFLAG(uname, lname)
|
||||||
|
|
||||||
|
#define TESTPAGEFLAG_FALSE(uname) \
|
||||||
|
static inline int Page##uname(const struct page *page) { return 0; }
|
||||||
|
|
||||||
#define SETPAGEFLAG_NOOP(uname) \
|
#define SETPAGEFLAG_NOOP(uname) \
|
||||||
static inline void SetPage##uname(struct page *page) { }
|
static inline void SetPage##uname(struct page *page) { }
|
||||||
|
|
||||||
|
@ -187,12 +186,21 @@ static inline void ClearPage##uname(struct page *page) { }
|
||||||
#define __CLEARPAGEFLAG_NOOP(uname) \
|
#define __CLEARPAGEFLAG_NOOP(uname) \
|
||||||
static inline void __ClearPage##uname(struct page *page) { }
|
static inline void __ClearPage##uname(struct page *page) { }
|
||||||
|
|
||||||
|
#define TESTSETFLAG_FALSE(uname) \
|
||||||
|
static inline int TestSetPage##uname(struct page *page) { return 0; }
|
||||||
|
|
||||||
#define TESTCLEARFLAG_FALSE(uname) \
|
#define TESTCLEARFLAG_FALSE(uname) \
|
||||||
static inline int TestClearPage##uname(struct page *page) { return 0; }
|
static inline int TestClearPage##uname(struct page *page) { return 0; }
|
||||||
|
|
||||||
#define __TESTCLEARFLAG_FALSE(uname) \
|
#define __TESTCLEARFLAG_FALSE(uname) \
|
||||||
static inline int __TestClearPage##uname(struct page *page) { return 0; }
|
static inline int __TestClearPage##uname(struct page *page) { return 0; }
|
||||||
|
|
||||||
|
#define PAGEFLAG_FALSE(uname) TESTPAGEFLAG_FALSE(uname) \
|
||||||
|
SETPAGEFLAG_NOOP(uname) CLEARPAGEFLAG_NOOP(uname)
|
||||||
|
|
||||||
|
#define TESTSCFLAG_FALSE(uname) \
|
||||||
|
TESTSETFLAG_FALSE(uname) TESTCLEARFLAG_FALSE(uname)
|
||||||
|
|
||||||
struct page; /* forward declaration */
|
struct page; /* forward declaration */
|
||||||
|
|
||||||
TESTPAGEFLAG(Locked, locked)
|
TESTPAGEFLAG(Locked, locked)
|
||||||
|
@ -248,7 +256,6 @@ PAGEFLAG_FALSE(HighMem)
|
||||||
PAGEFLAG(SwapCache, swapcache)
|
PAGEFLAG(SwapCache, swapcache)
|
||||||
#else
|
#else
|
||||||
PAGEFLAG_FALSE(SwapCache)
|
PAGEFLAG_FALSE(SwapCache)
|
||||||
SETPAGEFLAG_NOOP(SwapCache) CLEARPAGEFLAG_NOOP(SwapCache)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable)
|
PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable)
|
||||||
|
@ -258,8 +265,8 @@ PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable)
|
||||||
PAGEFLAG(Mlocked, mlocked) __CLEARPAGEFLAG(Mlocked, mlocked)
|
PAGEFLAG(Mlocked, mlocked) __CLEARPAGEFLAG(Mlocked, mlocked)
|
||||||
TESTSCFLAG(Mlocked, mlocked) __TESTCLEARFLAG(Mlocked, mlocked)
|
TESTSCFLAG(Mlocked, mlocked) __TESTCLEARFLAG(Mlocked, mlocked)
|
||||||
#else
|
#else
|
||||||
PAGEFLAG_FALSE(Mlocked) SETPAGEFLAG_NOOP(Mlocked)
|
PAGEFLAG_FALSE(Mlocked) __CLEARPAGEFLAG_NOOP(Mlocked)
|
||||||
TESTCLEARFLAG_FALSE(Mlocked) __TESTCLEARFLAG_FALSE(Mlocked)
|
TESTSCFLAG_FALSE(Mlocked) __TESTCLEARFLAG_FALSE(Mlocked)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_USES_PG_UNCACHED
|
#ifdef CONFIG_ARCH_USES_PG_UNCACHED
|
||||||
|
|
Loading…
Reference in a new issue