mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
|
/*
|
||
|
* 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_*/
|