55 lines · 1.6 KB · C
RawDownload
/* * AArch64-specific system calls implementation * * Copyright (C) 2012 ARM Ltd. * Author: Catalin Marinas <catalin.marinas@arm.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * 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. * * You should have received a copy of the GNU General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. */ #include <linux/compiler.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/mm.h>#include <linux/export.h>#include <linux/sched.h>#include <linux/slab.h>#include <linux/syscalls.h> asmlinkage long sys_mmap(unsigned long addr, unsigned long len,			 unsigned long prot, unsigned long flags,			 unsigned long fd, off_t off){	if (offset_in_page(off) != 0)		return -EINVAL; 	return sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);} /* * Wrappers to pass the pt_regs argument. */asmlinkage long sys_rt_sigreturn_wrapper(void);#define sys_rt_sigreturn	sys_rt_sigreturn_wrapper #undef __SYSCALL#define __SYSCALL(nr, sym)	[nr] = sym, /* * The sys_call_table array must be 4K aligned to be accessible from * kernel/entry.S. */void * const sys_call_table[__NR_syscalls] __aligned(4096) = {	[0 ... __NR_syscalls - 1] = sys_ni_syscall,#include <asm/unistd.h>};