pte_masks
struct pte_masks pte_masks;
#define PTE_PRESENT_MASK(mmu) ((mmu)->arch.pte_masks.present)
#define PTE_WRITABLE_MASK(mmu) ((mmu)->arch.pte_masks.writable)
#define PTE_USER_MASK(mmu) ((mmu)->arch.pte_masks.user)
#define PTE_READABLE_MASK(mmu) ((mmu)->arch.pte_masks.readable)
#define PTE_EXECUTABLE_MASK(mmu) ((mmu)->arch.pte_masks.executable)
#define PTE_ACCESSED_MASK(mmu) ((mmu)->arch.pte_masks.accessed)
#define PTE_DIRTY_MASK(mmu) ((mmu)->arch.pte_masks.dirty)
#define PTE_HUGE_MASK(mmu) ((mmu)->arch.pte_masks.huge)
#define PTE_NX_MASK(mmu) ((mmu)->arch.pte_masks.nx)
#define PTE_C_BIT_MASK(mmu) ((mmu)->arch.pte_masks.c)
#define PTE_S_BIT_MASK(mmu) ((mmu)->arch.pte_masks.s)
#define PTE_ALWAYS_SET_MASK(mmu) ((mmu)->arch.pte_masks.always_set)
struct pte_masks *pte_masks);
struct pte_masks *pte_masks)
mmu->arch.pte_masks = *pte_masks;
struct pte_masks pte_masks = (struct pte_masks){
virt_mmu_init(vm, &vm->mmu, &pte_masks);
struct pte_masks *pte_masks)
virt_mmu_init(vm, &vm->stage2_mmu, pte_masks);
struct pte_masks pte_masks;
pte_masks = vm->mmu.arch.pte_masks;
pte_masks.c = 0;
pte_masks.always_set = pte_masks.user;
tdp_mmu_init(vm, vm->mmu.pgtable_levels, &pte_masks);
struct pte_masks pte_masks;
pte_masks = (struct pte_masks) {
tdp_mmu_init(vm, 4, &pte_masks);