pv_mmu_ops
Regular
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
✅