/* SPDX-License-Identifier: GPL-2.0+ */ #pragma once /* * Contains declarations that are STUBBED, that is that are rendered no-ops, in * order to faciliate userland VMA testing. */ /* Forward declarations. */struct mm_struct;struct vm_area_struct;struct vm_area_desc;struct pagetable_move_control;struct mmap_action;struct file;struct anon_vma;struct anon_vma_chain;struct address_space;struct unmap_desc; #define __bitwise#define __randomize_layout #define FIRST_USER_ADDRESS 0UL#define USER_PGTABLES_CEILING 0UL #define vma_policy(vma) NULL #define down_write_nest_lock(sem, nest_lock) #define data_race(expr) expr #define ASSERT_EXCLUSIVE_WRITER(x) struct vm_userfaultfd_ctx {};struct mempolicy {};struct mmu_gather {};struct mutex {};struct vm_fault {}; static inline void userfaultfd_unmap_complete(struct mm_struct *mm, struct list_head *uf){} static inline unsigned long move_page_tables(struct pagetable_move_control *pmc){ return 0;} static inline void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling){} static inline int ksm_execve(struct mm_struct *mm){ return 0;} static inline void ksm_exit(struct mm_struct *mm){} static inline void vma_numab_state_init(struct vm_area_struct *vma){} static inline void vma_numab_state_free(struct vm_area_struct *vma){} static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma, struct vm_area_struct *new_vma){} static inline void free_anon_vma_name(struct vm_area_struct *vma){} static inline int mmap_action_prepare(struct vm_area_desc *desc){ return 0;} static inline int mmap_action_complete(struct vm_area_struct *vma, struct mmap_action *action, bool is_compat){ return 0;} static inline void fixup_hugetlb_reservations(struct vm_area_struct *vma){} static inline bool shmem_file(struct file *file){ return false;} static inline vma_flags_t ksm_vma_flags(struct mm_struct *mm, const struct file *file, vma_flags_t vma_flags){ return vma_flags;} static inline void remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long pfn){} static inline int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t pgprot){ return 0;} static inline int do_munmap(struct mm_struct *, unsigned long, size_t, struct list_head *uf){ return 0;} /* Currently stubbed but we may later wish to un-stub. */static inline void vm_acct_memory(long pages); static inline void mmap_assert_locked(struct mm_struct *mm){} static inline void anon_vma_unlock_write(struct anon_vma *anon_vma){} static inline void i_mmap_unlock_write(struct address_space *mapping){} static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma, unsigned long start, unsigned long end, struct list_head *unmaps){ return 0;} static inline void mmap_write_downgrade(struct mm_struct *mm){} static inline void mmap_read_unlock(struct mm_struct *mm){} static inline void mmap_write_unlock(struct mm_struct *mm){} static inline int mmap_write_lock_killable(struct mm_struct *mm){ return 0;} static inline bool can_modify_mm(struct mm_struct *mm, unsigned long start, unsigned long end){ return true;} static inline void arch_unmap(struct mm_struct *mm, unsigned long start, unsigned long end){} static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b){ return true;} static inline void khugepaged_enter_vma(struct vm_area_struct *vma, vm_flags_t vm_flags){} static inline bool mapping_can_writeback(struct address_space *mapping){ return true;} static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma){ return false;} static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma){ return false;} static inline bool userfaultfd_wp(struct vm_area_struct *vma){ return false;} static inline void mmap_assert_write_locked(struct mm_struct *mm){} static inline void mutex_lock(struct mutex *lock){} static inline void mutex_unlock(struct mutex *lock){} static inline bool mutex_is_locked(struct mutex *lock){ return true;} static inline bool signal_pending(void *p){ return false;} static inline bool is_file_hugepages(const struct file *file){ return false;} static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages){ return 0;} static inline bool may_expand_vm(struct mm_struct *mm, const vma_flags_t *vma_flags, unsigned long npages){ return true;} static inline int shmem_zero_setup(struct vm_area_struct *vma){ return 0;} static inline void vm_acct_memory(long pages){} static inline void mapping_rmap_tree_insert(struct vm_area_struct *vma, struct address_space *mapping){} static inline void mapping_rmap_tree_remove(struct vm_area_struct *vma, struct address_space *mapping){} static inline void flush_dcache_mmap_unlock(struct address_space *mapping){} static inline void anon_rmap_tree_insert(struct anon_vma_chain *avc, struct anon_vma *anon_vma){} static inline void anon_rmap_tree_remove(struct anon_vma_chain *avc, struct anon_vma *anon_vma){} static inline void uprobe_mmap(struct vm_area_struct *vma){} static inline void uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end){} static inline void i_mmap_lock_write(struct address_space *mapping){} static inline void anon_vma_lock_write(struct anon_vma *anon_vma){} static inline void vma_assert_write_locked(struct vm_area_struct *vma){} static inline void ksm_add_vma(struct vm_area_struct *vma){} static inline void perf_event_mmap(struct vm_area_struct *vma){} static inline bool vma_is_dax(struct vm_area_struct *vma){ return false;} static inline struct vm_area_struct *get_gate_vma(struct mm_struct *mm){ return NULL;} static inline bool arch_validate_flags(vm_flags_t flags){ return true;} static inline void vma_close(struct vm_area_struct *vma){} static inline int mmap_file(struct file *file, struct vm_area_struct *vma){ return 0;} static inline int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr, unsigned long len){ return 0;} static inline bool capable(int cap){ return true;} static inline struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma){ return NULL;} static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, struct vm_userfaultfd_ctx vm_ctx){ return true;} static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1, struct anon_vma_name *anon_name2){ return true;} static inline void might_sleep(void){} static inline void fput(struct file *file){} static inline void mpol_put(struct mempolicy *pol){} static inline void lru_add_drain(void){} static inline void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm){} static inline void update_hiwater_rss(struct mm_struct *mm){} static inline void update_hiwater_vm(struct mm_struct *mm){} static inline void unmap_vmas(struct mmu_gather *tlb, struct unmap_desc *unmap){} static inline void free_pgtables(struct mmu_gather *tlb, struct unmap_desc *unmap){} static inline void mapping_unmap_writable(struct address_space *mapping){} static inline void flush_dcache_mmap_lock(struct address_space *mapping){} static inline void tlb_finish_mmu(struct mmu_gather *tlb){} static inline struct file *get_file(struct file *f){ return f;} static inline int vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst){ return 0;} static inline void vma_adjust_trans_huge(struct vm_area_struct *vma, unsigned long start, unsigned long end, struct vm_area_struct *next){} static inline void hugetlb_split(struct vm_area_struct *, unsigned long) {} static inline bool vma_supports_mlock(const struct vm_area_struct *vma){ return false;}
/* SPDX-License-Identifier: GPL-2.0+ */
#pragma once
/*
* Contains declarations that are STUBBED, that is that are rendered no-ops, in
* order to faciliate userland VMA testing.
*/
/* Forward declarations. */
struct mm_struct;
struct vm_area_struct;
struct vm_area_desc;
struct pagetable_move_control;
struct mmap_action;
struct file;
struct anon_vma;
struct anon_vma_chain;
struct address_space;
struct unmap_desc;
#define __bitwise
#define __randomize_layout
#define FIRST_USER_ADDRESS 0UL
#define USER_PGTABLES_CEILING 0UL
#define vma_policy(vma) NULL
#define down_write_nest_lock(sem, nest_lock)
#define data_race(expr) expr
#define ASSERT_EXCLUSIVE_WRITER(x)
struct vm_userfaultfd_ctx {};
struct mempolicy {};
struct mmu_gather {};
struct mutex {};
struct vm_fault {};
static inline void userfaultfd_unmap_complete(struct mm_struct *mm,
struct list_head *uf)
{
}
static inline unsigned long move_page_tables(struct pagetable_move_control *pmc)
{
return 0;
}
static inline void free_pgd_range(struct mmu_gather *tlb,
unsigned long addr, unsigned long end,
unsigned long floor, unsigned long ceiling)
{
}
static inline int ksm_execve(struct mm_struct *mm)
{
return 0;
}
static inline void ksm_exit(struct mm_struct *mm)
{
}
static inline void vma_numab_state_init(struct vm_area_struct *vma)
{
}
static inline void vma_numab_state_free(struct vm_area_struct *vma)
{
}
static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma,
struct vm_area_struct *new_vma)
{
}
static inline void free_anon_vma_name(struct vm_area_struct *vma)
{
}
static inline int mmap_action_prepare(struct vm_area_desc *desc)
{
return 0;
}
static inline int mmap_action_complete(struct vm_area_struct *vma,
struct mmap_action *action,
bool is_compat)
{
return 0;
}
static inline void fixup_hugetlb_reservations(struct vm_area_struct *vma)
{
}
static inline bool shmem_file(struct file *file)
{
return false;
}
static inline vma_flags_t ksm_vma_flags(struct mm_struct *mm,
const struct file *file, vma_flags_t vma_flags)
{
return vma_flags;
}
static inline void remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long pfn)
{
}
static inline int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long addr,
unsigned long pfn, unsigned long size, pgprot_t pgprot)
{
return 0;
}
static inline int do_munmap(struct mm_struct *, unsigned long, size_t,
struct list_head *uf)
{
return 0;
}
/* Currently stubbed but we may later wish to un-stub. */
static inline void vm_acct_memory(long pages);
static inline void mmap_assert_locked(struct mm_struct *mm)
{
}
static inline void anon_vma_unlock_write(struct anon_vma *anon_vma)
{
}
static inline void i_mmap_unlock_write(struct address_space *mapping)
{
}
static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma,
unsigned long start,
unsigned long end,
struct list_head *unmaps)
{
return 0;
}
static inline void mmap_write_downgrade(struct mm_struct *mm)
{
}
static inline void mmap_read_unlock(struct mm_struct *mm)
{
}
static inline void mmap_write_unlock(struct mm_struct *mm)
{
}
static inline int mmap_write_lock_killable(struct mm_struct *mm)
{
return 0;
}
static inline bool can_modify_mm(struct mm_struct *mm,
unsigned long start,
unsigned long end)
{
return true;
}
static inline void arch_unmap(struct mm_struct *mm,
unsigned long start,
unsigned long end)
{
}
static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b)
{
return true;
}
static inline void khugepaged_enter_vma(struct vm_area_struct *vma,
vm_flags_t vm_flags)
{
}
static inline bool mapping_can_writeback(struct address_space *mapping)
{
return true;
}
static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma)
{
return false;
}
static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma)
{
return false;
}
static inline bool userfaultfd_wp(struct vm_area_struct *vma)
{
return false;
}
static inline void mmap_assert_write_locked(struct mm_struct *mm)
{
}
static inline void mutex_lock(struct mutex *lock)
{
}
static inline void mutex_unlock(struct mutex *lock)
{
}
static inline bool mutex_is_locked(struct mutex *lock)
{
return true;
}
static inline bool signal_pending(void *p)
{
return false;
}
static inline bool is_file_hugepages(const struct file *file)
{
return false;
}
static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
{
return 0;
}
static inline bool may_expand_vm(struct mm_struct *mm,
const vma_flags_t *vma_flags,
unsigned long npages)
{
return true;
}
static inline int shmem_zero_setup(struct vm_area_struct *vma)
{
return 0;
}
static inline void vm_acct_memory(long pages)
{
}
static inline void mapping_rmap_tree_insert(struct vm_area_struct *vma,
struct address_space *mapping)
{
}
static inline void mapping_rmap_tree_remove(struct vm_area_struct *vma,
struct address_space *mapping)
{
}
static inline void flush_dcache_mmap_unlock(struct address_space *mapping)
{
}
static inline void anon_rmap_tree_insert(struct anon_vma_chain *avc,
struct anon_vma *anon_vma)
{
}
static inline void anon_rmap_tree_remove(struct anon_vma_chain *avc,
struct anon_vma *anon_vma)
{
}
static inline void uprobe_mmap(struct vm_area_struct *vma)
{
}
static inline void uprobe_munmap(struct vm_area_struct *vma,
unsigned long start, unsigned long end)
{
}
static inline void i_mmap_lock_write(struct address_space *mapping)
{
}
static inline void anon_vma_lock_write(struct anon_vma *anon_vma)
{
}
static inline void vma_assert_write_locked(struct vm_area_struct *vma)
{
}
static inline void ksm_add_vma(struct vm_area_struct *vma)
{
}
static inline void perf_event_mmap(struct vm_area_struct *vma)
{
}
static inline bool vma_is_dax(struct vm_area_struct *vma)
{
return false;
}
static inline struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
{
return NULL;
}
static inline bool arch_validate_flags(vm_flags_t flags)
{
return true;
}
static inline void vma_close(struct vm_area_struct *vma)
{
}
static inline int mmap_file(struct file *file, struct vm_area_struct *vma)
{
return 0;
}
static inline int is_hugepage_only_range(struct mm_struct *mm,
unsigned long addr, unsigned long len)
{
return 0;
}
static inline bool capable(int cap)
{
return true;
}
static inline struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma)
{
return NULL;
}
static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma,
struct vm_userfaultfd_ctx vm_ctx)
{
return true;
}
static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1,
struct anon_vma_name *anon_name2)
{
return true;
}
static inline void might_sleep(void)
{
}
static inline void fput(struct file *file)
{
}
static inline void mpol_put(struct mempolicy *pol)
{
}
static inline void lru_add_drain(void)
{
}
static inline void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm)
{
}
static inline void update_hiwater_rss(struct mm_struct *mm)
{
}
static inline void update_hiwater_vm(struct mm_struct *mm)
{
}
static inline void unmap_vmas(struct mmu_gather *tlb, struct unmap_desc *unmap)
{
}
static inline void free_pgtables(struct mmu_gather *tlb, struct unmap_desc *unmap)
{
}
static inline void mapping_unmap_writable(struct address_space *mapping)
{
}
static inline void flush_dcache_mmap_lock(struct address_space *mapping)
{
}
static inline void tlb_finish_mmu(struct mmu_gather *tlb)
{
}
static inline struct file *get_file(struct file *f)
{
return f;
}
static inline int vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
{
return 0;
}
static inline void vma_adjust_trans_huge(struct vm_area_struct *vma,
unsigned long start,
unsigned long end,
struct vm_area_struct *next)
{
}
static inline void hugetlb_split(struct vm_area_struct *, unsigned long) {}
static inline bool vma_supports_mlock(const struct vm_area_struct *vma)
{
return false;
}