C6X: syscalls
[linux-3.10.git] / arch / c6x / include / asm / syscalls.h
1 /*
2  * Copyright (C) 2011 Texas Instruments Incorporated
3  * Author: Mark Salter <msalter@redhat.com>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation, version 2.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
12  * NON INFRINGEMENT.  See the GNU General Public License for
13  * more details.
14  */
15
16 #ifndef __ASM_C6X_SYSCALLS_H
17 #define __ASM_C6X_SYSCALLS_H
18
19 #include <linux/compiler.h>
20 #include <linux/linkage.h>
21 #include <linux/types.h>
22
23 /* The array of function pointers for syscalls. */
24 extern void *sys_call_table[];
25
26 /* The following are trampolines in entry.S to handle 64-bit arguments */
27 extern long sys_pread_c6x(unsigned int fd, char __user *buf,
28                           size_t count, off_t pos_low, off_t pos_high);
29 extern long sys_pwrite_c6x(unsigned int fd, const char __user *buf,
30                            size_t count, off_t pos_low, off_t pos_high);
31 extern long sys_truncate64_c6x(const char __user *path,
32                                off_t length_low, off_t length_high);
33 extern long sys_ftruncate64_c6x(unsigned int fd,
34                                off_t length_low, off_t length_high);
35 extern long sys_fadvise64_c6x(int fd, u32 offset_lo, u32 offset_hi,
36                               u32 len, int advice);
37 extern long sys_fadvise64_64_c6x(int fd, u32 offset_lo, u32 offset_hi,
38                                 u32 len_lo, u32 len_hi, int advice);
39 extern long sys_fallocate_c6x(int fd, int mode,
40                               u32 offset_lo, u32 offset_hi,
41                               u32 len_lo, u32 len_hi);
42 extern int sys_cache_sync(unsigned long s, unsigned long e);
43
44 struct pt_regs;
45
46 extern asmlinkage long sys_c6x_clone(struct pt_regs *regs);
47 extern asmlinkage long sys_c6x_execve(const char __user *name,
48                                       const char __user *const __user *argv,
49                                       const char __user *const __user *envp,
50                                       struct pt_regs *regs);
51
52
53 #include <asm-generic/syscalls.h>
54
55 #endif /* __ASM_C6X_SYSCALLS_H */