Server IP : 13.213.54.232 / Your IP : 216.73.216.72 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-172-31-17-110 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.1.33-67+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/modules/6.8.0-1029-aws/build/arch/arm/include/asm/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0-only */ /* * arch/arm/include/asm/page.h * * Copyright (C) 1995-2003 Russell King */ #ifndef _ASMARM_PAGE_H #define _ASMARM_PAGE_H /* PAGE_SHIFT determines the page size */ #define PAGE_SHIFT 12 #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) #ifndef __ASSEMBLY__ #ifndef CONFIG_MMU #include <asm/page-nommu.h> #else #include <asm/glue.h> /* * User Space Model * ================ * * This section selects the correct set of functions for dealing with * page-based copying and clearing for user space for the particular * processor(s) we're building for. * * We have the following to choose from: * v4wt - ARMv4 with writethrough cache, without minicache * v4wb - ARMv4 with writeback cache, without minicache * v4_mc - ARMv4 with minicache * xscale - Xscale * xsc3 - XScalev3 */ #undef _USER #undef MULTI_USER #ifdef CONFIG_CPU_COPY_V4WT # ifdef _USER # define MULTI_USER 1 # else # define _USER v4wt # endif #endif #ifdef CONFIG_CPU_COPY_V4WB # ifdef _USER # define MULTI_USER 1 # else # define _USER v4wb # endif #endif #ifdef CONFIG_CPU_COPY_FEROCEON # ifdef _USER # define MULTI_USER 1 # else # define _USER feroceon # endif #endif #ifdef CONFIG_CPU_COPY_FA # ifdef _USER # define MULTI_USER 1 # else # define _USER fa # endif #endif #ifdef CONFIG_CPU_SA1100 # ifdef _USER # define MULTI_USER 1 # else # define _USER v4_mc # endif #endif #ifdef CONFIG_CPU_XSCALE # ifdef _USER # define MULTI_USER 1 # else # define _USER xscale_mc # endif #endif #ifdef CONFIG_CPU_XSC3 # ifdef _USER # define MULTI_USER 1 # else # define _USER xsc3_mc # endif #endif #ifdef CONFIG_CPU_COPY_V6 # define MULTI_USER 1 #endif #if !defined(_USER) && !defined(MULTI_USER) #error Unknown user operations model #endif struct page; struct vm_area_struct; struct cpu_user_fns { void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr); void (*cpu_copy_user_highpage)(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); }; void fa_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void fa_clear_user_highpage(struct page *page, unsigned long vaddr); void feroceon_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void feroceon_clear_user_highpage(struct page *page, unsigned long vaddr); void v4_mc_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void v4_mc_clear_user_highpage(struct page *page, unsigned long vaddr); void v4wb_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void v4wb_clear_user_highpage(struct page *page, unsigned long vaddr); void v4wt_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void v4wt_clear_user_highpage(struct page *page, unsigned long vaddr); void xsc3_mc_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void xsc3_mc_clear_user_highpage(struct page *page, unsigned long vaddr); void xscale_mc_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); void xscale_mc_clear_user_highpage(struct page *page, unsigned long vaddr); #ifdef MULTI_USER extern struct cpu_user_fns cpu_user; #define __cpu_clear_user_highpage cpu_user.cpu_clear_user_highpage #define __cpu_copy_user_highpage cpu_user.cpu_copy_user_highpage #else #define __cpu_clear_user_highpage __glue(_USER,_clear_user_highpage) #define __cpu_copy_user_highpage __glue(_USER,_copy_user_highpage) extern void __cpu_clear_user_highpage(struct page *page, unsigned long vaddr); extern void __cpu_copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); #endif #define clear_user_highpage(page,vaddr) \ __cpu_clear_user_highpage(page, vaddr) #define __HAVE_ARCH_COPY_USER_HIGHPAGE #define copy_user_highpage(to,from,vaddr,vma) \ __cpu_copy_user_highpage(to, from, vaddr, vma) #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) extern void copy_page(void *to, const void *from); #ifdef CONFIG_KUSER_HELPERS #define __HAVE_ARCH_GATE_AREA 1 #endif #ifdef CONFIG_ARM_LPAE #include <asm/pgtable-3level-types.h> #else #include <asm/pgtable-2level-types.h> #ifdef CONFIG_VMAP_STACK #define ARCH_PAGE_TABLE_SYNC_MASK PGTBL_PMD_MODIFIED #endif #endif #endif /* CONFIG_MMU */ typedef struct page *pgtable_t; #ifdef CONFIG_HAVE_ARCH_PFN_VALID extern int pfn_valid(unsigned long); #define pfn_valid pfn_valid #endif #endif /* !__ASSEMBLY__ */ #include <asm/memory.h> #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC #include <asm-generic/getorder.h> #include <asm-generic/memory_model.h> #endif