File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/page.h.tar
Back
usr/src/linux-headers-5.15.0-133/arch/arc/include/uapi/asm/page.h 0000644 00000002070 15030273416 0017654 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef _UAPI__ASM_ARC_PAGE_H #define _UAPI__ASM_ARC_PAGE_H #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_ARC_PAGE_SIZE_16K) #define PAGE_SHIFT 14 #elif defined(CONFIG_ARC_PAGE_SIZE_4K) #define PAGE_SHIFT 12 #else /* * Default 8k * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o * using the correct uClibc header and in their build our autoconf.h is * not available */ #define PAGE_SHIFT 13 #endif #define PAGE_SIZE _BITUL(PAGE_SHIFT) /* Default 8K */ #define PAGE_OFFSET _AC(0x80000000, UL) /* Kernel starts at 2G onwrds */ #define PAGE_MASK (~(PAGE_SIZE-1)) #endif /* _UAPI__ASM_ARC_PAGE_H */ usr/src/linux-headers-5.15.0-133/arch/arc/include/asm/page.h 0000644 00000006361 15030274233 0016723 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) */ #ifndef __ASM_ARC_PAGE_H #define __ASM_ARC_PAGE_H #include <uapi/asm/page.h> #ifdef CONFIG_ARC_HAS_PAE40 #define MAX_POSSIBLE_PHYSMEM_BITS 40 #define PAGE_MASK_PHYS (0xff00000000ull | PAGE_MASK) #else /* CONFIG_ARC_HAS_PAE40 */ #define MAX_POSSIBLE_PHYSMEM_BITS 32 #define PAGE_MASK_PHYS PAGE_MASK #endif /* CONFIG_ARC_HAS_PAE40 */ #ifndef __ASSEMBLY__ #define clear_page(paddr) memset((paddr), 0, PAGE_SIZE) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) struct vm_area_struct; struct page; #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_user_highpage(struct page *to, struct page *from, unsigned long u_vaddr, struct vm_area_struct *vma); void clear_user_page(void *to, unsigned long u_vaddr, struct page *page); typedef struct { unsigned long pgd; } pgd_t; #define pgd_val(x) ((x).pgd) #define __pgd(x) ((pgd_t) { (x) }) #if CONFIG_PGTABLE_LEVELS > 3 typedef struct { unsigned long pud; } pud_t; #define pud_val(x) ((x).pud) #define __pud(x) ((pud_t) { (x) }) #endif #if CONFIG_PGTABLE_LEVELS > 2 typedef struct { unsigned long pmd; } pmd_t; #define pmd_val(x) ((x).pmd) #define __pmd(x) ((pmd_t) { (x) }) #endif typedef struct { #ifdef CONFIG_ARC_HAS_PAE40 unsigned long long pte; #else unsigned long pte; #endif } pte_t; #define pte_val(x) ((x).pte) #define __pte(x) ((pte_t) { (x) }) typedef struct { unsigned long pgprot; } pgprot_t; #define pgprot_val(x) ((x).pgprot) #define __pgprot(x) ((pgprot_t) { (x) }) #define pte_pgprot(x) __pgprot(pte_val(x)) typedef struct page *pgtable_t; /* * Use virt_to_pfn with caution: * If used in pte or paddr related macros, it could cause truncation * in PAE40 builds * As a rule of thumb, only use it in helpers starting with virt_ * You have been warned ! */ #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) /* * When HIGHMEM is enabled we have holes in the memory map so we need * pfn_valid() that takes into account the actual extents of the physical * memory */ #ifdef CONFIG_HIGHMEM extern unsigned long arch_pfn_offset; #define ARCH_PFN_OFFSET arch_pfn_offset extern int pfn_valid(unsigned long pfn); #define pfn_valid pfn_valid #else /* CONFIG_HIGHMEM */ #define ARCH_PFN_OFFSET virt_to_pfn(CONFIG_LINUX_RAM_BASE) #define pfn_valid(pfn) (((pfn) - ARCH_PFN_OFFSET) < max_mapnr) #endif /* CONFIG_HIGHMEM */ /* * __pa, __va, virt_to_page (ALERT: deprecated, don't use them) * * These macros have historically been misnamed * virt here means link-address/program-address as embedded in object code. * And for ARC, link-addr = physical address */ #define __pa(vaddr) ((unsigned long)(vaddr)) #define __va(paddr) ((void *)((unsigned long)(paddr))) #define virt_to_page(kaddr) pfn_to_page(virt_to_pfn(kaddr)) #define virt_addr_valid(kaddr) pfn_valid(virt_to_pfn(kaddr)) /* Default Permissions for stack/heaps pages (Non Executable) */ #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC #define WANT_PAGE_VIRTUAL 1 #include <asm-generic/memory_model.h> /* page_to_pfn, pfn_to_page */ #include <asm-generic/getorder.h> #endif /* !__ASSEMBLY__ */ #endif usr/src/linux-headers-5.15.0-142/arch/arc/include/asm/page.h 0000644 00000006361 15030304323 0016715 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) */ #ifndef __ASM_ARC_PAGE_H #define __ASM_ARC_PAGE_H #include <uapi/asm/page.h> #ifdef CONFIG_ARC_HAS_PAE40 #define MAX_POSSIBLE_PHYSMEM_BITS 40 #define PAGE_MASK_PHYS (0xff00000000ull | PAGE_MASK) #else /* CONFIG_ARC_HAS_PAE40 */ #define MAX_POSSIBLE_PHYSMEM_BITS 32 #define PAGE_MASK_PHYS PAGE_MASK #endif /* CONFIG_ARC_HAS_PAE40 */ #ifndef __ASSEMBLY__ #define clear_page(paddr) memset((paddr), 0, PAGE_SIZE) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) struct vm_area_struct; struct page; #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_user_highpage(struct page *to, struct page *from, unsigned long u_vaddr, struct vm_area_struct *vma); void clear_user_page(void *to, unsigned long u_vaddr, struct page *page); typedef struct { unsigned long pgd; } pgd_t; #define pgd_val(x) ((x).pgd) #define __pgd(x) ((pgd_t) { (x) }) #if CONFIG_PGTABLE_LEVELS > 3 typedef struct { unsigned long pud; } pud_t; #define pud_val(x) ((x).pud) #define __pud(x) ((pud_t) { (x) }) #endif #if CONFIG_PGTABLE_LEVELS > 2 typedef struct { unsigned long pmd; } pmd_t; #define pmd_val(x) ((x).pmd) #define __pmd(x) ((pmd_t) { (x) }) #endif typedef struct { #ifdef CONFIG_ARC_HAS_PAE40 unsigned long long pte; #else unsigned long pte; #endif } pte_t; #define pte_val(x) ((x).pte) #define __pte(x) ((pte_t) { (x) }) typedef struct { unsigned long pgprot; } pgprot_t; #define pgprot_val(x) ((x).pgprot) #define __pgprot(x) ((pgprot_t) { (x) }) #define pte_pgprot(x) __pgprot(pte_val(x)) typedef struct page *pgtable_t; /* * Use virt_to_pfn with caution: * If used in pte or paddr related macros, it could cause truncation * in PAE40 builds * As a rule of thumb, only use it in helpers starting with virt_ * You have been warned ! */ #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) /* * When HIGHMEM is enabled we have holes in the memory map so we need * pfn_valid() that takes into account the actual extents of the physical * memory */ #ifdef CONFIG_HIGHMEM extern unsigned long arch_pfn_offset; #define ARCH_PFN_OFFSET arch_pfn_offset extern int pfn_valid(unsigned long pfn); #define pfn_valid pfn_valid #else /* CONFIG_HIGHMEM */ #define ARCH_PFN_OFFSET virt_to_pfn(CONFIG_LINUX_RAM_BASE) #define pfn_valid(pfn) (((pfn) - ARCH_PFN_OFFSET) < max_mapnr) #endif /* CONFIG_HIGHMEM */ /* * __pa, __va, virt_to_page (ALERT: deprecated, don't use them) * * These macros have historically been misnamed * virt here means link-address/program-address as embedded in object code. * And for ARC, link-addr = physical address */ #define __pa(vaddr) ((unsigned long)(vaddr)) #define __va(paddr) ((void *)((unsigned long)(paddr))) #define virt_to_page(kaddr) pfn_to_page(virt_to_pfn(kaddr)) #define virt_addr_valid(kaddr) pfn_valid(virt_to_pfn(kaddr)) /* Default Permissions for stack/heaps pages (Non Executable) */ #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC #define WANT_PAGE_VIRTUAL 1 #include <asm-generic/memory_model.h> /* page_to_pfn, pfn_to_page */ #include <asm-generic/getorder.h> #endif /* !__ASSEMBLY__ */ #endif usr/src/linux-headers-5.15.0-142/arch/parisc/include/asm/page.h 0000644 00000012635 15030330032 0017426 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _PARISC_PAGE_H #define _PARISC_PAGE_H #include <linux/const.h> #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define PAGE_SHIFT 12 #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) # define PAGE_SHIFT 14 #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) # define PAGE_SHIFT 16 #else # error "unknown default kernel page size" #endif #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #ifndef __ASSEMBLY__ #include <asm/types.h> #include <asm/cache.h> #define clear_page(page) clear_page_asm((void *)(page)) #define copy_page(to, from) copy_page_asm((void *)(to), (void *)(from)) struct page; void clear_page_asm(void *page); void copy_page_asm(void *to, void *from); #define clear_user_page(vto, vaddr, page) clear_page_asm(vto) void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg); /* * These are used to make use of C type-checking.. */ #define STRICT_MM_TYPECHECKS #ifdef STRICT_MM_TYPECHECKS typedef struct { unsigned long pte; } pte_t; /* either 32 or 64bit */ /* NOTE: even on 64 bits, these entries are __u32 because we allocate * the pmd and pgd in ZONE_DMA (i.e. under 4GB) */ typedef struct { __u32 pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; #if CONFIG_PGTABLE_LEVELS == 3 typedef struct { __u32 pmd; } pmd_t; #define __pmd(x) ((pmd_t) { (x) } ) /* pXd_val() do not work as lvalues, so make sure we don't use them as such. */ #define pmd_val(x) ((x).pmd + 0) #endif #define pte_val(x) ((x).pte) #define pgd_val(x) ((x).pgd + 0) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) } ) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) #else /* * .. while these make it easier on the compiler */ typedef unsigned long pte_t; #if CONFIG_PGTABLE_LEVELS == 3 typedef __u32 pmd_t; #define pmd_val(x) (x) #define __pmd(x) (x) #endif typedef __u32 pgd_t; typedef unsigned long pgprot_t; #define pte_val(x) (x) #define pgd_val(x) (x) #define pgprot_val(x) (x) #define __pte(x) (x) #define __pgd(x) (x) #define __pgprot(x) (x) #endif /* STRICT_MM_TYPECHECKS */ #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) #if CONFIG_PGTABLE_LEVELS == 3 #define set_pud(pudptr, pudval) (*(pudptr) = (pudval)) #endif typedef struct page *pgtable_t; typedef struct __physmem_range { unsigned long start_pfn; unsigned long pages; /* PAGE_SIZE pages */ } physmem_range_t; extern physmem_range_t pmem_ranges[]; extern int npmem_ranges; #endif /* !__ASSEMBLY__ */ /* WARNING: The definitions below must match exactly to sizeof(pte_t) * etc */ #ifdef CONFIG_64BIT #define BITS_PER_PTE_ENTRY 3 #define BITS_PER_PMD_ENTRY 2 #define BITS_PER_PGD_ENTRY 2 #else #define BITS_PER_PTE_ENTRY 2 #define BITS_PER_PMD_ENTRY 2 #define BITS_PER_PGD_ENTRY 2 #endif #define PGD_ENTRY_SIZE (1UL << BITS_PER_PGD_ENTRY) #define PMD_ENTRY_SIZE (1UL << BITS_PER_PMD_ENTRY) #define PTE_ENTRY_SIZE (1UL << BITS_PER_PTE_ENTRY) #define LINUX_GATEWAY_SPACE 0 /* This governs the relationship between virtual and physical addresses. * If you alter it, make sure to take care of our various fixed mapping * segments in fixmap.h */ #ifdef CONFIG_64BIT #define __PAGE_OFFSET_DEFAULT (0x40000000) /* 1GB */ #else #define __PAGE_OFFSET_DEFAULT (0x10000000) /* 256MB */ #endif #if defined(BOOTLOADER) #define __PAGE_OFFSET (0) /* bootloader uses physical addresses */ #else #define __PAGE_OFFSET __PAGE_OFFSET_DEFAULT #endif /* BOOTLOADER */ #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) /* The size of the gateway page (we leave lots of room for expansion) */ #define GATEWAY_PAGE_SIZE 0x4000 /* The start of the actual kernel binary---used in vmlinux.lds.S * Leave some space after __PAGE_OFFSET for detecting kernel null * ptr derefs */ #define KERNEL_BINARY_TEXT_START (__PAGE_OFFSET + 0x100000) /* These macros don't work for 64-bit C code -- don't allow in C at all */ #ifdef __ASSEMBLY__ # define PA(x) ((x)-__PAGE_OFFSET) # define VA(x) ((x)+__PAGE_OFFSET) #endif #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) #ifndef CONFIG_SPARSEMEM #define pfn_valid(pfn) ((pfn) < max_mapnr) #endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SHIFT PMD_SHIFT /* fixed for transparent huge pages */ #define HPAGE_SIZE ((1UL) << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE - 1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) #if defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define REAL_HPAGE_SHIFT 20 /* 20 = 1MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_1M #elif !defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define REAL_HPAGE_SHIFT 22 /* 22 = 4MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_4M #else # define REAL_HPAGE_SHIFT 24 /* 24 = 16MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_16M #endif #endif /* CONFIG_HUGETLB_PAGE */ #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> #include <asm/pdc.h> #define PAGE0 ((struct zeropage *)absolute_pointer(__PAGE_OFFSET)) /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ #endif /* _PARISC_PAGE_H */ usr/src/linux-headers-5.15.0-133/arch/sh/include/asm/page.h 0000644 00000012453 15030343411 0016562 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_SH_PAGE_H #define __ASM_SH_PAGE_H /* * Copyright (C) 1999 Niibe Yutaka */ #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_PAGE_SIZE_4KB) # define PAGE_SHIFT 12 #elif defined(CONFIG_PAGE_SIZE_8KB) # define PAGE_SHIFT 13 #elif defined(CONFIG_PAGE_SIZE_16KB) # define PAGE_SHIFT 14 #elif defined(CONFIG_PAGE_SIZE_64KB) # define PAGE_SHIFT 16 #else # error "Bogus kernel page size?" #endif #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #define PTE_MASK PAGE_MASK #if defined(CONFIG_HUGETLB_PAGE_SIZE_64K) #define HPAGE_SHIFT 16 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_256K) #define HPAGE_SHIFT 18 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_1MB) #define HPAGE_SHIFT 20 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_4MB) #define HPAGE_SHIFT 22 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_64MB) #define HPAGE_SHIFT 26 #endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SIZE (1UL << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE-1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT-PAGE_SHIFT) #endif #ifndef __ASSEMBLY__ #include <asm/uncached.h> extern unsigned long shm_align_mask; extern unsigned long max_low_pfn, min_low_pfn; extern unsigned long memory_start, memory_end, memory_limit; static inline unsigned long pages_do_alias(unsigned long addr1, unsigned long addr2) { return (addr1 ^ addr2) & shm_align_mask; } #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) extern void copy_page(void *to, void *from); #define copy_user_page(to, from, vaddr, pg) __copy_user(to, from, PAGE_SIZE) struct page; struct vm_area_struct; extern void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE extern void clear_user_highpage(struct page *page, unsigned long vaddr); #define clear_user_highpage clear_user_highpage /* * These are used to make use of C type-checking.. */ #ifdef CONFIG_X2TLB typedef struct { unsigned long pte_low, pte_high; } pte_t; typedef struct { unsigned long long pgprot; } pgprot_t; typedef struct { unsigned long long pgd; } pgd_t; #define pte_val(x) \ ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) #define __pte(x) \ ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; }) #else typedef struct { unsigned long pte_low; } pte_t; typedef struct { unsigned long pgprot; } pgprot_t; typedef struct { unsigned long pgd; } pgd_t; #define pte_val(x) ((x).pte_low) #define __pte(x) ((pte_t) { (x) } ) #endif #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) typedef struct page *pgtable_t; #define pte_pgprot(x) __pgprot(pte_val(x) & PTE_FLAGS_MASK) #endif /* !__ASSEMBLY__ */ /* * __MEMORY_START and SIZE are the physical addresses and size of RAM. */ #define __MEMORY_START CONFIG_MEMORY_START #define __MEMORY_SIZE CONFIG_MEMORY_SIZE /* * PHYSICAL_OFFSET is the offset in physical memory where the base * of the kernel is loaded. */ #ifdef CONFIG_PHYSICAL_START #define PHYSICAL_OFFSET (CONFIG_PHYSICAL_START - __MEMORY_START) #else #define PHYSICAL_OFFSET 0 #endif /* * PAGE_OFFSET is the virtual address of the start of kernel address * space. */ #define PAGE_OFFSET CONFIG_PAGE_OFFSET /* * Virtual to physical RAM address translation. * * In 29 bit mode, the physical offset of RAM from address 0 is visible in * the kernel virtual address space, and thus we don't have to take * this into account when translating. However in 32 bit mode this offset * is not visible (it is part of the PMB mapping) and so needs to be * added or subtracted as required. */ #ifdef CONFIG_PMB #define ___pa(x) ((x)-PAGE_OFFSET+__MEMORY_START) #define ___va(x) ((x)+PAGE_OFFSET-__MEMORY_START) #else #define ___pa(x) ((x)-PAGE_OFFSET) #define ___va(x) ((x)+PAGE_OFFSET) #endif #ifndef __ASSEMBLY__ #define __pa(x) ___pa((unsigned long)x) #define __va(x) (void *)___va((unsigned long)x) #endif /* !__ASSEMBLY__ */ #ifdef CONFIG_UNCACHED_MAPPING #if defined(CONFIG_29BIT) #define UNCAC_ADDR(addr) P2SEGADDR(addr) #define CAC_ADDR(addr) P1SEGADDR(addr) #else #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) #endif #else #define UNCAC_ADDR(addr) ((addr)) #define CAC_ADDR(addr) ((addr)) #endif #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) /* * PFN = physical frame number (ie PFN 0 == physical address 0) * PFN_START is the PFN of the first page of RAM. By defining this we * don't have struct page entries for the portion of address space * between physical address 0 and the start of RAM. */ #define PFN_START (__MEMORY_START >> PAGE_SHIFT) #define ARCH_PFN_OFFSET (PFN_START) #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) #ifdef CONFIG_FLATMEM #define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn) #endif #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> /* * Some drivers need to perform DMA into kmalloc'ed buffers * and so we have to increase the kmalloc minalign for this. */ #define ARCH_DMA_MINALIGN L1_CACHE_BYTES #endif /* __ASM_SH_PAGE_H */ usr/src/linux-headers-5.15.0-142/arch/arc/include/uapi/asm/page.h 0000644 00000002070 15030346023 0017647 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef _UAPI__ASM_ARC_PAGE_H #define _UAPI__ASM_ARC_PAGE_H #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_ARC_PAGE_SIZE_16K) #define PAGE_SHIFT 14 #elif defined(CONFIG_ARC_PAGE_SIZE_4K) #define PAGE_SHIFT 12 #else /* * Default 8k * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o * using the correct uClibc header and in their build our autoconf.h is * not available */ #define PAGE_SHIFT 13 #endif #define PAGE_SIZE _BITUL(PAGE_SHIFT) /* Default 8K */ #define PAGE_OFFSET _AC(0x80000000, UL) /* Kernel starts at 2G onwrds */ #define PAGE_MASK (~(PAGE_SIZE-1)) #endif /* _UAPI__ASM_ARC_PAGE_H */ usr/src/linux-headers-5.15.0-133/arch/openrisc/include/asm/page.h 0000644 00000004360 15030352400 0017766 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-or-later */ /* * OpenRISC Linux * * Linux architectural port borrowing liberally from similar works of * others. All original copyrights apply as per the original source * declaration. * * OpenRISC implementation: * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com> * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> * et al. */ #ifndef __ASM_OPENRISC_PAGE_H #define __ASM_OPENRISC_PAGE_H /* PAGE_SHIFT determines the page size */ #define PAGE_SHIFT 13 #ifdef __ASSEMBLY__ #define PAGE_SIZE (1 << PAGE_SHIFT) #else #define PAGE_SIZE (1UL << PAGE_SHIFT) #endif #define PAGE_MASK (~(PAGE_SIZE-1)) #define PAGE_OFFSET 0xc0000000 #define KERNELBASE PAGE_OFFSET /* This is not necessarily the right place for this, but it's needed by * drivers/of/fdt.c */ #include <asm/setup.h> #ifndef __ASSEMBLY__ #define clear_page(page) memset((page), 0, PAGE_SIZE) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) #define clear_user_page(page, vaddr, pg) clear_page(page) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) /* * These are used to make use of C type-checking.. */ typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned long pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; typedef struct page *pgtable_t; #define pte_val(x) ((x).pte) #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) }) #define __pgd(x) ((pgd_t) { (x) }) #define __pgprot(x) ((pgprot_t) { (x) }) #endif /* !__ASSEMBLY__ */ #ifndef __ASSEMBLY__ #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET)) #define __pa(x) ((unsigned long) (x) - PAGE_OFFSET) #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) #define virt_to_page(addr) \ (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)) #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) #define pfn_valid(pfn) ((pfn) < max_mapnr) #define virt_addr_valid(kaddr) (pfn_valid(virt_to_pfn(kaddr))) #endif /* __ASSEMBLY__ */ #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> #endif /* __ASM_OPENRISC_PAGE_H */ usr/src/linux-headers-5.15.0-142/arch/sh/include/asm/page.h 0000644 00000012453 15030353016 0016564 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_SH_PAGE_H #define __ASM_SH_PAGE_H /* * Copyright (C) 1999 Niibe Yutaka */ #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_PAGE_SIZE_4KB) # define PAGE_SHIFT 12 #elif defined(CONFIG_PAGE_SIZE_8KB) # define PAGE_SHIFT 13 #elif defined(CONFIG_PAGE_SIZE_16KB) # define PAGE_SHIFT 14 #elif defined(CONFIG_PAGE_SIZE_64KB) # define PAGE_SHIFT 16 #else # error "Bogus kernel page size?" #endif #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #define PTE_MASK PAGE_MASK #if defined(CONFIG_HUGETLB_PAGE_SIZE_64K) #define HPAGE_SHIFT 16 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_256K) #define HPAGE_SHIFT 18 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_1MB) #define HPAGE_SHIFT 20 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_4MB) #define HPAGE_SHIFT 22 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_64MB) #define HPAGE_SHIFT 26 #endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SIZE (1UL << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE-1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT-PAGE_SHIFT) #endif #ifndef __ASSEMBLY__ #include <asm/uncached.h> extern unsigned long shm_align_mask; extern unsigned long max_low_pfn, min_low_pfn; extern unsigned long memory_start, memory_end, memory_limit; static inline unsigned long pages_do_alias(unsigned long addr1, unsigned long addr2) { return (addr1 ^ addr2) & shm_align_mask; } #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) extern void copy_page(void *to, void *from); #define copy_user_page(to, from, vaddr, pg) __copy_user(to, from, PAGE_SIZE) struct page; struct vm_area_struct; extern void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE extern void clear_user_highpage(struct page *page, unsigned long vaddr); #define clear_user_highpage clear_user_highpage /* * These are used to make use of C type-checking.. */ #ifdef CONFIG_X2TLB typedef struct { unsigned long pte_low, pte_high; } pte_t; typedef struct { unsigned long long pgprot; } pgprot_t; typedef struct { unsigned long long pgd; } pgd_t; #define pte_val(x) \ ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) #define __pte(x) \ ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; }) #else typedef struct { unsigned long pte_low; } pte_t; typedef struct { unsigned long pgprot; } pgprot_t; typedef struct { unsigned long pgd; } pgd_t; #define pte_val(x) ((x).pte_low) #define __pte(x) ((pte_t) { (x) } ) #endif #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) typedef struct page *pgtable_t; #define pte_pgprot(x) __pgprot(pte_val(x) & PTE_FLAGS_MASK) #endif /* !__ASSEMBLY__ */ /* * __MEMORY_START and SIZE are the physical addresses and size of RAM. */ #define __MEMORY_START CONFIG_MEMORY_START #define __MEMORY_SIZE CONFIG_MEMORY_SIZE /* * PHYSICAL_OFFSET is the offset in physical memory where the base * of the kernel is loaded. */ #ifdef CONFIG_PHYSICAL_START #define PHYSICAL_OFFSET (CONFIG_PHYSICAL_START - __MEMORY_START) #else #define PHYSICAL_OFFSET 0 #endif /* * PAGE_OFFSET is the virtual address of the start of kernel address * space. */ #define PAGE_OFFSET CONFIG_PAGE_OFFSET /* * Virtual to physical RAM address translation. * * In 29 bit mode, the physical offset of RAM from address 0 is visible in * the kernel virtual address space, and thus we don't have to take * this into account when translating. However in 32 bit mode this offset * is not visible (it is part of the PMB mapping) and so needs to be * added or subtracted as required. */ #ifdef CONFIG_PMB #define ___pa(x) ((x)-PAGE_OFFSET+__MEMORY_START) #define ___va(x) ((x)+PAGE_OFFSET-__MEMORY_START) #else #define ___pa(x) ((x)-PAGE_OFFSET) #define ___va(x) ((x)+PAGE_OFFSET) #endif #ifndef __ASSEMBLY__ #define __pa(x) ___pa((unsigned long)x) #define __va(x) (void *)___va((unsigned long)x) #endif /* !__ASSEMBLY__ */ #ifdef CONFIG_UNCACHED_MAPPING #if defined(CONFIG_29BIT) #define UNCAC_ADDR(addr) P2SEGADDR(addr) #define CAC_ADDR(addr) P1SEGADDR(addr) #else #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) #endif #else #define UNCAC_ADDR(addr) ((addr)) #define CAC_ADDR(addr) ((addr)) #endif #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) /* * PFN = physical frame number (ie PFN 0 == physical address 0) * PFN_START is the PFN of the first page of RAM. By defining this we * don't have struct page entries for the portion of address space * between physical address 0 and the start of RAM. */ #define PFN_START (__MEMORY_START >> PAGE_SHIFT) #define ARCH_PFN_OFFSET (PFN_START) #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) #ifdef CONFIG_FLATMEM #define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn) #endif #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> /* * Some drivers need to perform DMA into kmalloc'ed buffers * and so we have to increase the kmalloc minalign for this. */ #define ARCH_DMA_MINALIGN L1_CACHE_BYTES #endif /* __ASM_SH_PAGE_H */ usr/src/linux-headers-5.15.0-141/arch/arc/include/uapi/asm/page.h 0000644 00000002070 15030375451 0017655 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef _UAPI__ASM_ARC_PAGE_H #define _UAPI__ASM_ARC_PAGE_H #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_ARC_PAGE_SIZE_16K) #define PAGE_SHIFT 14 #elif defined(CONFIG_ARC_PAGE_SIZE_4K) #define PAGE_SHIFT 12 #else /* * Default 8k * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o * using the correct uClibc header and in their build our autoconf.h is * not available */ #define PAGE_SHIFT 13 #endif #define PAGE_SIZE _BITUL(PAGE_SHIFT) /* Default 8K */ #define PAGE_OFFSET _AC(0x80000000, UL) /* Kernel starts at 2G onwrds */ #define PAGE_MASK (~(PAGE_SIZE-1)) #endif /* _UAPI__ASM_ARC_PAGE_H */ usr/src/linux-headers-5.15.0-133/arch/arm/include/asm/page.h 0000644 00000006570 15030422502 0016731 0 ustar 00 /* 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); }; #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> #endif #endif /* CONFIG_MMU */ typedef struct page *pgtable_t; #ifdef CONFIG_HAVE_ARCH_PFN_VALID extern int pfn_valid(unsigned long); #endif #include <asm/memory.h> #endif /* !__ASSEMBLY__ */ #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC #include <asm-generic/getorder.h> #endif usr/src/linux-headers-5.15.0-133/arch/nios2/include/asm/page.h 0000644 00000005507 15030423145 0017207 0 ustar 00 /* * Copyright (C) 2011 Tobias Klauser <tklauser@distanz.ch> * Copyright (C) 2004 Microtronix Datacom Ltd. * * MMU support based on asm/page.h from mips which is: * * Copyright (C) 1994 - 1999, 2000, 03 Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. */ #ifndef _ASM_NIOS2_PAGE_H #define _ASM_NIOS2_PAGE_H #include <linux/pfn.h> #include <linux/const.h> /* * PAGE_SHIFT determines the page size */ #define PAGE_SHIFT 12 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) /* * PAGE_OFFSET -- the first address of the first page of memory. */ #define PAGE_OFFSET \ (CONFIG_NIOS2_MEM_BASE + CONFIG_NIOS2_KERNEL_REGION_BASE) #ifndef __ASSEMBLY__ /* * This gives the physical RAM offset. */ #define PHYS_OFFSET CONFIG_NIOS2_MEM_BASE /* * It's normally defined only for FLATMEM config but it's * used in our early mem init code for all memory models. * So always define it. */ #define ARCH_PFN_OFFSET PFN_UP(PHYS_OFFSET) #define clear_page(page) memset((page), 0, PAGE_SIZE) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) struct page; extern void clear_user_page(void *addr, unsigned long vaddr, struct page *page); extern void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *to); /* * These are used to make use of C type-checking. */ typedef struct page *pgtable_t; typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned long pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; #define pte_val(x) ((x).pte) #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) }) #define __pgd(x) ((pgd_t) { (x) }) #define __pgprot(x) ((pgprot_t) { (x) }) extern unsigned long memory_start; extern unsigned long memory_end; extern unsigned long memory_size; extern struct page *mem_map; # define __pa(x) \ ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET) # define __va(x) \ ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) #define page_to_virt(page) \ ((void *)(((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET) # define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) static inline bool pfn_valid(unsigned long pfn) { /* avoid <linux/mm.h> include hell */ extern unsigned long max_mapnr; unsigned long pfn_offset = ARCH_PFN_OFFSET; return pfn >= pfn_offset && pfn < max_mapnr; } # define virt_to_page(vaddr) pfn_to_page(PFN_DOWN(virt_to_phys(vaddr))) # define virt_addr_valid(vaddr) pfn_valid(PFN_DOWN(virt_to_phys(vaddr))) # define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> #endif /* !__ASSEMBLY__ */ #endif /* _ASM_NIOS2_PAGE_H */ usr/src/linux-headers-5.15.0-141/arch/sh/include/asm/page.h 0000644 00000012453 15030477207 0016574 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_SH_PAGE_H #define __ASM_SH_PAGE_H /* * Copyright (C) 1999 Niibe Yutaka */ #include <linux/const.h> /* PAGE_SHIFT determines the page size */ #if defined(CONFIG_PAGE_SIZE_4KB) # define PAGE_SHIFT 12 #elif defined(CONFIG_PAGE_SIZE_8KB) # define PAGE_SHIFT 13 #elif defined(CONFIG_PAGE_SIZE_16KB) # define PAGE_SHIFT 14 #elif defined(CONFIG_PAGE_SIZE_64KB) # define PAGE_SHIFT 16 #else # error "Bogus kernel page size?" #endif #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #define PTE_MASK PAGE_MASK #if defined(CONFIG_HUGETLB_PAGE_SIZE_64K) #define HPAGE_SHIFT 16 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_256K) #define HPAGE_SHIFT 18 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_1MB) #define HPAGE_SHIFT 20 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_4MB) #define HPAGE_SHIFT 22 #elif defined(CONFIG_HUGETLB_PAGE_SIZE_64MB) #define HPAGE_SHIFT 26 #endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SIZE (1UL << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE-1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT-PAGE_SHIFT) #endif #ifndef __ASSEMBLY__ #include <asm/uncached.h> extern unsigned long shm_align_mask; extern unsigned long max_low_pfn, min_low_pfn; extern unsigned long memory_start, memory_end, memory_limit; static inline unsigned long pages_do_alias(unsigned long addr1, unsigned long addr2) { return (addr1 ^ addr2) & shm_align_mask; } #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) extern void copy_page(void *to, void *from); #define copy_user_page(to, from, vaddr, pg) __copy_user(to, from, PAGE_SIZE) struct page; struct vm_area_struct; extern void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE extern void clear_user_highpage(struct page *page, unsigned long vaddr); #define clear_user_highpage clear_user_highpage /* * These are used to make use of C type-checking.. */ #ifdef CONFIG_X2TLB typedef struct { unsigned long pte_low, pte_high; } pte_t; typedef struct { unsigned long long pgprot; } pgprot_t; typedef struct { unsigned long long pgd; } pgd_t; #define pte_val(x) \ ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) #define __pte(x) \ ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; }) #else typedef struct { unsigned long pte_low; } pte_t; typedef struct { unsigned long pgprot; } pgprot_t; typedef struct { unsigned long pgd; } pgd_t; #define pte_val(x) ((x).pte_low) #define __pte(x) ((pte_t) { (x) } ) #endif #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) typedef struct page *pgtable_t; #define pte_pgprot(x) __pgprot(pte_val(x) & PTE_FLAGS_MASK) #endif /* !__ASSEMBLY__ */ /* * __MEMORY_START and SIZE are the physical addresses and size of RAM. */ #define __MEMORY_START CONFIG_MEMORY_START #define __MEMORY_SIZE CONFIG_MEMORY_SIZE /* * PHYSICAL_OFFSET is the offset in physical memory where the base * of the kernel is loaded. */ #ifdef CONFIG_PHYSICAL_START #define PHYSICAL_OFFSET (CONFIG_PHYSICAL_START - __MEMORY_START) #else #define PHYSICAL_OFFSET 0 #endif /* * PAGE_OFFSET is the virtual address of the start of kernel address * space. */ #define PAGE_OFFSET CONFIG_PAGE_OFFSET /* * Virtual to physical RAM address translation. * * In 29 bit mode, the physical offset of RAM from address 0 is visible in * the kernel virtual address space, and thus we don't have to take * this into account when translating. However in 32 bit mode this offset * is not visible (it is part of the PMB mapping) and so needs to be * added or subtracted as required. */ #ifdef CONFIG_PMB #define ___pa(x) ((x)-PAGE_OFFSET+__MEMORY_START) #define ___va(x) ((x)+PAGE_OFFSET-__MEMORY_START) #else #define ___pa(x) ((x)-PAGE_OFFSET) #define ___va(x) ((x)+PAGE_OFFSET) #endif #ifndef __ASSEMBLY__ #define __pa(x) ___pa((unsigned long)x) #define __va(x) (void *)___va((unsigned long)x) #endif /* !__ASSEMBLY__ */ #ifdef CONFIG_UNCACHED_MAPPING #if defined(CONFIG_29BIT) #define UNCAC_ADDR(addr) P2SEGADDR(addr) #define CAC_ADDR(addr) P1SEGADDR(addr) #else #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) #endif #else #define UNCAC_ADDR(addr) ((addr)) #define CAC_ADDR(addr) ((addr)) #endif #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) /* * PFN = physical frame number (ie PFN 0 == physical address 0) * PFN_START is the PFN of the first page of RAM. By defining this we * don't have struct page entries for the portion of address space * between physical address 0 and the start of RAM. */ #define PFN_START (__MEMORY_START >> PAGE_SHIFT) #define ARCH_PFN_OFFSET (PFN_START) #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) #ifdef CONFIG_FLATMEM #define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn) #endif #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> /* * Some drivers need to perform DMA into kmalloc'ed buffers * and so we have to increase the kmalloc minalign for this. */ #define ARCH_DMA_MINALIGN L1_CACHE_BYTES #endif /* __ASM_SH_PAGE_H */ usr/src/linux-headers-5.15.0-141/arch/parisc/include/asm/page.h 0000644 00000012635 15030520545 0017437 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _PARISC_PAGE_H #define _PARISC_PAGE_H #include <linux/const.h> #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define PAGE_SHIFT 12 #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) # define PAGE_SHIFT 14 #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) # define PAGE_SHIFT 16 #else # error "unknown default kernel page size" #endif #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #ifndef __ASSEMBLY__ #include <asm/types.h> #include <asm/cache.h> #define clear_page(page) clear_page_asm((void *)(page)) #define copy_page(to, from) copy_page_asm((void *)(to), (void *)(from)) struct page; void clear_page_asm(void *page); void copy_page_asm(void *to, void *from); #define clear_user_page(vto, vaddr, page) clear_page_asm(vto) void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg); /* * These are used to make use of C type-checking.. */ #define STRICT_MM_TYPECHECKS #ifdef STRICT_MM_TYPECHECKS typedef struct { unsigned long pte; } pte_t; /* either 32 or 64bit */ /* NOTE: even on 64 bits, these entries are __u32 because we allocate * the pmd and pgd in ZONE_DMA (i.e. under 4GB) */ typedef struct { __u32 pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; #if CONFIG_PGTABLE_LEVELS == 3 typedef struct { __u32 pmd; } pmd_t; #define __pmd(x) ((pmd_t) { (x) } ) /* pXd_val() do not work as lvalues, so make sure we don't use them as such. */ #define pmd_val(x) ((x).pmd + 0) #endif #define pte_val(x) ((x).pte) #define pgd_val(x) ((x).pgd + 0) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) } ) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) #else /* * .. while these make it easier on the compiler */ typedef unsigned long pte_t; #if CONFIG_PGTABLE_LEVELS == 3 typedef __u32 pmd_t; #define pmd_val(x) (x) #define __pmd(x) (x) #endif typedef __u32 pgd_t; typedef unsigned long pgprot_t; #define pte_val(x) (x) #define pgd_val(x) (x) #define pgprot_val(x) (x) #define __pte(x) (x) #define __pgd(x) (x) #define __pgprot(x) (x) #endif /* STRICT_MM_TYPECHECKS */ #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) #if CONFIG_PGTABLE_LEVELS == 3 #define set_pud(pudptr, pudval) (*(pudptr) = (pudval)) #endif typedef struct page *pgtable_t; typedef struct __physmem_range { unsigned long start_pfn; unsigned long pages; /* PAGE_SIZE pages */ } physmem_range_t; extern physmem_range_t pmem_ranges[]; extern int npmem_ranges; #endif /* !__ASSEMBLY__ */ /* WARNING: The definitions below must match exactly to sizeof(pte_t) * etc */ #ifdef CONFIG_64BIT #define BITS_PER_PTE_ENTRY 3 #define BITS_PER_PMD_ENTRY 2 #define BITS_PER_PGD_ENTRY 2 #else #define BITS_PER_PTE_ENTRY 2 #define BITS_PER_PMD_ENTRY 2 #define BITS_PER_PGD_ENTRY 2 #endif #define PGD_ENTRY_SIZE (1UL << BITS_PER_PGD_ENTRY) #define PMD_ENTRY_SIZE (1UL << BITS_PER_PMD_ENTRY) #define PTE_ENTRY_SIZE (1UL << BITS_PER_PTE_ENTRY) #define LINUX_GATEWAY_SPACE 0 /* This governs the relationship between virtual and physical addresses. * If you alter it, make sure to take care of our various fixed mapping * segments in fixmap.h */ #ifdef CONFIG_64BIT #define __PAGE_OFFSET_DEFAULT (0x40000000) /* 1GB */ #else #define __PAGE_OFFSET_DEFAULT (0x10000000) /* 256MB */ #endif #if defined(BOOTLOADER) #define __PAGE_OFFSET (0) /* bootloader uses physical addresses */ #else #define __PAGE_OFFSET __PAGE_OFFSET_DEFAULT #endif /* BOOTLOADER */ #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) /* The size of the gateway page (we leave lots of room for expansion) */ #define GATEWAY_PAGE_SIZE 0x4000 /* The start of the actual kernel binary---used in vmlinux.lds.S * Leave some space after __PAGE_OFFSET for detecting kernel null * ptr derefs */ #define KERNEL_BINARY_TEXT_START (__PAGE_OFFSET + 0x100000) /* These macros don't work for 64-bit C code -- don't allow in C at all */ #ifdef __ASSEMBLY__ # define PA(x) ((x)-__PAGE_OFFSET) # define VA(x) ((x)+__PAGE_OFFSET) #endif #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) #ifndef CONFIG_SPARSEMEM #define pfn_valid(pfn) ((pfn) < max_mapnr) #endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SHIFT PMD_SHIFT /* fixed for transparent huge pages */ #define HPAGE_SIZE ((1UL) << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE - 1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) #if defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define REAL_HPAGE_SHIFT 20 /* 20 = 1MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_1M #elif !defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB) # define REAL_HPAGE_SHIFT 22 /* 22 = 4MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_4M #else # define REAL_HPAGE_SHIFT 24 /* 24 = 16MB */ # define _HUGE_PAGE_SIZE_ENCODING_DEFAULT _PAGE_SIZE_ENCODING_16M #endif #endif /* CONFIG_HUGETLB_PAGE */ #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> #include <asm/pdc.h> #define PAGE0 ((struct zeropage *)absolute_pointer(__PAGE_OFFSET)) /* DEFINITION OF THE ZERO-PAGE (PAG0) */ /* based on work by Jason Eckhardt (jason@equator.com) */ #endif /* _PARISC_PAGE_H */ usr/src/linux-headers-5.15.0-133/arch/arm64/include/asm/page.h 0000644 00000002525 15030521001 0017071 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Based on arch/arm/include/asm/page.h * * Copyright (C) 1995-2003 Russell King * Copyright (C) 2012 ARM Ltd. */ #ifndef __ASM_PAGE_H #define __ASM_PAGE_H #include <asm/page-def.h> #ifndef __ASSEMBLY__ #include <linux/personality.h> /* for READ_IMPLIES_EXEC */ #include <linux/types.h> /* for gfp_t */ #include <asm/pgtable-types.h> struct page; struct vm_area_struct; extern void copy_page(void *to, const void *from); extern void clear_page(void *to); void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, struct vm_area_struct *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_highpage(struct page *to, struct page *from); #define __HAVE_ARCH_COPY_HIGHPAGE struct page *alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma, unsigned long vaddr); #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE_MOVABLE void tag_clear_highpage(struct page *to); #define __HAVE_ARCH_TAG_CLEAR_HIGHPAGE #define clear_user_page(page, vaddr, pg) clear_page(page) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) typedef struct page *pgtable_t; int pfn_is_map_memory(unsigned long pfn); #include <asm/memory.h> #endif /* !__ASSEMBLY__ */ #define VM_DATA_DEFAULT_FLAGS (VM_DATA_FLAGS_TSK_EXEC | VM_MTE_ALLOWED) #include <asm-generic/getorder.h> #endif usr/src/linux-headers-5.15.0-142/arch/arm/include/asm/page.h 0000644 00000006570 15030540351 0016734 0 ustar 00 /* 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); }; #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> #endif #endif /* CONFIG_MMU */ typedef struct page *pgtable_t; #ifdef CONFIG_HAVE_ARCH_PFN_VALID extern int pfn_valid(unsigned long); #endif #include <asm/memory.h> #endif /* !__ASSEMBLY__ */ #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC #include <asm-generic/getorder.h> #endif usr/src/linux-headers-5.15.0-142/arch/sparc/include/asm/page.h 0000644 00000000422 15030563324 0017260 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0 */ #ifndef ___ASM_SPARC_PAGE_H #define ___ASM_SPARC_PAGE_H #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) #if defined(__sparc__) && defined(__arch64__) #include <asm/page_64.h> #else #include <asm/page_32.h> #endif #endif usr/src/linux-headers-5.15.0-133/arch/riscv/include/asm/page.h 0000644 00000012220 15030611123 0017264 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2009 Chen Liqin <liqin.chen@sunplusct.com> * Copyright (C) 2012 Regents of the University of California * Copyright (C) 2017 SiFive * Copyright (C) 2017 XiaojingZhu <zhuxiaoj@ict.ac.cn> */ #ifndef _ASM_RISCV_PAGE_H #define _ASM_RISCV_PAGE_H #include <linux/pfn.h> #include <linux/const.h> #define PAGE_SHIFT (12) #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) #ifdef CONFIG_64BIT #define HUGE_MAX_HSTATE 2 #else #define HUGE_MAX_HSTATE 1 #endif #define HPAGE_SHIFT PMD_SHIFT #define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE - 1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) /* * PAGE_OFFSET -- the first address of the first page of memory. * When not using MMU this corresponds to the first free page in * physical memory (aligned on a page boundary). */ #define PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) #define KERN_VIRT_SIZE (-PAGE_OFFSET) #ifndef __ASSEMBLY__ #define clear_page(pgaddr) memset((pgaddr), 0, PAGE_SIZE) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) #define clear_user_page(pgaddr, vaddr, page) memset((pgaddr), 0, PAGE_SIZE) #define copy_user_page(vto, vfrom, vaddr, topg) \ memcpy((vto), (vfrom), PAGE_SIZE) /* * Use struct definitions to apply C type checking */ /* Page Global Directory entry */ typedef struct { unsigned long pgd; } pgd_t; /* Page Table entry */ typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned long pgprot; } pgprot_t; typedef struct page *pgtable_t; #define pte_val(x) ((x).pte) #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) }) #define __pgd(x) ((pgd_t) { (x) }) #define __pgprot(x) ((pgprot_t) { (x) }) #ifdef CONFIG_64BIT #define PTE_FMT "%016lx" #else #define PTE_FMT "%08lx" #endif #ifdef CONFIG_MMU extern unsigned long riscv_pfn_base; #define ARCH_PFN_OFFSET (riscv_pfn_base) #else #define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT) #endif /* CONFIG_MMU */ struct kernel_mapping { unsigned long virt_addr; uintptr_t phys_addr; uintptr_t size; /* Offset between linear mapping virtual address and kernel load address */ unsigned long va_pa_offset; /* Offset between kernel mapping virtual address and kernel load address */ unsigned long va_kernel_pa_offset; unsigned long va_kernel_xip_pa_offset; #ifdef CONFIG_XIP_KERNEL uintptr_t xiprom; uintptr_t xiprom_sz; #endif }; extern struct kernel_mapping kernel_map; extern phys_addr_t phys_ram_base; #define is_kernel_mapping(x) \ ((x) >= kernel_map.virt_addr && (x) < (kernel_map.virt_addr + kernel_map.size)) #define is_linear_mapping(x) \ ((x) >= PAGE_OFFSET && (!IS_ENABLED(CONFIG_64BIT) || (x) < kernel_map.virt_addr)) #define linear_mapping_pa_to_va(x) ((void *)((unsigned long)(x) + kernel_map.va_pa_offset)) #define kernel_mapping_pa_to_va(y) ({ \ unsigned long _y = y; \ (IS_ENABLED(CONFIG_XIP_KERNEL) && _y < phys_ram_base) ? \ (void *)((unsigned long)(_y) + kernel_map.va_kernel_xip_pa_offset) : \ (void *)((unsigned long)(_y) + kernel_map.va_kernel_pa_offset + XIP_OFFSET); \ }) #define __pa_to_va_nodebug(x) linear_mapping_pa_to_va(x) #define linear_mapping_va_to_pa(x) ((unsigned long)(x) - kernel_map.va_pa_offset) #define kernel_mapping_va_to_pa(y) ({ \ unsigned long _y = y; \ (IS_ENABLED(CONFIG_XIP_KERNEL) && _y < kernel_map.virt_addr + XIP_OFFSET) ? \ ((unsigned long)(_y) - kernel_map.va_kernel_xip_pa_offset) : \ ((unsigned long)(_y) - kernel_map.va_kernel_pa_offset - XIP_OFFSET); \ }) #define __va_to_pa_nodebug(x) ({ \ unsigned long _x = x; \ is_linear_mapping(_x) ? \ linear_mapping_va_to_pa(_x) : kernel_mapping_va_to_pa(_x); \ }) #ifdef CONFIG_DEBUG_VIRTUAL extern phys_addr_t __virt_to_phys(unsigned long x); extern phys_addr_t __phys_addr_symbol(unsigned long x); #else #define __virt_to_phys(x) __va_to_pa_nodebug(x) #define __phys_addr_symbol(x) __va_to_pa_nodebug(x) #endif /* CONFIG_DEBUG_VIRTUAL */ #define __pa_symbol(x) __phys_addr_symbol(RELOC_HIDE((unsigned long)(x), 0)) #define __pa(x) __virt_to_phys((unsigned long)(x)) #define __va(x) ((void *)__pa_to_va_nodebug((phys_addr_t)(x))) #define phys_to_pfn(phys) (PFN_DOWN(phys)) #define pfn_to_phys(pfn) (PFN_PHYS(pfn)) #define virt_to_pfn(vaddr) (phys_to_pfn(__pa(vaddr))) #define pfn_to_virt(pfn) (__va(pfn_to_phys(pfn))) #define virt_to_page(vaddr) (pfn_to_page(virt_to_pfn(vaddr))) #define page_to_virt(page) (pfn_to_virt(page_to_pfn(page))) #define page_to_phys(page) (pfn_to_phys(page_to_pfn(page))) #define page_to_bus(page) (page_to_phys(page)) #define phys_to_page(paddr) (pfn_to_page(phys_to_pfn(paddr))) #ifdef CONFIG_FLATMEM #define pfn_valid(pfn) \ (((pfn) >= ARCH_PFN_OFFSET) && (((pfn) - ARCH_PFN_OFFSET) < max_mapnr)) #endif #endif /* __ASSEMBLY__ */ #define virt_addr_valid(vaddr) ({ \ unsigned long _addr = (unsigned long)vaddr; \ (unsigned long)(_addr) >= PAGE_OFFSET && pfn_valid(virt_to_pfn(_addr)); \ }) #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC #include <asm-generic/memory_model.h> #include <asm-generic/getorder.h> #endif /* _ASM_RISCV_PAGE_H */
| ver. 1.4 |
Github
|
.
| PHP 8.2.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings