Lines Matching refs:folio

276 	const struct page *:	(const struct folio *)_compound_head(p), \
277 struct page *: (struct folio *)_compound_head(p)))
288 #define folio_page(folio, n) nth_page(&(folio)->page, n) argument
315 static unsigned long *folio_flags(struct folio *folio, unsigned n) in folio_flags() argument
317 struct page *page = &folio->page; in folio_flags()
380 static __always_inline bool folio_test_##lname(struct folio *folio) \
381 { return test_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
387 void folio_set_##lname(struct folio *folio) \
388 { set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
394 void folio_clear_##lname(struct folio *folio) \
395 { clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
401 void __folio_set_##lname(struct folio *folio) \
402 { __set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
408 void __folio_clear_##lname(struct folio *folio) \
409 { __clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
415 bool folio_test_set_##lname(struct folio *folio) \
416 { return test_and_set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
422 bool folio_test_clear_##lname(struct folio *folio) \
423 { return test_and_clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
442 static inline bool folio_test_##lname(const struct folio *folio) { return false; } \
446 static inline void folio_set_##lname(struct folio *folio) { } \
450 static inline void folio_clear_##lname(struct folio *folio) { } \
454 static inline void __folio_clear_##lname(struct folio *folio) { } \
458 static inline bool folio_test_set_##lname(struct folio *folio) \
463 static inline bool folio_test_clear_##lname(struct folio *folio) \
541 static __always_inline bool folio_test_swapcache(struct folio *folio) in PAGEFLAG()
543 return folio_test_swapbacked(folio) && in PAGEFLAG()
544 test_bit(PG_swapcache, folio_flags(folio, 0)); in PAGEFLAG()
646 static __always_inline bool folio_mapping_flags(struct folio *folio) in TESTPAGEFLAG()
648 return ((unsigned long)folio->mapping & PAGE_MAPPING_FLAGS) != 0; in TESTPAGEFLAG()
656 static __always_inline bool folio_test_anon(struct folio *folio) in folio_test_anon() argument
658 return ((unsigned long)folio->mapping & PAGE_MAPPING_ANON) != 0; in folio_test_anon()
666 static __always_inline bool __folio_test_movable(const struct folio *folio) in __folio_test_movable() argument
668 return ((unsigned long)folio->mapping & PAGE_MAPPING_FLAGS) == in __folio_test_movable()
685 static __always_inline bool folio_test_ksm(struct folio *folio) in folio_test_ksm() argument
687 return ((unsigned long)folio->mapping & PAGE_MAPPING_FLAGS) == in folio_test_ksm()
711 static inline bool folio_test_uptodate(struct folio *folio) in folio_test_uptodate() argument
713 bool ret = test_bit(PG_uptodate, folio_flags(folio, 0)); in folio_test_uptodate()
733 static __always_inline void __folio_mark_uptodate(struct folio *folio) in __folio_mark_uptodate() argument
736 __set_bit(PG_uptodate, folio_flags(folio, 0)); in __folio_mark_uptodate()
739 static __always_inline void folio_mark_uptodate(struct folio *folio) in folio_mark_uptodate() argument
747 set_bit(PG_uptodate, folio_flags(folio, 0)); in folio_mark_uptodate()
752 __folio_mark_uptodate((struct folio *)page); in __SetPageUptodate()
757 folio_mark_uptodate((struct folio *)page); in SetPageUptodate()
762 bool __folio_start_writeback(struct folio *folio, bool keep_write);
765 #define folio_start_writeback(folio) \ argument
766 __folio_start_writeback(folio, false)
767 #define folio_start_writeback_keepwrite(folio) \ argument
768 __folio_start_writeback(folio, true)
780 static __always_inline bool folio_test_head(struct folio *folio) in folio_test_head() argument
782 return test_bit(PG_head, folio_flags(folio, FOLIO_PF_ANY)); in folio_test_head()
801 static inline bool folio_test_large(struct folio *folio) in __SETPAGEFLAG()
803 return folio_test_head(folio); in __SETPAGEFLAG()
829 static inline bool folio_test_hugetlb(struct folio *folio) in folio_test_hugetlb() argument
831 return PageHeadHuge(&folio->page); in folio_test_hugetlb()
853 static inline bool folio_test_transhuge(struct folio *folio) in folio_test_transhuge() argument
855 return folio_test_head(folio); in folio_test_transhuge()
1088 static inline bool folio_has_private(struct folio *folio) in folio_has_private() argument
1090 return page_has_private(&folio->page); in folio_has_private()