__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0
*
* This file contains the functions and defines necessary to modify and
* use the SuperH page table tree.
*
* Copyright (C) 1999 Niibe Yutaka
* Copyright (C) 2002 - 2007 Paul Mundt
*/
#ifndef __ASM_SH_PGTABLE_H
#define __ASM_SH_PGTABLE_H
#ifdef CONFIG_X2TLB
#include <asm/pgtable-3level.h>
#else
#include <asm/pgtable-2level.h>
#endif
#include <asm/page.h>
#include <asm/mmu.h>
#ifndef __ASSEMBLY__
#include <asm/addrspace.h>
#include <asm/fixmap.h>
/*
* ZERO_PAGE is a global shared page that is always zero: used
* for zero-mapped memory areas etc..
*/
extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
#endif /* !__ASSEMBLY__ */
/*
* Effective and physical address definitions, to aid with sign
* extension.
*/
#define NEFF 32
#define NEFF_SIGN (1LL << (NEFF - 1))
#define NEFF_MASK (-1LL << NEFF)
static inline unsigned long long neff_sign_extend(unsigned long val)
{
unsigned long long extended = val;
return (extended & NEFF_SIGN) ? (extended | NEFF_MASK) : extended;
}
#ifdef CONFIG_29BIT
#define NPHYS 29
#else
#define NPHYS 32
#endif
#define NPHYS_SIGN (1LL << (NPHYS - 1))
#define NPHYS_MASK (-1LL << NPHYS)
#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
#define PGDIR_MASK (~(PGDIR_SIZE-1))
/* Entries per level */
#define PTRS_PER_PTE (PAGE_SIZE / (1 << PTE_MAGNITUDE))
#define PHYS_ADDR_MASK29 0x1fffffff
#define PHYS_ADDR_MASK32 0xffffffff
static inline unsigned long phys_addr_mask(void)
{
/* Is the MMU in 29bit mode? */
if (__in_29bit_mode())
return PHYS_ADDR_MASK29;
return PHYS_ADDR_MASK32;
}
#define PTE_PHYS_MASK (phys_addr_mask() & PAGE_MASK)
#define PTE_FLAGS_MASK (~(PTE_PHYS_MASK) << PAGE_SHIFT)
#define VMALLOC_START (P3SEG)
#define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
#include <asm/pgtable_32.h>
/*
* SH-X and lower (legacy) SuperH parts (SH-3, SH-4, some SH-4A) can't do page
* protection for execute, and considers it the same as a read. Also, write
* permission implies read permission. This is the closest we can get..
*
* SH-X2 (SH7785) and later parts take this to the opposite end of the extreme,
* not only supporting separate execute, read, and write bits, but having
* completely separate permission bits for user and kernel space.
*/
/*xwr*/
typedef pte_t *pte_addr_t;
#define pte_pfn(x) ((unsigned long)(((x).pte_low >> PAGE_SHIFT)))
struct vm_area_struct;
struct mm_struct;
extern void __update_cache(struct vm_area_struct *vma,
unsigned long address, pte_t pte);
extern void __update_tlb(struct vm_area_struct *vma,
unsigned long address, pte_t pte);
static inline void update_mmu_cache_range(struct vm_fault *vmf,
struct vm_area_struct *vma, unsigned long address,
pte_t *ptep, unsigned int nr)
{
pte_t pte = *ptep;
__update_cache(vma, address, pte);
__update_tlb(vma, address, pte);
}
#define update_mmu_cache(vma, addr, ptep) \
update_mmu_cache_range(NULL, vma, addr, ptep, 1)
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
extern void paging_init(void);
extern void page_table_range_init(unsigned long start, unsigned long end,
pgd_t *pgd);
static inline bool __pte_access_permitted(pte_t pte, u64 prot)
{
return (pte_val(pte) & (prot | _PAGE_SPECIAL)) == prot;
}
#ifdef CONFIG_X2TLB
static inline bool pte_access_permitted(pte_t pte, bool write)
{
u64 prot = _PAGE_PRESENT;
prot |= _PAGE_EXT(_PAGE_EXT_KERN_READ | _PAGE_EXT_USER_READ);
if (write)
prot |= _PAGE_EXT(_PAGE_EXT_KERN_WRITE | _PAGE_EXT_USER_WRITE);
return __pte_access_permitted(pte, prot);
}
#else
static inline bool pte_access_permitted(pte_t pte, bool write)
{
u64 prot = _PAGE_PRESENT | _PAGE_USER;
if (write)
prot |= _PAGE_RW;
return __pte_access_permitted(pte, prot);
}
#endif
#define pte_access_permitted pte_access_permitted
/* arch/sh/mm/mmap.c */
#define HAVE_ARCH_UNMAPPED_AREA
#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
#endif /* __ASM_SH_PGTABLE_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Kbuild | File | 170 B | 0644 |
|
| adc.h | File | 211 B | 0644 |
|
| addrspace.h | File | 1.85 KB | 0644 |
|
| alignment.h | File | 654 B | 0644 |
|
| asm-offsets.h | File | 74 B | 0644 |
|
| atomic-grb.h | File | 2.97 KB | 0644 |
|
| atomic-irq.h | File | 2.01 KB | 0644 |
|
| atomic-llsc.h | File | 2.49 KB | 0644 |
|
| atomic.h | File | 693 B | 0644 |
|
| barrier.h | File | 1.47 KB | 0644 |
|
| bitops-cas.h | File | 1.73 KB | 0644 |
|
| bitops-grb.h | File | 6.21 KB | 0644 |
|
| bitops-llsc.h | File | 2.79 KB | 0644 |
|
| bitops-op32.h | File | 3.82 KB | 0644 |
|
| bitops.h | File | 1.58 KB | 0644 |
|
| bl_bit.h | File | 66 B | 0644 |
|
| bl_bit_32.h | File | 639 B | 0644 |
|
| bug.h | File | 2.77 KB | 0644 |
|
| cache.h | File | 1.31 KB | 0644 |
|
| cache_insns.h | File | 71 B | 0644 |
|
| cache_insns_32.h | File | 642 B | 0644 |
|
| cacheflush.h | File | 4.22 KB | 0644 |
|
| cachetype.h | File | 170 B | 0644 |
|
| checksum.h | File | 68 B | 0644 |
|
| checksum_32.h | File | 4.92 KB | 0644 |
|
| clock.h | File | 436 B | 0644 |
|
| cmpxchg-cas.h | File | 549 B | 0644 |
|
| cmpxchg-grb.h | File | 2.8 KB | 0644 |
|
| cmpxchg-irq.h | File | 1.04 KB | 0644 |
|
| cmpxchg-llsc.h | File | 1.06 KB | 0644 |
|
| cmpxchg-xchg.h | File | 1.24 KB | 0644 |
|
| cmpxchg.h | File | 2.09 KB | 0644 |
|
| device.h | File | 442 B | 0644 |
|
| dma-register.h | File | 1.67 KB | 0644 |
|
| dma.h | File | 3.09 KB | 0644 |
|
| dmabrg.h | File | 536 B | 0644 |
|
| dwarf.h | File | 9.66 KB | 0644 |
|
| elf.h | File | 5.87 KB | 0644 |
|
| entry-macros.S | File | 1.85 KB | 0644 |
|
| extable.h | File | 135 B | 0644 |
|
| fixmap.h | File | 2.48 KB | 0644 |
|
| flat.h | File | 865 B | 0644 |
|
| fpu.h | File | 1.67 KB | 0644 |
|
| freq.h | File | 212 B | 0644 |
|
| ftrace.h | File | 1.41 KB | 0644 |
|
| futex-cas.h | File | 728 B | 0644 |
|
| futex-irq.h | File | 482 B | 0644 |
|
| futex-llsc.h | File | 870 B | 0644 |
|
| futex.h | File | 1.35 KB | 0644 |
|
| hardirq.h | File | 267 B | 0644 |
|
| hd64461.h | File | 11.79 KB | 0644 |
|
| heartbeat.h | File | 383 B | 0644 |
|
| hugetlb.h | File | 552 B | 0644 |
|
| hw_breakpoint.h | File | 1.99 KB | 0644 |
|
| hw_irq.h | File | 915 B | 0644 |
|
| i2c-sh7760.h | File | 406 B | 0644 |
|
| io.h | File | 8.88 KB | 0644 |
|
| io_generic.h | File | 661 B | 0644 |
|
| io_noioport.h | File | 1.25 KB | 0644 |
|
| io_trapped.h | File | 1.44 KB | 0644 |
|
| irq.h | File | 1.16 KB | 0644 |
|
| irqflags.h | File | 226 B | 0644 |
|
| kdebug.h | File | 433 B | 0644 |
|
| kexec.h | File | 2.62 KB | 0644 |
|
| kgdb.h | File | 851 B | 0644 |
|
| kprobes.h | File | 1.27 KB | 0644 |
|
| linkage.h | File | 154 B | 0644 |
|
| machvec.h | File | 699 B | 0644 |
|
| mmiowb.h | File | 246 B | 0644 |
|
| mmu.h | File | 2.18 KB | 0644 |
|
| mmu_context.h | File | 4.07 KB | 0644 |
|
| mmu_context_32.h | File | 1.11 KB | 0644 |
|
| mmzone.h | File | 970 B | 0644 |
|
| module.h | File | 276 B | 0644 |
|
| page.h | File | 4.6 KB | 0644 |
|
| pci.h | File | 2.78 KB | 0644 |
|
| perf_event.h | File | 797 B | 0644 |
|
| pgalloc.h | File | 1.13 KB | 0644 |
|
| pgtable-2level.h | File | 567 B | 0644 |
|
| pgtable-3level.h | File | 1.5 KB | 0644 |
|
| pgtable.h | File | 3.89 KB | 0644 |
|
| pgtable_32.h | File | 16.53 KB | 0644 |
|
| platform_early.h | File | 1.81 KB | 0644 |
|
| posix_types.h | File | 71 B | 0644 |
|
| processor.h | File | 4.22 KB | 0644 |
|
| processor_32.h | File | 4.41 KB | 0644 |
|
| ptrace.h | File | 3.74 KB | 0644 |
|
| ptrace_32.h | File | 307 B | 0644 |
|
| push-switch.h | File | 755 B | 0644 |
|
| reboot.h | File | 472 B | 0644 |
|
| romimage-macros.h | File | 1.1 KB | 0644 |
|
| rtc.h | File | 226 B | 0644 |
|
| seccomp.h | File | 546 B | 0644 |
|
| sections.h | File | 311 B | 0644 |
|
| setup.h | File | 764 B | 0644 |
|
| sfp-machine.h | File | 2.7 KB | 0644 |
|
| sh7760fb.h | File | 5.61 KB | 0644 |
|
| sh_bios.h | File | 743 B | 0644 |
|
| shmparam.h | File | 489 B | 0644 |
|
| siu.h | File | 385 B | 0644 |
|
| smc37c93x.h | File | 5.56 KB | 0644 |
|
| smp-ops.h | File | 1.02 KB | 0644 |
|
| smp.h | File | 1.8 KB | 0644 |
|
| sparsemem.h | File | 319 B | 0644 |
|
| spi.h | File | 265 B | 0644 |
|
| spinlock-cas.h | File | 1.95 KB | 0644 |
|
| spinlock-llsc.h | File | 4.05 KB | 0644 |
|
| spinlock.h | File | 438 B | 0644 |
|
| spinlock_types.h | File | 469 B | 0644 |
|
| sram.h | File | 670 B | 0644 |
|
| stackprotector.h | File | 532 B | 0644 |
|
| stacktrace.h | File | 528 B | 0644 |
|
| string.h | File | 66 B | 0644 |
|
| string_32.h | File | 2.16 KB | 0644 |
|
| suspend.h | File | 2.52 KB | 0644 |
|
| switch_to.h | File | 190 B | 0644 |
|
| switch_to_32.h | File | 3.55 KB | 0644 |
|
| syscall.h | File | 201 B | 0644 |
|
| syscall_32.h | File | 1.59 KB | 0644 |
|
| syscalls.h | File | 532 B | 0644 |
|
| syscalls_32.h | File | 979 B | 0644 |
|
| thread_info.h | File | 4.95 KB | 0644 |
|
| timex.h | File | 637 B | 0644 |
|
| tlb.h | File | 738 B | 0644 |
|
| tlbflush.h | File | 1.77 KB | 0644 |
|
| topology.h | File | 645 B | 0644 |
|
| traps.h | File | 424 B | 0644 |
|
| traps_32.h | File | 1.42 KB | 0644 |
|
| types.h | File | 332 B | 0644 |
|
| uaccess.h | File | 4.05 KB | 0644 |
|
| uaccess_32.h | File | 4.89 KB | 0644 |
|
| uncached.h | File | 1.34 KB | 0644 |
|
| unistd.h | File | 953 B | 0644 |
|
| unwinder.h | File | 856 B | 0644 |
|
| user.h | File | 2.19 KB | 0644 |
|
| vermagic.h | File | 709 B | 0644 |
|
| vmalloc.h | File | 84 B | 0644 |
|
| vmlinux.lds.h | File | 416 B | 0644 |
|
| watchdog.h | File | 3.89 KB | 0644 |
|
| word-at-a-time.h | File | 1.34 KB | 0644 |
|