2005-04-17 02:20:36 +04:00
/* sys_frv.c: FRV arch-specific syscall wrappers
*
* Copyright ( C ) 2003 - 5 Red Hat , Inc . All Rights Reserved .
* Written by David Howells ( dhowells @ redhat . com )
* - Derived from arch / m68k / kernel / sys_m68k . c
*
* 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 ; either version
* 2 of the License , or ( at your option ) any later version .
*/
# include <linux/errno.h>
# include <linux/sched.h>
# include <linux/mm.h>
2007-07-30 02:36:13 +04:00
# include <linux/fs.h>
2005-04-17 02:20:36 +04:00
# include <linux/smp.h>
# include <linux/sem.h>
# include <linux/msg.h>
# include <linux/shm.h>
# include <linux/stat.h>
# include <linux/mman.h>
# include <linux/file.h>
# include <linux/syscalls.h>
2007-10-17 10:29:24 +04:00
# include <linux/ipc.h>
2005-04-17 02:20:36 +04:00
# include <asm/setup.h>
# include <asm/uaccess.h>
asmlinkage long sys_mmap2 ( unsigned long addr , unsigned long len ,
unsigned long prot , unsigned long flags ,
unsigned long fd , unsigned long pgoff )
{
/* As with sparc32, make sure the shift for mmap2 is constant
( 12 ) , no matter what PAGE_SIZE we have . . . . */
/* But unlike sparc32, don't just silently break if we're
trying to map something we can ' t */
2008-12-02 00:14:00 +03:00
if ( pgoff & ( ( 1 < < ( PAGE_SHIFT - 12 ) ) - 1 ) )
2005-04-17 02:20:36 +04:00
return - EINVAL ;
2009-12-01 01:37:04 +03:00
return sys_mmap_pgoff ( addr , len , prot , flags , fd ,
pgoff > > ( PAGE_SHIFT - 12 ) ) ;
2005-04-17 02:20:36 +04:00
}