Lines Matching full:entry

45  * Migration swap entry specific bitfield definitions.  Layout:
69 static inline bool is_pfn_swap_entry(swp_entry_t entry);
98 static inline unsigned swp_type(swp_entry_t entry) in swp_type() argument
100 return (entry.val >> SWP_TYPE_SHIFT); in swp_type()
107 static inline pgoff_t swp_offset(swp_entry_t entry) in swp_offset() argument
109 return entry.val & SWP_OFFSET_MASK; in swp_offset()
113 * This should only be called upon a pfn swap entry to get the PFN stored
114 * in the swap entry. Please refers to is_pfn_swap_entry() for definition
115 * of pfn swap entry.
117 static inline unsigned long swp_offset_pfn(swp_entry_t entry) in swp_offset_pfn() argument
119 VM_BUG_ON(!is_pfn_swap_entry(entry)); in swp_offset_pfn()
120 return swp_offset(entry) & SWP_PFN_MASK; in swp_offset_pfn()
123 /* check whether a pte points to a swap entry */
146 static inline pte_t swp_entry_to_pte(swp_entry_t entry) in swp_entry_to_pte() argument
150 arch_entry = __swp_entry(swp_type(entry), swp_offset(entry)); in swp_entry_to_pte()
156 swp_entry_t entry; in radix_to_swp_entry() local
158 entry.val = xa_to_value(arg); in radix_to_swp_entry()
159 return entry; in radix_to_swp_entry()
162 static inline void *swp_to_radix_entry(swp_entry_t entry) in swp_to_radix_entry() argument
164 return xa_mk_value(entry.val); in swp_to_radix_entry()
178 static inline bool is_device_private_entry(swp_entry_t entry) in is_device_private_entry() argument
180 int type = swp_type(entry); in is_device_private_entry()
184 static inline bool is_writable_device_private_entry(swp_entry_t entry) in is_writable_device_private_entry() argument
186 return unlikely(swp_type(entry) == SWP_DEVICE_WRITE); in is_writable_device_private_entry()
194 static inline bool is_device_exclusive_entry(swp_entry_t entry) in is_device_exclusive_entry() argument
196 return swp_type(entry) == SWP_DEVICE_EXCLUSIVE; in is_device_exclusive_entry()
210 static inline bool is_device_private_entry(swp_entry_t entry) in is_device_private_entry() argument
215 static inline bool is_writable_device_private_entry(swp_entry_t entry) in is_writable_device_private_entry() argument
225 static inline bool is_device_exclusive_entry(swp_entry_t entry) in is_device_exclusive_entry() argument
233 static inline int is_migration_entry(swp_entry_t entry) in is_migration_entry() argument
235 return unlikely(swp_type(entry) == SWP_MIGRATION_READ || in is_migration_entry()
236 swp_type(entry) == SWP_MIGRATION_READ_EXCLUSIVE || in is_migration_entry()
237 swp_type(entry) == SWP_MIGRATION_WRITE); in is_migration_entry()
240 static inline int is_writable_migration_entry(swp_entry_t entry) in is_writable_migration_entry() argument
242 return unlikely(swp_type(entry) == SWP_MIGRATION_WRITE); in is_writable_migration_entry()
245 static inline int is_readable_migration_entry(swp_entry_t entry) in is_readable_migration_entry() argument
247 return unlikely(swp_type(entry) == SWP_MIGRATION_READ); in is_readable_migration_entry()
250 static inline int is_readable_exclusive_migration_entry(swp_entry_t entry) in is_readable_exclusive_migration_entry() argument
252 return unlikely(swp_type(entry) == SWP_MIGRATION_READ_EXCLUSIVE); in is_readable_exclusive_migration_entry()
284 static inline swp_entry_t make_migration_entry_young(swp_entry_t entry) in make_migration_entry_young() argument
287 return swp_entry(swp_type(entry), in make_migration_entry_young()
288 swp_offset(entry) | SWP_MIG_YOUNG); in make_migration_entry_young()
289 return entry; in make_migration_entry_young()
292 static inline bool is_migration_entry_young(swp_entry_t entry) in is_migration_entry_young() argument
295 return swp_offset(entry) & SWP_MIG_YOUNG; in is_migration_entry_young()
300 static inline swp_entry_t make_migration_entry_dirty(swp_entry_t entry) in make_migration_entry_dirty() argument
303 return swp_entry(swp_type(entry), in make_migration_entry_dirty()
304 swp_offset(entry) | SWP_MIG_DIRTY); in make_migration_entry_dirty()
305 return entry; in make_migration_entry_dirty()
308 static inline bool is_migration_entry_dirty(swp_entry_t entry) in is_migration_entry_dirty() argument
311 return swp_offset(entry) & SWP_MIG_DIRTY; in is_migration_entry_dirty()
344 static inline int is_writable_migration_entry(swp_entry_t entry) in is_writable_migration_entry() argument
348 static inline int is_readable_migration_entry(swp_entry_t entry) in is_readable_migration_entry() argument
353 static inline swp_entry_t make_migration_entry_young(swp_entry_t entry) in make_migration_entry_young() argument
355 return entry; in make_migration_entry_young()
358 static inline bool is_migration_entry_young(swp_entry_t entry) in is_migration_entry_young() argument
363 static inline swp_entry_t make_migration_entry_dirty(swp_entry_t entry) in make_migration_entry_dirty() argument
365 return entry; in make_migration_entry_dirty()
368 static inline bool is_migration_entry_dirty(swp_entry_t entry) in is_migration_entry_dirty() argument
385 static inline int is_hwpoison_entry(swp_entry_t entry) in is_hwpoison_entry() argument
387 return swp_type(entry) == SWP_HWPOISON; in is_hwpoison_entry()
429 static inline bool is_pte_marker_entry(swp_entry_t entry) in is_pte_marker_entry() argument
431 return swp_type(entry) == SWP_PTE_MARKER; in is_pte_marker_entry()
434 static inline pte_marker pte_marker_get(swp_entry_t entry) in pte_marker_get() argument
436 return swp_offset(entry) & PTE_MARKER_MASK; in pte_marker_get()
454 static inline int is_poisoned_swp_entry(swp_entry_t entry) in is_poisoned_swp_entry() argument
456 return is_pte_marker_entry(entry) && in is_poisoned_swp_entry()
457 (pte_marker_get(entry) & PTE_MARKER_POISONED); in is_poisoned_swp_entry()
466 static inline int is_guard_swp_entry(swp_entry_t entry) in is_guard_swp_entry() argument
468 return is_pte_marker_entry(entry) && in is_guard_swp_entry()
469 (pte_marker_get(entry) & PTE_MARKER_GUARD); in is_guard_swp_entry()
490 static inline struct page *pfn_swap_entry_to_page(swp_entry_t entry) in pfn_swap_entry_to_page() argument
492 struct page *p = pfn_to_page(swp_offset_pfn(entry)); in pfn_swap_entry_to_page()
498 BUG_ON(is_migration_entry(entry) && !PageLocked(p)); in pfn_swap_entry_to_page()
503 static inline struct folio *pfn_swap_entry_folio(swp_entry_t entry) in pfn_swap_entry_folio() argument
505 struct folio *folio = pfn_folio(swp_offset_pfn(entry)); in pfn_swap_entry_folio()
511 BUG_ON(is_migration_entry(entry) && !folio_test_locked(folio)); in pfn_swap_entry_folio()
517 * A pfn swap entry is a special type of swap entry that always has a pfn stored
522 static inline bool is_pfn_swap_entry(swp_entry_t entry) in is_pfn_swap_entry() argument
527 return is_migration_entry(entry) || is_device_private_entry(entry) || in is_pfn_swap_entry()
528 is_device_exclusive_entry(entry) || is_hwpoison_entry(entry); in is_pfn_swap_entry()
554 static inline pmd_t swp_entry_to_pmd(swp_entry_t entry) in swp_entry_to_pmd() argument
558 arch_entry = __swp_entry(swp_type(entry), swp_offset(entry)); in swp_entry_to_pmd()
586 static inline pmd_t swp_entry_to_pmd(swp_entry_t entry) in swp_entry_to_pmd() argument
597 static inline int non_swap_entry(swp_entry_t entry) in non_swap_entry() argument
599 return swp_type(entry) >= MAX_SWAPFILES; in non_swap_entry()