2 * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
9 #include <linux/syscalls.h>
10 #include "linux/resource.h"
11 #include "asm/uaccess.h"
13 extern int um_execve(const char *file, char *const argv[], char *const env[]);
16 #define __ARCH_WANT_IPC_PARSE_VERSION
17 #define __ARCH_WANT_OLD_READDIR
18 #define __ARCH_WANT_OLD_STAT
19 #define __ARCH_WANT_STAT64
20 #define __ARCH_WANT_SYS_ALARM
21 #define __ARCH_WANT_SYS_GETHOSTNAME
22 #define __ARCH_WANT_SYS_PAUSE
23 #define __ARCH_WANT_SYS_SGETMASK
24 #define __ARCH_WANT_SYS_SIGNAL
25 #define __ARCH_WANT_SYS_TIME
26 #define __ARCH_WANT_SYS_UTIME
27 #define __ARCH_WANT_SYS_WAITPID
28 #define __ARCH_WANT_SYS_SOCKETCALL
29 #define __ARCH_WANT_SYS_FADVISE64
30 #define __ARCH_WANT_SYS_GETPGRP
31 #define __ARCH_WANT_SYS_LLSEEK
32 #define __ARCH_WANT_SYS_NICE
33 #define __ARCH_WANT_SYS_OLD_GETRLIMIT
34 #define __ARCH_WANT_SYS_OLDUMOUNT
35 #define __ARCH_WANT_SYS_SIGPENDING
36 #define __ARCH_WANT_SYS_SIGPROCMASK
37 #define __ARCH_WANT_SYS_RT_SIGACTION
40 #ifdef __KERNEL_SYSCALLS__
42 #include <linux/compiler.h>
43 #include <linux/types.h>
45 #define KERNEL_CALL(ret_t, sys, args...) \
46 mm_segment_t fs = get_fs(); \
56 static inline long open(const char *pathname, int flags, int mode)
58 KERNEL_CALL(int, sys_open, pathname, flags, mode)
61 static inline long dup(unsigned int fd)
63 KERNEL_CALL(int, sys_dup, fd);
66 static inline long close(unsigned int fd)
68 KERNEL_CALL(int, sys_close, fd);
71 static inline int execve(const char *filename, char *const argv[],
74 KERNEL_CALL(int, um_execve, filename, argv, envp);
77 static inline long waitpid(pid_t pid, unsigned int *status, int options)
79 KERNEL_CALL(pid_t, sys_wait4, pid, status, options, NULL)
82 static inline pid_t setsid(void)
84 KERNEL_CALL(pid_t, sys_setsid)
87 static inline long lseek(unsigned int fd, off_t offset, unsigned int whence)
89 KERNEL_CALL(long, sys_lseek, fd, offset, whence)
92 static inline int read(unsigned int fd, char * buf, int len)
94 KERNEL_CALL(int, sys_read, fd, buf, len)
97 static inline int write(unsigned int fd, char * buf, int len)
99 KERNEL_CALL(int, sys_write, fd, buf, len)
102 long sys_mmap2(unsigned long addr, unsigned long len,
103 unsigned long prot, unsigned long flags,
104 unsigned long fd, unsigned long pgoff);
105 int sys_execve(char *file, char **argv, char **env);
106 long sys_clone(unsigned long clone_flags, unsigned long newsp,
107 int *parent_tid, int *child_tid);
109 long sys_vfork(void);
110 int sys_pipe(unsigned long *fildes);
111 int sys_ptrace(long request, long pid, long addr, long data);
113 asmlinkage long sys_rt_sigaction(int sig,
114 const struct sigaction __user *act,
115 struct sigaction __user *oact,
120 /* Save the value of __KERNEL_SYSCALLS__, undefine it, include the underlying
121 * arch's unistd.h for the system call numbers, and restore the old
122 * __KERNEL_SYSCALLS__.
125 #ifdef __KERNEL_SYSCALLS__
126 #define __SAVE_KERNEL_SYSCALLS__ __KERNEL_SYSCALLS__
129 #undef __KERNEL_SYSCALLS__
130 #include "asm/arch/unistd.h"
132 #ifdef __KERNEL_SYSCALLS__
133 #define __KERNEL_SYSCALLS__ __SAVE_KERNEL_SYSCALLS__
139 * Overrides for Emacs so that we follow Linus's tabbing style.
140 * Emacs will notice this stuff at the end of the file and automatically
141 * adjust the settings for this buffer only. This must remain at the end
143 * ---------------------------------------------------------------------------
145 * c-file-style: "linux"