60 lines · 1.3 KB · C
RawDownload
/* * Copyright (C) 2013 Altera Corporation * Copyright (C) 2011-2012 Tobias Klauser <tklauser@distanz.ch> * Copyright (C) 2004 Microtronix Datacom Ltd. * * 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. */ #include <linux/export.h>#include <linux/file.h>#include <linux/fs.h>#include <linux/slab.h>#include <linux/syscalls.h> #include <asm/cacheflush.h>#include <asm/traps.h> /* sys_cacheflush -- flush the processor cache. */asmlinkage int sys_cacheflush(unsigned long addr, unsigned long len,				unsigned int op){	struct vm_area_struct *vma;	struct mm_struct *mm = current->mm; 	if (len == 0)		return 0; 	/* We only support op 0 now, return error if op is non-zero.*/	if (op)		return -EINVAL; 	/* Check for overflow */	if (addr + len < addr)		return -EFAULT; 	if (mmap_read_lock_killable(mm))		return -EINTR; 	/*	 * Verify that the specified address region actually belongs	 * to this process.	 */	vma = find_vma(mm, addr);	if (vma == NULL || addr < vma->vm_start || addr + len > vma->vm_end) {		mmap_read_unlock(mm);		return -EFAULT;	} 	flush_cache_range(vma, addr, addr + len); 	mmap_read_unlock(mm);	return 0;} asmlinkage int sys_getpagesize(void){	return PAGE_SIZE;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t