page.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 __ASSEMBLER__
  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 folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma,
  25. unsigned long vaddr);
  26. #define vma_alloc_zeroed_movable_folio vma_alloc_zeroed_movable_folio
  27. bool tag_clear_highpages(struct page *to, int numpages);
  28. #define __HAVE_ARCH_TAG_CLEAR_HIGHPAGES
  29. #define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
  30. typedef struct page *pgtable_t;
  31. int pfn_is_map_memory(unsigned long pfn);
  32. #include <asm/memory.h>
  33. #endif /* !__ASSEMBLER__ */
  34. #define VM_DATA_DEFAULT_FLAGS (VM_DATA_FLAGS_TSK_EXEC | VM_MTE_ALLOWED)
  35. #include <asm-generic/getorder.h>
  36. #endif