__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 */

#ifndef __UM_TLBFLUSH_H
#define __UM_TLBFLUSH_H

#include <linux/mm.h>

/*
 * In UML, we need to sync the TLB over by using mmap/munmap syscalls from
 * the process handling the MM (which can be the kernel itself).
 *
 * To track updates, we can hook into set_ptes and flush_tlb_*. With set_ptes
 * we catch all PTE transitions where memory that was unusable becomes usable.
 * While with flush_tlb_* we can track any memory that becomes unusable and
 * even if a higher layer of the page table was modified.
 *
 * So, we simply track updates using both methods and mark the memory area to
 * be synced later on. The only special case is that flush_tlb_kern_* needs to
 * be executed immediately as there is no good synchronization point in that
 * case. In contrast, in the set_ptes case we can wait for the next kernel
 * segfault before we do the synchornization.
 *
 *  - flush_tlb_all() flushes all processes TLBs
 *  - flush_tlb_mm(mm) flushes the specified mm context TLB's
 *  - flush_tlb_page(vma, vmaddr) flushes one page
 *  - flush_tlb_range(vma, start, end) flushes a range of pages
 *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
 */

extern int um_tlb_sync(struct mm_struct *mm);

extern void flush_tlb_all(void);
extern void flush_tlb_mm(struct mm_struct *mm);

static inline void flush_tlb_page(struct vm_area_struct *vma,
				  unsigned long address)
{
	um_tlb_mark_sync(vma->vm_mm, address, address + PAGE_SIZE);
}

static inline void flush_tlb_range(struct vm_area_struct *vma,
				   unsigned long start, unsigned long end)
{
	um_tlb_mark_sync(vma->vm_mm, start, end);
}

static inline void flush_tlb_kernel_range(unsigned long start,
					  unsigned long end)
{
	um_tlb_mark_sync(&init_mm, start, end);

	/* Kernel needs to be synced immediately */
	um_tlb_sync(&init_mm);
}

#endif

Filemanager

Name Type Size Permission Actions
fpu Folder 0755
Kbuild File 701 B 0644
archrandom.h File 615 B 0644
asm-prototypes.h File 129 B 0644
bpf_perf_event.h File 261 B 0644
cache.h File 483 B 0644
cacheflush.h File 257 B 0644
common.lds.S File 1.67 KB 0644
cpufeature.h File 4.46 KB 0644
current.h File 410 B 0644
delay.h File 670 B 0644
dma.h File 180 B 0644
futex.h File 353 B 0644
hardirq.h File 201 B 0644
io.h File 478 B 0644
irq.h File 828 B 0644
irqflags.h File 807 B 0644
kasan.h File 1019 B 0644
kvm_para.h File 34 B 0644
mmu.h File 374 B 0644
mmu_context.h File 1.11 KB 0644
msi.h File 29 B 0644
page.h File 2.55 KB 0644
pci.h File 469 B 0644
pgalloc.h File 1.24 KB 0644
pgtable-2level.h File 1.27 KB 0644
pgtable-4level.h File 3.08 KB 0644
pgtable.h File 8.86 KB 0644
processor-generic.h File 1.78 KB 0644
ptrace-generic.h File 1.3 KB 0644
sections.h File 219 B 0644
setup.h File 273 B 0644
smp.h File 121 B 0644
stacktrace.h File 1.06 KB 0644
syscall-generic.h File 1.57 KB 0644
thread_info.h File 1.57 KB 0644
timex.h File 151 B 0644
tlb.h File 192 B 0644
tlbflush.h File 1.9 KB 0644
uaccess.h File 1.98 KB 0644
unwind.h File 213 B 0644
vmalloc.h File 84 B 0644
vmlinux.lds.h File 66 B 0644
xor.h File 639 B 0644
Filemanager