pv_mmu_opsRegular
4.4: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_single)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
void (*set_pmd_at)(struct mm_struct *, long unsigned int, pmd_t *, pmd_t);
void (*pte_update)(struct mm_struct *, long unsigned int, pte_t *);
void (*pte_update_defer)(struct mm_struct *, long unsigned int, pte_t *);
void (*pmd_update)(struct mm_struct *, long unsigned int, pmd_t *);
void (*pmd_update_defer)(struct mm_struct *, long unsigned int, pmd_t *);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
4.8: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_single)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
void (*set_pmd_at)(struct mm_struct *, long unsigned int, pmd_t *, pmd_t);
void (*pte_update)(struct mm_struct *, long unsigned int, pte_t *);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
4.10: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_single)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
void (*set_pmd_at)(struct mm_struct *, long unsigned int, pmd_t *, pmd_t);
void (*pte_update)(struct mm_struct *, long unsigned int, pte_t *);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
4.13: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_single)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
void (*set_pmd_at)(struct mm_struct *, long unsigned int, pmd_t *, pmd_t);
void (*set_pud_at)(struct mm_struct *, long unsigned int, pud_t *, pud_t);
void (*pte_update)(struct mm_struct *, long unsigned int, pte_t *);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
4.15: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
4.18: ✅struct pv_mmu_ops {
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
void (*exit_mmap)(struct mm_struct *);
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.0: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
long unsigned int (*read_cr2)();
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.3: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.4: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.8: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.11: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.13: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.15: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
5.19: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
void (*notify_page_enc_status_changed)(long unsigned int, int, bool);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
6.2: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
void (*notify_page_enc_status_changed)(long unsigned int, int, bool);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
6.5: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
void (*notify_page_enc_status_changed)(long unsigned int, int, bool);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*enter_mmap)(struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
6.8: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
void (*notify_page_enc_status_changed)(long unsigned int, int, bool);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*enter_mmap)(struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct paravirt_callee_save p4d_val;
struct paravirt_callee_save make_p4d;
void (*set_pgd)(pgd_t *, pgd_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
azure: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
};
gcp: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
lowlatency: ✅struct pv_mmu_ops {
void (*flush_tlb_user)();
void (*flush_tlb_kernel)();
void (*flush_tlb_one_user)(long unsigned int);
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *);
void (*tlb_remove_table)(struct mmu_gather *, void *);
void (*exit_mmap)(struct mm_struct *);
struct paravirt_callee_save read_cr2;
void (*write_cr2)(long unsigned int);
long unsigned int (*read_cr3)();
void (*write_cr3)(long unsigned int);
void (*activate_mm)(struct mm_struct *, struct mm_struct *);
void (*dup_mmap)(struct mm_struct *, struct mm_struct *);
int (*pgd_alloc)(struct mm_struct *);
void (*pgd_free)(struct mm_struct *, pgd_t *);
void (*alloc_pte)(struct mm_struct *, long unsigned int);
void (*alloc_pmd)(struct mm_struct *, long unsigned int);
void (*alloc_pud)(struct mm_struct *, long unsigned int);
void (*alloc_p4d)(struct mm_struct *, long unsigned int);
void (*release_pte)(long unsigned int);
void (*release_pmd)(long unsigned int);
void (*release_pud)(long unsigned int);
void (*release_p4d)(long unsigned int);
void (*set_pte)(pte_t *, pte_t);
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t);
void (*set_pmd)(pmd_t *, pmd_t);
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *);
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t);
struct paravirt_callee_save pte_val;
struct paravirt_callee_save make_pte;
struct paravirt_callee_save pgd_val;
struct paravirt_callee_save make_pgd;
void (*set_pud)(pud_t *, pud_t);
struct paravirt_callee_save pmd_val;
struct paravirt_callee_save make_pmd;
struct paravirt_callee_save pud_val;
struct paravirt_callee_save make_pud;
void (*set_p4d)(p4d_t *, p4d_t);
struct pv_lazy_ops lazy_mode;
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t);
};
Regular
4.4 and 4.8 ⚠️void (*pte_update_defer)(struct mm_struct *, long unsigned int, pte_t *)
void (*pmd_update)(struct mm_struct *, long unsigned int, pmd_t *)
void (*pmd_update_defer)(struct mm_struct *, long unsigned int, pmd_t *)
4.8 and 4.10 ✅
4.10 and 4.13 ⚠️void (*alloc_p4d)(struct mm_struct *, long unsigned int)
void (*release_p4d)(long unsigned int)
void (*set_pud_at)(struct mm_struct *, long unsigned int, pud_t *, pud_t)
void (*set_p4d)(p4d_t *, p4d_t)
void (*set_pgd)(pgd_t *, pgd_t)
void (*flush_tlb_others)(const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int) ➡️ void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *)
4.13 and 4.15 ⚠️void (*flush_tlb_one_user)(long unsigned int)
void (*flush_tlb_single)(long unsigned int)
void (*set_pmd_at)(struct mm_struct *, long unsigned int, pmd_t *, pmd_t)
void (*set_pud_at)(struct mm_struct *, long unsigned int, pud_t *, pud_t)
void (*pte_update)(struct mm_struct *, long unsigned int, pte_t *)
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️void (*tlb_remove_table)(struct mmu_gather *, void *)
5.0 and 5.3 ⚠️long unsigned int (*read_cr2)() ➡️ struct paravirt_callee_save read_cr2
pte_t (*ptep_modify_prot_start)(struct mm_struct *, long unsigned int, pte_t *) ➡️ pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *)
void (*ptep_modify_prot_commit)(struct mm_struct *, long unsigned int, pte_t *, pte_t) ➡️ void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t)
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️struct paravirt_callee_save p4d_val
struct paravirt_callee_save make_p4d
void (*set_pgd)(pgd_t *, pgd_t)
5.8 and 5.11 ⚠️void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t)
5.11 and 5.13 ⚠️void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *)
void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *)
5.13 and 5.15 ✅
5.15 and 5.19 ⚠️void (*notify_page_enc_status_changed)(long unsigned int, int, bool)
5.19 and 6.2 ✅
6.2 and 6.5 ⚠️void (*enter_mmap)(struct mm_struct *)
void (*activate_mm)(struct mm_struct *, struct mm_struct *)
void (*dup_mmap)(struct mm_struct *, struct mm_struct *)
6.5 and 6.8 ✅
generic and aws ✅
generic and azure ⚠️struct paravirt_callee_save read_cr2
void (*write_cr2)(long unsigned int)
long unsigned int (*read_cr3)()
void (*write_cr3)(long unsigned int)
void (*activate_mm)(struct mm_struct *, struct mm_struct *)
void (*dup_mmap)(struct mm_struct *, struct mm_struct *)
int (*pgd_alloc)(struct mm_struct *)
void (*pgd_free)(struct mm_struct *, pgd_t *)
void (*alloc_pte)(struct mm_struct *, long unsigned int)
void (*alloc_pmd)(struct mm_struct *, long unsigned int)
void (*alloc_pud)(struct mm_struct *, long unsigned int)
void (*alloc_p4d)(struct mm_struct *, long unsigned int)
void (*release_pte)(long unsigned int)
void (*release_pmd)(long unsigned int)
void (*release_pud)(long unsigned int)
void (*release_p4d)(long unsigned int)
void (*set_pte)(pte_t *, pte_t)
void (*set_pte_at)(struct mm_struct *, long unsigned int, pte_t *, pte_t)
void (*set_pmd)(pmd_t *, pmd_t)
pte_t (*ptep_modify_prot_start)(struct vm_area_struct *, long unsigned int, pte_t *)
void (*ptep_modify_prot_commit)(struct vm_area_struct *, long unsigned int, pte_t *, pte_t)
struct paravirt_callee_save pte_val
struct paravirt_callee_save make_pte
struct paravirt_callee_save pgd_val
struct paravirt_callee_save make_pgd
void (*set_pud)(pud_t *, pud_t)
struct paravirt_callee_save pmd_val
struct paravirt_callee_save make_pmd
struct paravirt_callee_save pud_val
struct paravirt_callee_save make_pud
void (*set_p4d)(p4d_t *, p4d_t)
struct pv_lazy_ops lazy_mode
void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t)
generic and gcp ✅
generic and lowlatency ✅