Lines Matching refs:lname

377 #define TESTPAGEFLAG(uname, lname, policy)				\  argument
378 static __always_inline bool folio_test_##lname(struct folio *folio) \
379 { return test_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
381 { return test_bit(PG_##lname, &policy(page, 0)->flags); }
383 #define SETPAGEFLAG(uname, lname, policy) \ argument
385 void folio_set_##lname(struct folio *folio) \
386 { set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
388 { set_bit(PG_##lname, &policy(page, 1)->flags); }
390 #define CLEARPAGEFLAG(uname, lname, policy) \ argument
392 void folio_clear_##lname(struct folio *folio) \
393 { clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
395 { clear_bit(PG_##lname, &policy(page, 1)->flags); }
397 #define __SETPAGEFLAG(uname, lname, policy) \ argument
399 void __folio_set_##lname(struct folio *folio) \
400 { __set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
402 { __set_bit(PG_##lname, &policy(page, 1)->flags); }
404 #define __CLEARPAGEFLAG(uname, lname, policy) \ argument
406 void __folio_clear_##lname(struct folio *folio) \
407 { __clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
409 { __clear_bit(PG_##lname, &policy(page, 1)->flags); }
411 #define TESTSETFLAG(uname, lname, policy) \ argument
413 bool folio_test_set_##lname(struct folio *folio) \
414 { return test_and_set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
416 { return test_and_set_bit(PG_##lname, &policy(page, 1)->flags); }
418 #define TESTCLEARFLAG(uname, lname, policy) \ argument
420 bool folio_test_clear_##lname(struct folio *folio) \
421 { return test_and_clear_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
423 { return test_and_clear_bit(PG_##lname, &policy(page, 1)->flags); }
425 #define PAGEFLAG(uname, lname, policy) \ argument
426 TESTPAGEFLAG(uname, lname, policy) \
427 SETPAGEFLAG(uname, lname, policy) \
428 CLEARPAGEFLAG(uname, lname, policy)
430 #define __PAGEFLAG(uname, lname, policy) \ argument
431 TESTPAGEFLAG(uname, lname, policy) \
432 __SETPAGEFLAG(uname, lname, policy) \
433 __CLEARPAGEFLAG(uname, lname, policy)
435 #define TESTSCFLAG(uname, lname, policy) \ argument
436 TESTSETFLAG(uname, lname, policy) \
437 TESTCLEARFLAG(uname, lname, policy)
439 #define TESTPAGEFLAG_FALSE(uname, lname) \ argument
440 static inline bool folio_test_##lname(const struct folio *folio) { return false; } \
443 #define SETPAGEFLAG_NOOP(uname, lname) \ argument
444 static inline void folio_set_##lname(struct folio *folio) { } \
447 #define CLEARPAGEFLAG_NOOP(uname, lname) \ argument
448 static inline void folio_clear_##lname(struct folio *folio) { } \
451 #define __CLEARPAGEFLAG_NOOP(uname, lname) \ argument
452 static inline void __folio_clear_##lname(struct folio *folio) { } \
455 #define TESTSETFLAG_FALSE(uname, lname) \ argument
456 static inline bool folio_test_set_##lname(struct folio *folio) \
460 #define TESTCLEARFLAG_FALSE(uname, lname) \ argument
461 static inline bool folio_test_clear_##lname(struct folio *folio) \
465 #define PAGEFLAG_FALSE(uname, lname) TESTPAGEFLAG_FALSE(uname, lname) \ argument
466 SETPAGEFLAG_NOOP(uname, lname) CLEARPAGEFLAG_NOOP(uname, lname)
468 #define TESTSCFLAG_FALSE(uname, lname) \ argument
469 TESTSETFLAG_FALSE(uname, lname) TESTCLEARFLAG_FALSE(uname, lname)
934 #define PAGE_TYPE_OPS(uname, lname) \ argument
937 return PageType(page, PG_##lname); \
942 page->page_type &= ~PG_##lname; \
947 page->page_type |= PG_##lname; \