svn commit: r250280 - user/dchagin/lemul/sys/compat/linux
Dmitry Chagin
dchagin at FreeBSD.org
Sun May 5 17:27:59 UTC 2013
Author: dchagin
Date: Sun May 5 17:27:58 2013
New Revision: 250280
URL: http://svnweb.freebsd.org/changeset/base/250280
Log:
Get ready to commit x86_64 Linux emulation.
Disable i386 call for x86-64 Linux.
Modified:
user/dchagin/lemul/sys/compat/linux/linux_file.c
user/dchagin/lemul/sys/compat/linux/linux_misc.c
user/dchagin/lemul/sys/compat/linux/linux_signal.c
user/dchagin/lemul/sys/compat/linux/linux_stats.c
Modified: user/dchagin/lemul/sys/compat/linux/linux_file.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_file.c Sun May 5 17:25:39 2013 (r250279)
+++ user/dchagin/lemul/sys/compat/linux/linux_file.c Sun May 5 17:27:58 2013 (r250280)
@@ -238,6 +238,7 @@ linux_lseek(struct thread *td, struct li
return error;
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_llseek(struct thread *td, struct linux_llseek_args *args)
{
@@ -276,6 +277,7 @@ linux_readdir(struct thread *td, struct
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
@@ -919,6 +921,7 @@ linux_truncate(struct thread *td, struct
return (error);
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_truncate64(struct thread *td, struct linux_truncate64_args *args)
{
@@ -936,6 +939,8 @@ linux_truncate64(struct thread *td, stru
LFREEPATH(path);
return (error);
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
+
int
linux_ftruncate(struct thread *td, struct linux_ftruncate_args *args)
{
@@ -1140,6 +1145,7 @@ linux_mount(struct thread *td, struct li
return (error);
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_oldumount(struct thread *td, struct linux_oldumount_args *args)
{
@@ -1149,6 +1155,7 @@ linux_oldumount(struct thread *td, struc
args2.flags = 0;
return (linux_umount(td, &args2));
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
linux_umount(struct thread *td, struct linux_umount_args *args)
@@ -1279,7 +1286,7 @@ bsd_to_linux_flock64(struct flock *bsd_f
#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;
@@ -1403,17 +1410,13 @@ fcntl_common(struct thread *td, struct l
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))
@@ -1422,6 +1425,7 @@ linux_fcntl64(struct thread *td, struct
{
struct l_flock64 linux_flock;
struct flock bsd_flock;
+ struct linux_fcntl_args fcntl_args;
int error;
#ifdef DEBUG
@@ -1462,7 +1466,10 @@ linux_fcntl64(struct thread *td, struct
(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) */
@@ -1558,6 +1565,7 @@ linux_fadvise64(struct thread *td, struc
advice));
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_fadvise64_64(struct thread *td, struct linux_fadvise64_64_args *args)
{
@@ -1569,6 +1577,7 @@ linux_fadvise64_64(struct thread *td, st
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)
Modified: user/dchagin/lemul/sys/compat/linux/linux_misc.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_misc.c Sun May 5 17:25:39 2013 (r250279)
+++ user/dchagin/lemul/sys/compat/linux/linux_misc.c Sun May 5 17:27:58 2013 (r250280)
@@ -735,7 +735,6 @@ linux_newuname(struct thread *td, struct
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;
@@ -838,7 +837,6 @@ linux_futimesat(struct thread *td, struc
LFREEPATH(fname);
return (error);
}
-#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
linux_common_wait(struct thread *td, int pid, int *status,
@@ -864,6 +862,7 @@ linux_common_wait(struct thread *td, int
return (error);
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_waitpid(struct thread *td, struct linux_waitpid_args *args)
{
@@ -888,6 +887,7 @@ linux_waitpid(struct thread *td, struct
return (linux_common_wait(td, args->pid, args->status, options, NULL));
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
@@ -1070,6 +1070,7 @@ linux_getitimer(struct thread *td, struc
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)
{
@@ -1080,6 +1081,7 @@ linux_nice(struct thread *td, struct lin
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)
@@ -1209,6 +1211,7 @@ linux_setrlimit(struct thread *td, struc
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)
{
@@ -1251,6 +1254,7 @@ linux_old_getrlimit(struct thread *td, s
#endif
return (copyout(&rlim, args->rlim, sizeof(rlim)));
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
linux_getrlimit(struct thread *td, struct linux_getrlimit_args *args)
Modified: user/dchagin/lemul/sys/compat/linux/linux_signal.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_signal.c Sun May 5 17:25:39 2013 (r250279)
+++ user/dchagin/lemul/sys/compat/linux/linux_signal.c Sun May 5 17:27:58 2013 (r250280)
@@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
static int linux_do_tkill(struct thread *td, struct thread *tdt,
ksiginfo_t *ksi);
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
void
linux_to_bsd_sigset(l_sigset_t *lss, sigset_t *bss)
{
@@ -91,6 +92,7 @@ bsd_to_linux_sigset(sigset_t *bss, l_sig
}
}
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
static void
linux_to_bsd_sigaction(l_sigaction_t *lsa, struct sigaction *bsa)
@@ -175,7 +177,7 @@ linux_do_sigaction(struct thread *td, in
return (0);
}
-
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_signal(struct thread *td, struct linux_signal_args *args)
{
@@ -197,6 +199,7 @@ linux_signal(struct thread *td, struct l
return (error);
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
linux_rt_sigaction(struct thread *td, struct linux_rt_sigaction_args *args)
@@ -266,6 +269,7 @@ linux_do_sigprocmask(struct thread *td,
return (error);
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_sigprocmask(struct thread *td, struct linux_sigprocmask_args *args)
{
@@ -297,6 +301,7 @@ linux_sigprocmask(struct thread *td, str
return (error);
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
int
linux_rt_sigprocmask(struct thread *td, struct linux_rt_sigprocmask_args *args)
@@ -331,6 +336,7 @@ linux_rt_sigprocmask(struct thread *td,
return (error);
}
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
int
linux_sgetmask(struct thread *td, struct linux_sgetmask_args *args)
{
@@ -374,9 +380,6 @@ linux_ssetmask(struct thread *td, struct
return (0);
}
-/*
- * MPSAFE
- */
int
linux_sigpending(struct thread *td, struct linux_sigpending_args *args)
{
@@ -399,6 +402,7 @@ linux_sigpending(struct thread *td, stru
mask = lset.__bits[0];
return (copyout(&mask, args->mask, sizeof(mask)));
}
+#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
/*
* MPSAFE
Modified: user/dchagin/lemul/sys/compat/linux/linux_stats.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_stats.c Sun May 5 17:25:39 2013 (r250279)
+++ user/dchagin/lemul/sys/compat/linux/linux_stats.c Sun May 5 17:27:58 2013 (r250280)
@@ -251,6 +251,7 @@ linux_newfstat(struct thread *td, struct
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 li
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 l
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
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)
More information about the svn-src-user
mailing list