OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-197
/
arch
/
riscv
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/17/2022 06:42:16 AM
rwxr-xr-x
📄
Kbuild
1.37 KB
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--
📄
asm-prototypes.h
176 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
asm.h
1.78 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic.h
11.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
2.59 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
bitops.h
6.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bug.h
2.12 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
745 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
1.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
3.35 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
compat.h
924 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
csr.h
3.8 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
current.h
1.27 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
881 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
1.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
2.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fence.h
279 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
hwcap.h
1013 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
11.81 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
841 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
1.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kprobes.h
679 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
677 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
829 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
3.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
3.76 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pci.h
1.16 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
3.06 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable-32.h
870 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable-64.h
2.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable-bits.h
1.81 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pgtable.h
11.17 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
processor.h
2.44 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
ptrace.h
2.69 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sbi.h
2.6 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
1.59 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
2.85 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
spinlock_types.h
906 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
838 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
1.86 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
syscall.h
2.59 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
thread_info.h
3.11 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
timex.h
1.29 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb.h
717 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
1.83 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
14 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
unistd.h
638 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vdso.h
1.49 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
word-at-a-time.h
1.48 KB
01/28/2018 09:20:33 PM
rw-r--r--
Editing: pgalloc.h
Close
/* * Copyright (C) 2009 Chen Liqin <liqin.chen@sunplusct.com> * Copyright (C) 2012 Regents of the University of California * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _ASM_RISCV_PGALLOC_H #define _ASM_RISCV_PGALLOC_H #include <linux/mm.h> #include <asm/tlb.h> static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { unsigned long pfn = virt_to_pfn(pte); set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); } static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) { unsigned long pfn = virt_to_pfn(page_address(pte)); set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); } #ifndef __PAGETABLE_PMD_FOLDED static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) { unsigned long pfn = virt_to_pfn(pmd); set_pud(pud, __pud((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); } #endif /* __PAGETABLE_PMD_FOLDED */ #define pmd_pgtable(pmd) pmd_page(pmd) static inline pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *pgd; pgd = (pgd_t *)__get_free_page(GFP_KERNEL); if (likely(pgd != NULL)) { memset(pgd, 0, USER_PTRS_PER_PGD * sizeof(pgd_t)); /* Copy kernel mappings */ memcpy(pgd + USER_PTRS_PER_PGD, init_mm.pgd + USER_PTRS_PER_PGD, (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); } return pgd; } static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { free_page((unsigned long)pgd); } #ifndef __PAGETABLE_PMD_FOLDED static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) { return (pmd_t *)__get_free_page( GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_ZERO); } static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { free_page((unsigned long)pmd); } #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) #endif /* __PAGETABLE_PMD_FOLDED */ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { return (pte_t *)__get_free_page( GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_ZERO); } static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) { struct page *pte; pte = alloc_page(GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_ZERO); if (likely(pte != NULL)) pgtable_page_ctor(pte); 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, pgtable_t pte) { pgtable_page_dtor(pte); __free_page(pte); } #define __pte_free_tlb(tlb, pte, buf) \ do { \ pgtable_page_dtor(pte); \ tlb_remove_page((tlb), pte); \ } while (0) static inline void check_pgt_cache(void) { } #endif /* _ASM_RISCV_PGALLOC_H */