2006-12-10 02:18:52 -08:00
/*
* arch / xtensa / kernel / syscall . c
*
* 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 .
*
* Copyright ( C ) 2001 - 2005 Tensilica Inc .
* Copyright ( C ) 2000 Silicon Graphics , Inc .
* Copyright ( C ) 1995 - 2000 by Ralf Baechle
*
* Joe Taylor < joe @ tensilica . com , joetylr @ yahoo . com >
* Marc Gauthier < marc @ tensilica . com , marc @ alumni . uwaterloo . ca >
* Chris Zankel < chris @ zankel . net >
* Kevin Chea
*
*/
# include <asm/uaccess.h>
2006-12-13 00:34:32 -08:00
# include <asm/syscall.h>
2006-12-10 02:18:52 -08:00
# include <asm/unistd.h>
# include <linux/linkage.h>
# include <linux/stringify.h>
# include <linux/errno.h>
# include <linux/syscalls.h>
# include <linux/file.h>
# include <linux/fs.h>
# include <linux/mman.h>
# include <linux/shm.h>
typedef void ( * syscall_t ) ( void ) ;
syscall_t sys_call_table [ __NR_syscall_count ] /* FIXME __cacheline_aligned */ = {
[ 0 . . . __NR_syscall_count - 1 ] = ( syscall_t ) & sys_ni_syscall ,
# undef __SYSCALL
# define __SYSCALL(nr,symbol,nargs) [ nr ] = (syscall_t)symbol,
# undef _XTENSA_UNISTD_H
# undef __KERNEL_SYSCALLS__
# include <asm/unistd.h>
} ;
asmlinkage long xtensa_shmat ( int shmid , char __user * shmaddr , int shmflg )
{
unsigned long ret ;
long err ;
err = do_shmat ( shmid , shmaddr , shmflg , & ret ) ;
if ( err )
return err ;
return ( long ) ret ;
}
2007-08-05 10:22:58 -07:00
asmlinkage long xtensa_fadvise64_64 ( int fd , int advice , unsigned long long offset , unsigned long long len )
{
return sys_fadvise64_64 ( fd , offset , len , advice ) ;
}