Commit 81c9ae6f authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

[PATCH] uml: unistd.h cleanup

From: Chris Wedgewood: this removes unnecessary cruft from unistd.h
Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8fa3b0de
/*
* Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
* Copyright (C) 2000 - 2004 Jeff Dike (jdike@karaya.com)
* Licensed under the GPL
*/
......@@ -41,105 +41,29 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]);
#include <linux/compiler.h>
#include <linux/types.h>
#define KERNEL_CALL(ret_t, sys, args...) \
mm_segment_t fs = get_fs(); \
ret_t ret; \
set_fs(KERNEL_DS); \
ret = sys(args); \
set_fs(fs); \
if (ret >= 0) \
return ret; \
errno = -(long)ret; \
return -1;
static inline long open(const char *pathname, int flags, int mode)
{
KERNEL_CALL(int, sys_open, pathname, flags, mode)
}
static inline long dup(unsigned int fd)
{
KERNEL_CALL(int, sys_dup, fd);
}
static inline long close(unsigned int fd)
{
KERNEL_CALL(int, sys_close, fd);
}
static inline int execve(const char *filename, char *const argv[],
char *const envp[])
{
KERNEL_CALL(int, um_execve, filename, argv, envp);
}
mm_segment_t fs;
int ret;
static inline long waitpid(pid_t pid, unsigned int *status, int options)
{
KERNEL_CALL(pid_t, sys_wait4, pid, status, options, NULL)
}
fs = get_fs();
set_fs(KERNEL_DS);
ret = um_execve(filename, argv, envp);
set_fs(fs);
static inline pid_t setsid(void)
{
KERNEL_CALL(pid_t, sys_setsid)
}
static inline off_t lseek(unsigned int fd, off_t offset, unsigned int whence)
{
KERNEL_CALL(long, sys_lseek, fd, offset, whence)
}
if (ret >= 0)
return ret;
static inline int read(unsigned int fd, char * buf, int len)
{
KERNEL_CALL(int, sys_read, fd, buf, len)
}
static inline int write(unsigned int fd, char * buf, int len)
{
KERNEL_CALL(int, sys_write, fd, buf, len)
errno = -(long)ret;
return -1;
}
long sys_mmap2(unsigned long addr, unsigned long len,
unsigned long prot, unsigned long flags,
unsigned long fd, unsigned long pgoff);
long sys_execve(char *file, char **argv, char **env);
long sys_clone(unsigned long clone_flags, unsigned long newsp,
int *parent_tid, int *child_tid);
long sys_fork(void);
long sys_vfork(void);
long sys_pipe(unsigned long *fildes);
struct sigaction;
asmlinkage long sys_rt_sigaction(int sig,
const struct sigaction __user *act,
struct sigaction __user *oact,
size_t sigsetsize);
#endif
/* Save the value of __KERNEL_SYSCALLS__, undefine it, include the underlying
* arch's unistd.h for the system call numbers, and restore the old
* __KERNEL_SYSCALLS__.
*/
int sys_execve(char *file, char **argv, char **env);
#ifdef __KERNEL_SYSCALLS__
#define __SAVE_KERNEL_SYSCALLS__ __KERNEL_SYSCALLS__
#endif
#endif /* __KERNEL_SYSCALLS__ */
#undef __KERNEL_SYSCALLS__
#include "asm/arch/unistd.h"
#ifdef __KERNEL_SYSCALLS__
#define __KERNEL_SYSCALLS__ __SAVE_KERNEL_SYSCALLS__
#endif
#endif
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
#endif /* _UM_UNISTD_H_*/
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment