OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
parisc
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:13 AM
rwxr-xr-x
📄
Kbuild
610 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
agp.h
596 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
asm-offsets.h
35 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
asmregs.h
3.04 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
assembly.h
12.94 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
atomic.h
8.24 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
barrier.h
2.44 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
bitops.h
5.89 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bug.h
2.35 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bugs.h
340 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
1.59 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
4.06 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
checksum.h
5.48 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
3.62 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
compat.h
6.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
compat_ucontext.h
591 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
533 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
2.42 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma.h
5.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
dwarf.h
602 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
eisa_bus.h
702 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
eisa_eeprom.h
4.42 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
14.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fb.h
403 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
fixmap.h
1.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
floppy.h
6.61 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ftrace.h
379 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex.h
2.66 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
grfioctl.h
4.68 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq.h
1.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardware.h
4.1 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
hash.h
5.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hugetlb.h
1.67 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ide.h
1.09 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
8.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
1.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
1.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kbdleds.h
477 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kmap_types.h
221 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ldcw.h
2.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
led.h
1.33 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
759 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
machdep.h
349 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mckinley.h
270 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
195 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
2.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmzone.h
1.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
module.h
527 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
5.42 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
parisc-device.h
1.92 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
parport.h
358 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci.h
6.57 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pdc.h
3.93 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pdc_chassis.h
15.06 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pdcpat.h
15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
perf.h
1.89 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
perf_event.h
152 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
4.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable.h
18.92 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
prefetch.h
1.12 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor.h
9.86 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
psw.h
2.39 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ptrace.h
803 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📄
ropes.h
9.73 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
rt_sigframe.h
745 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
runway.h
320 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sections.h
283 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
serial.h
124 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam.h
263 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
841 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
1.25 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
socket.h
311 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
special_insns.h
1015 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
4.02 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
spinlock_types.h
483 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
247 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
superio.h
3.25 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
332 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscall.h
1.4 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
termios.h
1.72 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
3.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex.h
372 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📄
tlb.h
672 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
2.63 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology.h
900 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
traps.h
468 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
6.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ucontext.h
327 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
unaligned.h
472 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
unistd.h
5.47 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
unwind.h
2.56 KB
01/28/2018 09:20:33 PM
rw-r--r--
Editing: pgalloc.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_PGALLOC_H #define _ASM_PGALLOC_H #include <linux/gfp.h> #include <linux/mm.h> #include <linux/threads.h> #include <asm/processor.h> #include <asm/fixmap.h> #include <asm/cache.h> /* Allocate the top level pgd (page directory) * * Here (for 64 bit kernels) we implement a Hybrid L2/L3 scheme: we * allocate the first pmd adjacent to the pgd. This means that we can * subtract a constant offset to get to it. The pmd and pgd sizes are * arranged so that a single pmd covers 4GB (giving a full 64-bit * process access to 8TB) so our lookups are effectively L2 for the * first 4GB of the kernel (i.e. for all ILP32 processes and all the * kernel for machines with under 4GB of memory) */ static inline pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *pgd = (pgd_t *)__get_free_pages(GFP_KERNEL, PGD_ALLOC_ORDER); pgd_t *actual_pgd = pgd; if (likely(pgd != NULL)) { memset(pgd, 0, PAGE_SIZE<<PGD_ALLOC_ORDER); #if CONFIG_PGTABLE_LEVELS == 3 actual_pgd += PTRS_PER_PGD; /* Populate first pmd with allocated memory. We mark it * with PxD_FLAG_ATTACHED as a signal to the system that this * pmd entry may not be cleared. */ __pgd_val_set(*actual_pgd, (PxD_FLAG_PRESENT | PxD_FLAG_VALID | PxD_FLAG_ATTACHED) + (__u32)(__pa((unsigned long)pgd) >> PxD_VALUE_SHIFT)); /* The first pmd entry also is marked with PxD_FLAG_ATTACHED as * a signal that this pmd may not be freed */ __pgd_val_set(*pgd, PxD_FLAG_ATTACHED); #endif } return actual_pgd; } static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { #if CONFIG_PGTABLE_LEVELS == 3 pgd -= PTRS_PER_PGD; #endif free_pages((unsigned long)pgd, PGD_ALLOC_ORDER); } #if CONFIG_PGTABLE_LEVELS == 3 /* Three Level Page Table Support for pmd's */ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) { __pgd_val_set(*pgd, (PxD_FLAG_PRESENT | PxD_FLAG_VALID) + (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT)); } static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) { pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL, PMD_ORDER); if (pmd) memset(pmd, 0, PAGE_SIZE<<PMD_ORDER); return pmd; } static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) { /* * This is the permanent pmd attached to the pgd; * cannot free it. * Increment the counter to compensate for the decrement * done by generic mm code. */ mm_inc_nr_pmds(mm); return; } free_pages((unsigned long)pmd, PMD_ORDER); } #else /* Two Level Page Table Support for pmd's */ /* * allocating and freeing a pmd is trivial: the 1-entry pmd is * inside the pgd, so has no extra memory associated with it. */ #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); }) #define pmd_free(mm, x) do { } while (0) #define pgd_populate(mm, pmd, pte) BUG() #endif static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { #if CONFIG_PGTABLE_LEVELS == 3 /* preserve the gateway marker if this is the beginning of * the permanent pmd */ if(pmd_flag(*pmd) & PxD_FLAG_ATTACHED) __pmd_val_set(*pmd, (PxD_FLAG_PRESENT | PxD_FLAG_VALID | PxD_FLAG_ATTACHED) + (__u32)(__pa((unsigned long)pte) >> PxD_VALUE_SHIFT)); else #endif __pmd_val_set(*pmd, (PxD_FLAG_PRESENT | PxD_FLAG_VALID) + (__u32)(__pa((unsigned long)pte) >> PxD_VALUE_SHIFT)); } #define pmd_populate(mm, pmd, pte_page) \ pmd_populate_kernel(mm, pmd, page_address(pte_page)) #define pmd_pgtable(pmd) pmd_page(pmd) static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) { struct page *page = alloc_page(GFP_KERNEL|__GFP_ZERO); if (!page) return NULL; if (!pgtable_page_ctor(page)) { __free_page(page); return NULL; } return page; } static inline pte_t * pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr) { pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO); return pte; } static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { free_page((unsigned long)pte); } static inline void pte_free(struct mm_struct *mm, struct page *pte) { pgtable_page_dtor(pte); pte_free_kernel(mm, page_address(pte)); } #define check_pgt_cache() do { } while (0) #endif