summaryrefslogtreecommitdiff
path: root/include/asm-um/unistd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-um/unistd.h')
-rw-r--r--include/asm-um/unistd.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/include/asm-um/unistd.h b/include/asm-um/unistd.h
new file mode 100644
index 000000000000..6fdde45cc053
--- /dev/null
+++ b/include/asm-um/unistd.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2000 - 2004 Jeff Dike (jdike@karaya.com)
+ * Licensed under the GPL
+ */
+
+#ifndef _UM_UNISTD_H_
+#define _UM_UNISTD_H_
+
+#include <linux/syscalls.h>
+#include "linux/resource.h"
+#include "asm/uaccess.h"
+
+extern int um_execve(const char *file, char *const argv[], char *const env[]);
+
+#ifdef __KERNEL__
+/* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */
+#define __ARCH_WANT_IPC_PARSE_VERSION
+#define __ARCH_WANT_OLD_READDIR
+#define __ARCH_WANT_SYS_ALARM
+#define __ARCH_WANT_SYS_GETHOSTNAME
+#define __ARCH_WANT_SYS_PAUSE
+#define __ARCH_WANT_SYS_SGETMASK
+#define __ARCH_WANT_SYS_SIGNAL
+#define __ARCH_WANT_SYS_TIME
+#define __ARCH_WANT_SYS_UTIME
+#define __ARCH_WANT_SYS_WAITPID
+#define __ARCH_WANT_SYS_SOCKETCALL
+#define __ARCH_WANT_SYS_FADVISE64
+#define __ARCH_WANT_SYS_GETPGRP
+#define __ARCH_WANT_SYS_LLSEEK
+#define __ARCH_WANT_SYS_NICE
+#define __ARCH_WANT_SYS_OLD_GETRLIMIT
+#define __ARCH_WANT_SYS_OLDUMOUNT
+#define __ARCH_WANT_SYS_SIGPENDING
+#define __ARCH_WANT_SYS_SIGPROCMASK
+#define __ARCH_WANT_SYS_RT_SIGACTION
+#endif
+
+#ifdef __KERNEL_SYSCALLS__
+
+#include <linux/compiler.h>
+#include <linux/types.h>
+
+static inline int execve(const char *filename, char *const argv[],
+ char *const envp[])
+{
+ mm_segment_t fs;
+ int ret;
+
+ fs = get_fs();
+ set_fs(KERNEL_DS);
+ ret = um_execve(filename, argv, envp);
+ set_fs(fs);
+
+ if (ret >= 0)
+ return ret;
+
+ errno = -(long)ret;
+ return -1;
+}
+
+int sys_execve(char *file, char **argv, char **env);
+
+#endif /* __KERNEL_SYSCALLS__ */
+
+#undef __KERNEL_SYSCALLS__
+#include "asm/arch/unistd.h"
+
+#endif /* _UM_UNISTD_H_*/