Lines Matching refs:lname

373 #define TESTPAGEFLAG(uname, lname, policy)				\  argument
374 static __always_inline bool folio_test_##lname(struct folio *folio) \
375 { return test_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
377 { return test_bit(PG_##lname, &policy(page, 0)->flags); }
379 #define SETPAGEFLAG(uname, lname, policy) \ argument
381 void folio_set_##lname(struct folio *folio) \
382 { set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
384 { set_bit(PG_##lname, &policy(page, 1)->flags); }
386 #define CLEARPAGEFLAG(uname, lname, policy) \ argument
388 void folio_clear_##lname(struct folio *folio) \
389 { clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
391 { clear_bit(PG_##lname, &policy(page, 1)->flags); }
393 #define __SETPAGEFLAG(uname, lname, policy) \ argument
395 void __folio_set_##lname(struct folio *folio) \
396 { __set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
398 { __set_bit(PG_##lname, &policy(page, 1)->flags); }
400 #define __CLEARPAGEFLAG(uname, lname, policy) \ argument
402 void __folio_clear_##lname(struct folio *folio) \
403 { __clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
405 { __clear_bit(PG_##lname, &policy(page, 1)->flags); }
407 #define TESTSETFLAG(uname, lname, policy) \ argument
409 bool folio_test_set_##lname(struct folio *folio) \
410 { return test_and_set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
412 { return test_and_set_bit(PG_##lname, &policy(page, 1)->flags); }
414 #define TESTCLEARFLAG(uname, lname, policy) \ argument
416 bool folio_test_clear_##lname(struct folio *folio) \
417 { return test_and_clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
419 { return test_and_clear_bit(PG_##lname, &policy(page, 1)->flags); }
421 #define PAGEFLAG(uname, lname, policy) \ argument
422 TESTPAGEFLAG(uname, lname, policy) \
423 SETPAGEFLAG(uname, lname, policy) \
424 CLEARPAGEFLAG(uname, lname, policy)
426 #define __PAGEFLAG(uname, lname, policy) \ argument
427 TESTPAGEFLAG(uname, lname, policy) \
428 __SETPAGEFLAG(uname, lname, policy) \
429 __CLEARPAGEFLAG(uname, lname, policy)
431 #define TESTSCFLAG(uname, lname, policy) \ argument
432 TESTSETFLAG(uname, lname, policy) \
433 TESTCLEARFLAG(uname, lname, policy)
435 #define TESTPAGEFLAG_FALSE(uname, lname) \ argument
436 static inline bool folio_test_##lname(const struct folio *folio) { return false; } \
439 #define SETPAGEFLAG_NOOP(uname, lname) \ argument
440 static inline void folio_set_##lname(struct folio *folio) { } \
443 #define CLEARPAGEFLAG_NOOP(uname, lname) \ argument
444 static inline void folio_clear_##lname(struct folio *folio) { } \
447 #define __CLEARPAGEFLAG_NOOP(uname, lname) \ argument
448 static inline void __folio_clear_##lname(struct folio *folio) { } \
451 #define TESTSETFLAG_FALSE(uname, lname) \ argument
452 static inline bool folio_test_set_##lname(struct folio *folio) \
456 #define TESTCLEARFLAG_FALSE(uname, lname) \ argument
457 static inline bool folio_test_clear_##lname(struct folio *folio) \
461 #define PAGEFLAG_FALSE(uname, lname) TESTPAGEFLAG_FALSE(uname, lname) \ argument
462 SETPAGEFLAG_NOOP(uname, lname) CLEARPAGEFLAG_NOOP(uname, lname)
464 #define TESTSCFLAG_FALSE(uname, lname) \ argument
465 TESTSETFLAG_FALSE(uname, lname) TESTCLEARFLAG_FALSE(uname, lname)
940 #define PAGE_TYPE_OPS(uname, lname, fname) \ argument
943 return PageType(page, PG_##lname); \
947 return folio_test_type(folio, PG_##lname); \
952 page->page_type &= ~PG_##lname; \
957 folio->page.page_type &= ~PG_##lname; \
962 page->page_type |= PG_##lname; \
967 folio->page.page_type |= PG_##lname; \