Linux-2.6.12-rc2
[linux-2.6/next.git] / include / asm-um / unistd.h
blob6fdde45cc0536ca486224c94dfdc99edebe60d1a
1 /*
2 * Copyright (C) 2000 - 2004 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
4 */
6 #ifndef _UM_UNISTD_H_
7 #define _UM_UNISTD_H_
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[]);
15 #ifdef __KERNEL__
16 /* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */
17 #define __ARCH_WANT_IPC_PARSE_VERSION
18 #define __ARCH_WANT_OLD_READDIR
19 #define __ARCH_WANT_SYS_ALARM
20 #define __ARCH_WANT_SYS_GETHOSTNAME
21 #define __ARCH_WANT_SYS_PAUSE
22 #define __ARCH_WANT_SYS_SGETMASK
23 #define __ARCH_WANT_SYS_SIGNAL
24 #define __ARCH_WANT_SYS_TIME
25 #define __ARCH_WANT_SYS_UTIME
26 #define __ARCH_WANT_SYS_WAITPID
27 #define __ARCH_WANT_SYS_SOCKETCALL
28 #define __ARCH_WANT_SYS_FADVISE64
29 #define __ARCH_WANT_SYS_GETPGRP
30 #define __ARCH_WANT_SYS_LLSEEK
31 #define __ARCH_WANT_SYS_NICE
32 #define __ARCH_WANT_SYS_OLD_GETRLIMIT
33 #define __ARCH_WANT_SYS_OLDUMOUNT
34 #define __ARCH_WANT_SYS_SIGPENDING
35 #define __ARCH_WANT_SYS_SIGPROCMASK
36 #define __ARCH_WANT_SYS_RT_SIGACTION
37 #endif
39 #ifdef __KERNEL_SYSCALLS__
41 #include <linux/compiler.h>
42 #include <linux/types.h>
44 static inline int execve(const char *filename, char *const argv[],
45 char *const envp[])
47 mm_segment_t fs;
48 int ret;
50 fs = get_fs();
51 set_fs(KERNEL_DS);
52 ret = um_execve(filename, argv, envp);
53 set_fs(fs);
55 if (ret >= 0)
56 return ret;
58 errno = -(long)ret;
59 return -1;
62 int sys_execve(char *file, char **argv, char **env);
64 #endif /* __KERNEL_SYSCALLS__ */
66 #undef __KERNEL_SYSCALLS__
67 #include "asm/arch/unistd.h"
69 #endif /* _UM_UNISTD_H_*/