Disable i386 call for x86-64 Linux.
Differential Revision: https://reviews.freebsd.org/D1067 Reviewed by: trasz
This commit is contained in:
parent
0ed687fa2e
commit
7f8f1d7f7a
@ -235,6 +235,7 @@ linux_lseek(struct thread *td, struct linux_lseek_args *args)
|
||||
return error;
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_llseek(struct thread *td, struct linux_llseek_args *args)
|
||||
{
|
||||
@ -273,6 +274,7 @@ linux_readdir(struct thread *td, struct linux_readdir_args *args)
|
||||
lda.count = 1;
|
||||
return linux_getdents(td, &lda);
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
/*
|
||||
* Note that linux_getdents(2) and linux_getdents64(2) have the same
|
||||
@ -924,6 +926,7 @@ linux_truncate(struct thread *td, struct linux_truncate_args *args)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_truncate64(struct thread *td, struct linux_truncate64_args *args)
|
||||
{
|
||||
@ -941,6 +944,8 @@ linux_truncate64(struct thread *td, struct linux_truncate64_args *args)
|
||||
LFREEPATH(path);
|
||||
return (error);
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_ftruncate(struct thread *td, struct linux_ftruncate_args *args)
|
||||
{
|
||||
@ -1129,6 +1134,7 @@ linux_mount(struct thread *td, struct linux_mount_args *args)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_oldumount(struct thread *td, struct linux_oldumount_args *args)
|
||||
{
|
||||
@ -1138,6 +1144,7 @@ linux_oldumount(struct thread *td, struct linux_oldumount_args *args)
|
||||
args2.flags = 0;
|
||||
return (linux_umount(td, &args2));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_umount(struct thread *td, struct linux_umount_args *args)
|
||||
@ -1268,7 +1275,7 @@ bsd_to_linux_flock64(struct flock *bsd_flock, struct l_flock64 *linux_flock)
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
static int
|
||||
fcntl_common(struct thread *td, struct linux_fcntl64_args *args)
|
||||
fcntl_common(struct thread *td, struct linux_fcntl_args *args)
|
||||
{
|
||||
struct l_flock linux_flock;
|
||||
struct flock bsd_flock;
|
||||
@ -1394,17 +1401,13 @@ fcntl_common(struct thread *td, struct linux_fcntl64_args *args)
|
||||
int
|
||||
linux_fcntl(struct thread *td, struct linux_fcntl_args *args)
|
||||
{
|
||||
struct linux_fcntl64_args args64;
|
||||
|
||||
#ifdef DEBUG
|
||||
if (ldebug(fcntl))
|
||||
printf(ARGS(fcntl, "%d, %08x, *"), args->fd, args->cmd);
|
||||
#endif
|
||||
|
||||
args64.fd = args->fd;
|
||||
args64.cmd = args->cmd;
|
||||
args64.arg = args->arg;
|
||||
return (fcntl_common(td, &args64));
|
||||
return (fcntl_common(td, args));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
@ -1413,6 +1416,7 @@ linux_fcntl64(struct thread *td, struct linux_fcntl64_args *args)
|
||||
{
|
||||
struct l_flock64 linux_flock;
|
||||
struct flock bsd_flock;
|
||||
struct linux_fcntl_args fcntl_args;
|
||||
int error;
|
||||
|
||||
#ifdef DEBUG
|
||||
@ -1453,7 +1457,10 @@ linux_fcntl64(struct thread *td, struct linux_fcntl64_args *args)
|
||||
(intptr_t)&bsd_flock));
|
||||
}
|
||||
|
||||
return (fcntl_common(td, args));
|
||||
fcntl_args.fd = args->fd;
|
||||
fcntl_args.cmd = args->cmd;
|
||||
fcntl_args.arg = args->arg;
|
||||
return (fcntl_common(td, &fcntl_args));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
@ -1551,6 +1558,7 @@ linux_fadvise64(struct thread *td, struct linux_fadvise64_args *args)
|
||||
advice));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_fadvise64_64(struct thread *td, struct linux_fadvise64_64_args *args)
|
||||
{
|
||||
@ -1562,6 +1570,7 @@ linux_fadvise64_64(struct thread *td, struct linux_fadvise64_64_args *args)
|
||||
return (kern_posix_fadvise(td, args->fd, args->offset, args->len,
|
||||
advice));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_pipe(struct thread *td, struct linux_pipe_args *args)
|
||||
|
@ -736,7 +736,6 @@ linux_newuname(struct thread *td, struct linux_newuname_args *args)
|
||||
return (copyout(&utsname, args->buf, sizeof(utsname)));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
struct l_utimbuf {
|
||||
l_time_t l_actime;
|
||||
l_time_t l_modtime;
|
||||
@ -841,7 +840,6 @@ linux_futimesat(struct thread *td, struct linux_futimesat_args *args)
|
||||
LFREEPATH(fname);
|
||||
return (error);
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_common_wait(struct thread *td, int pid, int *status,
|
||||
@ -867,6 +865,7 @@ linux_common_wait(struct thread *td, int pid, int *status,
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_waitpid(struct thread *td, struct linux_waitpid_args *args)
|
||||
{
|
||||
@ -891,6 +890,7 @@ linux_waitpid(struct thread *td, struct linux_waitpid_args *args)
|
||||
|
||||
return (linux_common_wait(td, args->pid, args->status, options, NULL));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_wait4(struct thread *td, struct linux_wait4_args *args)
|
||||
@ -1165,6 +1165,7 @@ linux_getitimer(struct thread *td, struct linux_getitimer_args *uap)
|
||||
return (copyout(&ls, uap->itv, sizeof(ls)));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_nice(struct thread *td, struct linux_nice_args *args)
|
||||
{
|
||||
@ -1175,6 +1176,7 @@ linux_nice(struct thread *td, struct linux_nice_args *args)
|
||||
bsd_args.prio = args->inc;
|
||||
return (sys_setpriority(td, &bsd_args));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_setgroups(struct thread *td, struct linux_setgroups_args *args)
|
||||
@ -1304,6 +1306,7 @@ linux_setrlimit(struct thread *td, struct linux_setrlimit_args *args)
|
||||
return (kern_setrlimit(td, which, &bsd_rlim));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_old_getrlimit(struct thread *td, struct linux_old_getrlimit_args *args)
|
||||
{
|
||||
@ -1346,6 +1349,7 @@ linux_old_getrlimit(struct thread *td, struct linux_old_getrlimit_args *args)
|
||||
#endif
|
||||
return (copyout(&rlim, args->rlim, sizeof(rlim)));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_getrlimit(struct thread *td, struct linux_getrlimit_args *args)
|
||||
|
@ -60,6 +60,7 @@ static int linux_do_tkill(struct thread *td, struct thread *tdt,
|
||||
static void sicode_to_lsicode(int si_code, int *lsi_code);
|
||||
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
void
|
||||
linux_to_bsd_sigset(l_sigset_t *lss, sigset_t *bss)
|
||||
{
|
||||
@ -93,6 +94,7 @@ bsd_to_linux_sigset(sigset_t *bss, l_sigset_t *lss)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
static void
|
||||
linux_to_bsd_sigaction(l_sigaction_t *lsa, struct sigaction *bsa)
|
||||
@ -177,7 +179,7 @@ linux_do_sigaction(struct thread *td, int linux_sig, l_sigaction_t *linux_nsa,
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_signal(struct thread *td, struct linux_signal_args *args)
|
||||
{
|
||||
@ -199,6 +201,7 @@ linux_signal(struct thread *td, struct linux_signal_args *args)
|
||||
|
||||
return (error);
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_rt_sigaction(struct thread *td, struct linux_rt_sigaction_args *args)
|
||||
@ -268,6 +271,7 @@ linux_do_sigprocmask(struct thread *td, int how, l_sigset_t *new,
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_sigprocmask(struct thread *td, struct linux_sigprocmask_args *args)
|
||||
{
|
||||
@ -299,6 +303,7 @@ linux_sigprocmask(struct thread *td, struct linux_sigprocmask_args *args)
|
||||
|
||||
return (error);
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_rt_sigprocmask(struct thread *td, struct linux_rt_sigprocmask_args *args)
|
||||
@ -333,6 +338,7 @@ linux_rt_sigprocmask(struct thread *td, struct linux_rt_sigprocmask_args *args)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_sgetmask(struct thread *td, struct linux_sgetmask_args *args)
|
||||
{
|
||||
@ -376,9 +382,6 @@ linux_ssetmask(struct thread *td, struct linux_ssetmask_args *args)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* MPSAFE
|
||||
*/
|
||||
int
|
||||
linux_sigpending(struct thread *td, struct linux_sigpending_args *args)
|
||||
{
|
||||
@ -401,6 +404,7 @@ linux_sigpending(struct thread *td, struct linux_sigpending_args *args)
|
||||
mask = lset.__bits[0];
|
||||
return (copyout(&mask, args->mask, sizeof(mask)));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
/*
|
||||
* MPSAFE
|
||||
|
@ -1530,6 +1530,8 @@ linux_getsockopt(struct thread *td, struct linux_getsockopt_args *args)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
|
||||
/* Argument list sizes for linux_socketcall */
|
||||
|
||||
#define LINUX_AL(x) ((x) * sizeof(l_ulong))
|
||||
@ -1549,7 +1551,6 @@ static const unsigned char lxs_args[] = {
|
||||
|
||||
#define LINUX_AL_SIZE sizeof(lxs_args) / sizeof(lxs_args[0]) - 1
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
int
|
||||
linux_socketcall(struct thread *td, struct linux_socketcall_args *args)
|
||||
{
|
||||
|
@ -251,6 +251,7 @@ linux_newfstat(struct thread *td, struct linux_newfstat_args *args)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
static int
|
||||
stat_copyout(struct stat *buf, void *ubuf)
|
||||
{
|
||||
@ -325,6 +326,7 @@ linux_lstat(struct thread *td, struct linux_lstat_args *args)
|
||||
LFREEPATH(path);
|
||||
return(stat_copyout(&buf, args->up));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
struct l_statfs {
|
||||
l_long f_type;
|
||||
@ -420,6 +422,7 @@ linux_statfs(struct thread *td, struct linux_statfs_args *args)
|
||||
return copyout(&linux_statfs, args->buf, sizeof(linux_statfs));
|
||||
}
|
||||
|
||||
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
|
||||
static void
|
||||
bsd_to_linux_statfs64(struct statfs *bsd_statfs, struct l_statfs64 *linux_statfs)
|
||||
{
|
||||
@ -460,6 +463,7 @@ linux_statfs64(struct thread *td, struct linux_statfs64_args *args)
|
||||
bsd_to_linux_statfs64(&bsd_statfs, &linux_statfs);
|
||||
return copyout(&linux_statfs, args->buf, sizeof(linux_statfs));
|
||||
}
|
||||
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
|
||||
|
||||
int
|
||||
linux_fstatfs(struct thread *td, struct linux_fstatfs_args *args)
|
||||
|
Loading…
Reference in New Issue
Block a user