PTE_AF
#define _PROT_DEFAULT (PTE_TYPE_PAGE | PTE_AF | PTE_SHARED)
#define PROT_DEFAULT (PTE_TYPE_PAGE | PTE_MAYBE_NG | PTE_MAYBE_SHARED | PTE_AF)
#define pte_young(pte) (!!(pte_val(pte) & PTE_AF))
return clear_pte_bit(pte, __pgprot(PTE_AF));
return set_pte_bit(pte, __pgprot(PTE_AF));
new_desc |= PTE_AF;
if (!(desc & PTE_AF)) {
const pteval_t cmp_mask = PTE_RDONLY | PTE_AF | PTE_WRITE | PTE_DIRTY;
pte_val(entry) &= PTE_RDONLY | PTE_AF | PTE_WRITE | PTE_DIRTY;
.mask = PTE_AF,
.val = PTE_AF,
clear_bit(__ffs(PTE_AF), ptep_hva);
TEST_ASSERT(test_bit(__ffs(PTE_AF), ptep_hva),
*((uint64_t *)TEST_PTE_GVA) &= ~PTE_AF;
GUEST_ASSERT_EQ(*((uint64_t *)TEST_PTE_GVA) & PTE_AF, PTE_AF);
pg_attr = PTE_AF | PTE_ATTRINDX(attr_idx) | PTE_TYPE_PAGE | PTE_VALID;