Lines Matching refs:page

140 static inline int Page##uname(const struct page *page)			\
141 { return test_bit(PG_##lname, &page->flags); }
144 static inline void SetPage##uname(struct page *page) \
145 { set_bit(PG_##lname, &page->flags); }
148 static inline void ClearPage##uname(struct page *page) \
149 { clear_bit(PG_##lname, &page->flags); }
152 static inline void __SetPage##uname(struct page *page) \
153 { __set_bit(PG_##lname, &page->flags); }
156 static inline void __ClearPage##uname(struct page *page) \
157 { __clear_bit(PG_##lname, &page->flags); }
160 static inline int TestSetPage##uname(struct page *page) \
161 { return test_and_set_bit(PG_##lname, &page->flags); }
164 static inline int TestClearPage##uname(struct page *page) \
165 { return test_and_clear_bit(PG_##lname, &page->flags); }
168 static inline int __TestClearPage##uname(struct page *page) \
169 { return __test_and_clear_bit(PG_##lname, &page->flags); }
181 static inline int Page##uname(const struct page *page) { return 0; }
184 static inline void SetPage##uname(struct page *page) { }
187 static inline void ClearPage##uname(struct page *page) { }
190 static inline void __ClearPage##uname(struct page *page) { }
193 static inline int TestSetPage##uname(struct page *page) { return 0; }
196 static inline int TestClearPage##uname(struct page *page) { return 0; }
199 static inline int __TestClearPage##uname(struct page *page) { return 0; }
207 struct page; /* forward declaration */
318 static inline int PageAnon(struct page *page) in PAGEFLAG()
320 return ((unsigned long)page->mapping & PAGE_MAPPING_ANON) != 0; in PAGEFLAG()
330 static inline int PageKsm(struct page *page) in PageKsm() argument
332 return ((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) == in PageKsm()
339 u64 stable_page_flags(struct page *page);
341 static inline int PageUptodate(struct page *page) in PageUptodate() argument
343 int ret = test_bit(PG_uptodate, &(page)->flags); in PageUptodate()
359 static inline void __SetPageUptodate(struct page *page) in __SetPageUptodate() argument
362 __set_bit(PG_uptodate, &(page)->flags); in __SetPageUptodate()
365 static inline void SetPageUptodate(struct page *page) in SetPageUptodate() argument
373 set_bit(PG_uptodate, &(page)->flags); in SetPageUptodate()
378 int test_clear_page_writeback(struct page *page);
379 int __test_set_page_writeback(struct page *page, bool keep_write);
381 #define test_set_page_writeback(page) \ argument
382 __test_set_page_writeback(page, false)
383 #define test_set_page_writeback_keepwrite(page) \ argument
384 __test_set_page_writeback(page, true)
386 static inline void set_page_writeback(struct page *page) in set_page_writeback() argument
388 test_set_page_writeback(page); in set_page_writeback()
391 static inline void set_page_writeback_keepwrite(struct page *page) in set_page_writeback_keepwrite() argument
393 test_set_page_writeback_keepwrite(page); in set_page_writeback_keepwrite()
398 static inline int PageTail(struct page *page) in __PAGEFLAG()
400 return READ_ONCE(page->compound_head) & 1; in __PAGEFLAG()
403 static inline void set_compound_head(struct page *page, struct page *head) in set_compound_head() argument
405 WRITE_ONCE(page->compound_head, (unsigned long)head + 1); in set_compound_head()
408 static inline void clear_compound_head(struct page *page) in clear_compound_head() argument
410 WRITE_ONCE(page->compound_head, 0); in clear_compound_head()
413 static inline struct page *compound_head(struct page *page) in compound_head() argument
415 unsigned long head = READ_ONCE(page->compound_head); in compound_head()
418 return (struct page *) (head - 1); in compound_head()
419 return page; in compound_head()
422 static inline int PageCompound(struct page *page) in PageCompound() argument
424 return PageHead(page) || PageTail(page); in PageCompound()
428 static inline void ClearPageCompound(struct page *page) in ClearPageCompound() argument
430 BUG_ON(!PageHead(page)); in ClearPageCompound()
431 ClearPageHead(page); in ClearPageCompound()
438 int PageHuge(struct page *page);
439 int PageHeadHuge(struct page *page);
440 bool page_huge_active(struct page *page);
445 static inline bool page_huge_active(struct page *page) in TESTPAGEFLAG_FALSE()
461 static inline int PageTransHuge(struct page *page) in PageTransHuge() argument
463 VM_BUG_ON_PAGE(PageTail(page), page); in PageTransHuge()
464 return PageHead(page); in PageTransHuge()
472 static inline int PageTransCompound(struct page *page) in PageTransCompound() argument
474 return PageCompound(page); in PageTransCompound()
482 static inline int PageTransTail(struct page *page) in PageTransTail() argument
484 return PageTail(page); in PageTransTail()
489 static inline int PageTransHuge(struct page *page) in PageTransHuge() argument
494 static inline int PageTransCompound(struct page *page) in PageTransCompound() argument
499 static inline int PageTransTail(struct page *page) in PageTransTail() argument
516 static inline int PageBuddy(struct page *page) in PageBuddy() argument
518 return atomic_read(&page->_mapcount) == PAGE_BUDDY_MAPCOUNT_VALUE; in PageBuddy()
521 static inline void __SetPageBuddy(struct page *page) in __SetPageBuddy() argument
523 VM_BUG_ON_PAGE(atomic_read(&page->_mapcount) != -1, page); in __SetPageBuddy()
524 atomic_set(&page->_mapcount, PAGE_BUDDY_MAPCOUNT_VALUE); in __SetPageBuddy()
527 static inline void __ClearPageBuddy(struct page *page) in __ClearPageBuddy() argument
529 VM_BUG_ON_PAGE(!PageBuddy(page), page); in __ClearPageBuddy()
530 atomic_set(&page->_mapcount, -1); in __ClearPageBuddy()
535 static inline int PageBalloon(struct page *page) in PageBalloon() argument
537 return atomic_read(&page->_mapcount) == PAGE_BALLOON_MAPCOUNT_VALUE; in PageBalloon()
540 static inline void __SetPageBalloon(struct page *page) in __SetPageBalloon() argument
542 VM_BUG_ON_PAGE(atomic_read(&page->_mapcount) != -1, page); in __SetPageBalloon()
543 atomic_set(&page->_mapcount, PAGE_BALLOON_MAPCOUNT_VALUE); in __SetPageBalloon()
546 static inline void __ClearPageBalloon(struct page *page) in __ClearPageBalloon() argument
548 VM_BUG_ON_PAGE(!PageBalloon(page), page); in __ClearPageBalloon()
549 atomic_set(&page->_mapcount, -1); in __ClearPageBalloon()
556 static inline int PageSlabPfmemalloc(struct page *page) in PageSlabPfmemalloc() argument
558 VM_BUG_ON_PAGE(!PageSlab(page), page); in PageSlabPfmemalloc()
559 return PageActive(page); in PageSlabPfmemalloc()
562 static inline void SetPageSlabPfmemalloc(struct page *page) in SetPageSlabPfmemalloc() argument
564 VM_BUG_ON_PAGE(!PageSlab(page), page); in SetPageSlabPfmemalloc()
565 SetPageActive(page); in SetPageSlabPfmemalloc()
568 static inline void __ClearPageSlabPfmemalloc(struct page *page) in __ClearPageSlabPfmemalloc() argument
570 VM_BUG_ON_PAGE(!PageSlab(page), page); in __ClearPageSlabPfmemalloc()
571 __ClearPageActive(page); in __ClearPageSlabPfmemalloc()
574 static inline void ClearPageSlabPfmemalloc(struct page *page) in ClearPageSlabPfmemalloc() argument
576 VM_BUG_ON_PAGE(!PageSlab(page), page); in ClearPageSlabPfmemalloc()
577 ClearPageActive(page); in ClearPageSlabPfmemalloc()
624 static inline int page_has_private(struct page *page) in page_has_private() argument
626 return !!(page->flags & PAGE_FLAGS_PRIVATE); in page_has_private()