page.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Based on arch/arm/include/asm/page.h
  4. *
  5. * Copyright (C) 1995-2003 Russell King
  6. * Copyright (C) 2012 ARM Ltd.
  7. */
  8. #ifndef __ASM_PAGE_H
  9. #define __ASM_PAGE_H
  10. #include <asm/page-def.h>
  11. #ifndef __ASSEMBLY__
  12. #include <linux/personality.h> /* for READ_IMPLIES_EXEC */
  13. #include <linux/types.h> /* for gfp_t */
  14. #include <asm/pgtable-types.h>
  15. struct page;
  16. struct vm_area_struct;
  17. extern void copy_page(void *to, const void *from);
  18. extern void clear_page(void *to);
  19. void copy_user_highpage(struct page *to, struct page *from,
  20. unsigned long vaddr, struct vm_area_struct *vma);
  21. #define __HAVE_ARCH_COPY_USER_HIGHPAGE
  22. void copy_highpage(struct page *to, struct page *from);
  23. #define __HAVE_ARCH_COPY_HIGHPAGE
  24. struct page *alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
  25. unsigned long vaddr);
  26. #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE_MOVABLE
  27. void tag_clear_highpage(struct page *to);
  28. #define __HAVE_ARCH_TAG_CLEAR_HIGHPAGE
  29. #define clear_user_page(page, vaddr, pg) clear_page(page)
  30. #define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
  31. typedef struct page *pgtable_t;
  32. int pfn_is_map_memory(unsigned long pfn);
  33. #include <asm/memory.h>
  34. #endif /* !__ASSEMBLY__ */
  35. #define VM_DATA_DEFAULT_FLAGS (VM_DATA_FLAGS_TSK_EXEC | VM_MTE_ALLOWED)
  36. #include <asm-generic/getorder.h>
  37. #endif