1 /* 2 * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu> 3 * Copyright (C) 2007-2009 PetaLogix 4 * Copyright (C) 2007 John Williams <john.williams@petalogix.com> 5 * 6 * Copyright (C) 2006 Atmark Techno, Inc. 7 * Yasushi SHOJI <yashi@atmark-techno.com> 8 * Tetsuya OHKAWA <tetsuya@atmark-techno.com> 9 * 10 * This file is subject to the terms and conditions of the GNU General Public 11 * License. See the file "COPYING" in the main directory of this archive 12 * for more details. 13 */ 14 15 #include <linux/errno.h> 16 #include <linux/export.h> 17 #include <linux/mm.h> 18 #include <linux/smp.h> 19 #include <linux/syscalls.h> 20 #include <linux/sem.h> 21 #include <linux/msg.h> 22 #include <linux/shm.h> 23 #include <linux/stat.h> 24 #include <linux/mman.h> 25 #include <linux/sys.h> 26 #include <linux/ipc.h> 27 #include <linux/file.h> 28 #include <linux/err.h> 29 #include <linux/fs.h> 30 #include <linux/semaphore.h> 31 #include <linux/uaccess.h> 32 #include <linux/unistd.h> 33 #include <linux/slab.h> 34 #include <asm/syscalls.h> 35 36 SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len, 37 unsigned long, prot, unsigned long, flags, unsigned long, fd, 38 unsigned long, pgoff) 39 { 40 if (pgoff & ~PAGE_MASK) 41 return -EINVAL; 42 43 return ksys_mmap_pgoff(addr, len, prot, flags, fd, pgoff >> PAGE_SHIFT); 44 } 45 46 SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, 47 unsigned long, prot, unsigned long, flags, unsigned long, fd, 48 unsigned long, pgoff) 49 { 50 if (pgoff & (~PAGE_MASK >> 12)) 51 return -EINVAL; 52 53 return ksys_mmap_pgoff(addr, len, prot, flags, fd, 54 pgoff >> (PAGE_SHIFT - 12)); 55 } 56