Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145151468
D15237.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
11 KB
Referenced Files
None
Subscribers
None
D15237.diff
View Options
Index: head/sys/amd64/linux/linux.h
===================================================================
--- head/sys/amd64/linux/linux.h
+++ head/sys/amd64/linux/linux.h
@@ -35,6 +35,8 @@
#include <compat/linux/linux.h>
#include <amd64/linux/linux_syscall.h>
+#define LINUX_LEGACY_SYSCALLS
+
/*
* debugging support
*/
Index: head/sys/amd64/linux32/linux.h
===================================================================
--- head/sys/amd64/linux32/linux.h
+++ head/sys/amd64/linux32/linux.h
@@ -38,6 +38,8 @@
#include <compat/linux/linux.h>
#include <amd64/linux32/linux32_syscall.h>
+#define LINUX_LEGACY_SYSCALLS
+
/*
* debugging support
*/
Index: head/sys/compat/linux/linux_event.c
===================================================================
--- head/sys/compat/linux/linux_event.c
+++ head/sys/compat/linux/linux_event.c
@@ -263,6 +263,7 @@
return (0);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_epoll_create(struct thread *td, struct linux_epoll_create_args *args)
{
@@ -276,6 +277,7 @@
return (epoll_create_common(td, 0));
}
+#endif
int
linux_epoll_create1(struct thread *td, struct linux_epoll_create1_args *args)
@@ -616,6 +618,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_epoll_wait(struct thread *td, struct linux_epoll_wait_args *args)
{
@@ -623,6 +626,7 @@
return (linux_epoll_wait_common(td, args->epfd, args->events,
args->maxevents, args->timeout, NULL));
}
+#endif
int
linux_epoll_pwait(struct thread *td, struct linux_epoll_pwait_args *args)
@@ -707,12 +711,14 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_eventfd(struct thread *td, struct linux_eventfd_args *args)
{
return (eventfd_create(td, args->initval, 0));
}
+#endif
int
linux_eventfd2(struct thread *td, struct linux_eventfd2_args *args)
Index: head/sys/compat/linux/linux_file.c
===================================================================
--- head/sys/compat/linux/linux_file.c
+++ head/sys/compat/linux/linux_file.c
@@ -68,6 +68,7 @@
static int linux_getdents_error(struct thread *, int, int);
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_creat(struct thread *td, struct linux_creat_args *args)
{
@@ -84,8 +85,8 @@
LFREEPATH(path);
return (error);
}
+#endif
-
static int
linux_common_open(struct thread *td, int dirfd, char *path, int l_flags, int mode)
{
@@ -165,7 +166,11 @@
done:
#ifdef DEBUG
+#ifdef LINUX_LEGACY_SYSCALLS
if (ldebug(open))
+#else
+ if (ldebug(openat))
+#endif
printf(LMSG("open returns error %d"), error);
#endif
LFREEPATH(path);
@@ -191,6 +196,7 @@
return (linux_common_open(td, dfd, path, args->flags, args->mode));
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_open(struct thread *td, struct linux_open_args *args)
{
@@ -207,6 +213,7 @@
#endif
return (linux_common_open(td, AT_FDCWD, path, args->flags, args->mode));
}
+#endif
int
linux_lseek(struct thread *td, struct linux_lseek_args *args)
@@ -305,6 +312,7 @@
roundup(offsetof(struct l_dirent64, d_name) + (namlen) + 1, \
sizeof(uint64_t))
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_getdents(struct thread *td, struct linux_getdents_args *args)
{
@@ -384,6 +392,7 @@
free(buf, M_TEMP);
return (error);
}
+#endif
int
linux_getdents64(struct thread *td, struct linux_getdents64_args *args)
@@ -517,6 +526,7 @@
* These exist mainly for hooks for doing /compat/linux translation.
*/
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_access(struct thread *td, struct linux_access_args *args)
{
@@ -539,6 +549,7 @@
return (error);
}
+#endif
int
linux_faccessat(struct thread *td, struct linux_faccessat_args *args)
@@ -564,6 +575,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_unlink(struct thread *td, struct linux_unlink_args *args)
{
@@ -590,6 +602,7 @@
LFREEPATH(path);
return (error);
}
+#endif
int
linux_unlinkat(struct thread *td, struct linux_unlinkat_args *args)
@@ -639,6 +652,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_chmod(struct thread *td, struct linux_chmod_args *args)
{
@@ -656,6 +670,7 @@
LFREEPATH(path);
return (error);
}
+#endif
int
linux_fchmodat(struct thread *td, struct linux_fchmodat_args *args)
@@ -676,6 +691,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_mkdir(struct thread *td, struct linux_mkdir_args *args)
{
@@ -692,6 +708,7 @@
LFREEPATH(path);
return (error);
}
+#endif
int
linux_mkdirat(struct thread *td, struct linux_mkdirat_args *args)
@@ -711,6 +728,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_rmdir(struct thread *td, struct linux_rmdir_args *args)
{
@@ -751,6 +769,7 @@
LFREEPATH(to);
return (error);
}
+#endif
int
linux_renameat(struct thread *td, struct linux_renameat_args *args)
@@ -778,6 +797,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_symlink(struct thread *td, struct linux_symlink_args *args)
{
@@ -801,6 +821,7 @@
LFREEPATH(to);
return (error);
}
+#endif
int
linux_symlinkat(struct thread *td, struct linux_symlinkat_args *args)
@@ -828,6 +849,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_readlink(struct thread *td, struct linux_readlink_args *args)
{
@@ -846,6 +868,7 @@
LFREEPATH(name);
return (error);
}
+#endif
int
linux_readlinkat(struct thread *td, struct linux_readlinkat_args *args)
@@ -913,6 +936,7 @@
return (kern_ftruncate(td, args->fd, args->length));
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_link(struct thread *td, struct linux_link_args *args)
{
@@ -937,6 +961,7 @@
LFREEPATH(to);
return (error);
}
+#endif
int
linux_linkat(struct thread *td, struct linux_linkat_args *args)
@@ -1138,6 +1163,7 @@
}
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_umount(struct thread *td, struct linux_umount_args *args)
{
@@ -1147,6 +1173,7 @@
bsd.flags = args->flags; /* XXX correct? */
return (sys_unmount(td, &bsd));
}
+#endif
/*
* fcntl family of syscalls
@@ -1458,6 +1485,7 @@
}
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_chown(struct thread *td, struct linux_chown_args *args)
{
@@ -1475,6 +1503,7 @@
LFREEPATH(path);
return (error);
}
+#endif
int
linux_fchownat(struct thread *td, struct linux_fchownat_args *args)
@@ -1501,6 +1530,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_lchown(struct thread *td, struct linux_lchown_args *args)
{
@@ -1518,6 +1548,7 @@
LFREEPATH(path);
return (error);
}
+#endif
static int
convert_fadvice(int advice)
@@ -1566,6 +1597,7 @@
}
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_pipe(struct thread *td, struct linux_pipe_args *args)
{
@@ -1589,6 +1621,7 @@
return (error);
}
+#endif
int
linux_pipe2(struct thread *td, struct linux_pipe2_args *args)
Index: head/sys/compat/linux/linux_fork.c
===================================================================
--- head/sys/compat/linux/linux_fork.c
+++ head/sys/compat/linux/linux_fork.c
@@ -64,6 +64,7 @@
#include <compat/linux/linux_misc.h>
#include <compat/linux/linux_util.h>
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_fork(struct thread *td, struct linux_fork_args *args)
{
@@ -135,6 +136,7 @@
return (0);
}
+#endif
static int
linux_clone_proc(struct thread *td, struct linux_clone_args *args)
Index: head/sys/compat/linux/linux_misc.c
===================================================================
--- head/sys/compat/linux/linux_misc.c
+++ head/sys/compat/linux/linux_misc.c
@@ -191,6 +191,7 @@
return (copyout(&sysinfo, args->info, sizeof(sysinfo)));
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_alarm(struct thread *td, struct linux_alarm_args *args)
{
@@ -225,6 +226,7 @@
td->td_retval[0] = old_it.it_value.tv_sec;
return (0);
}
+#endif
int
linux_brk(struct thread *td, struct linux_brk_args *args)
@@ -494,6 +496,7 @@
#endif /* __i386__ */
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_select(struct thread *td, struct linux_select_args *args)
{
@@ -585,6 +588,7 @@
#endif
return (error);
}
+#endif
int
linux_mremap(struct thread *td, struct linux_mremap_args *args)
@@ -646,6 +650,7 @@
args->fl & ~LINUX_MS_SYNC));
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_time(struct thread *td, struct linux_time_args *args)
{
@@ -665,6 +670,7 @@
td->td_retval[0] = tm;
return (0);
}
+#endif
struct l_times_argv {
l_clock_t tms_utime;
@@ -761,6 +767,7 @@
l_time_t l_modtime;
};
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_utime(struct thread *td, struct linux_utime_args *args)
{
@@ -794,7 +801,9 @@
LFREEPATH(fname);
return (error);
}
+#endif
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_utimes(struct thread *td, struct linux_utimes_args *args)
{
@@ -827,6 +836,7 @@
LFREEPATH(fname);
return (error);
}
+#endif
static int
linux_utimensat_nsec_valid(l_long nsec)
@@ -921,6 +931,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_futimesat(struct thread *td, struct linux_futimesat_args *args)
{
@@ -953,6 +964,7 @@
LFREEPATH(fname);
return (error);
}
+#endif
int
linux_common_wait(struct thread *td, int pid, int *status,
@@ -1094,6 +1106,7 @@
return (error);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_mknod(struct thread *td, struct linux_mknod_args *args)
{
@@ -1142,6 +1155,7 @@
LFREEPATH(path);
return (error);
}
+#endif
int
linux_mknodat(struct thread *td, struct linux_mknodat_args *args)
Index: head/sys/compat/linux/linux_stats.c
===================================================================
--- head/sys/compat/linux/linux_stats.c
+++ head/sys/compat/linux/linux_stats.c
@@ -81,6 +81,7 @@
translate_vnhook_major_minor));
}
+#ifdef LINUX_LEGACY_SYSCALLS
static int
linux_kern_stat(struct thread *td, char *path, enum uio_seg pathseg,
struct stat *sbp)
@@ -97,6 +98,7 @@
return (linux_kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
pathseg, sbp));
}
+#endif
static void
translate_fd_major_minor(struct thread *td, int fd, struct stat *buf)
@@ -173,6 +175,7 @@
return (copyout(&tbuf, ubuf, sizeof(tbuf)));
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_newstat(struct thread *td, struct linux_newstat_args *args)
{
@@ -214,6 +217,7 @@
return (error);
return (newstat_copyout(&sb, args->buf));
}
+#endif
int
linux_newfstat(struct thread *td, struct linux_newfstat_args *args)
@@ -524,6 +528,7 @@
char f_fpack[6];
};
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_ustat(struct thread *td, struct linux_ustat_args *args)
{
@@ -534,6 +539,7 @@
return (EOPNOTSUPP);
}
+#endif
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
Index: head/sys/compat/linux/linux_sysctl.c
===================================================================
--- head/sys/compat/linux/linux_sysctl.c
+++ head/sys/compat/linux/linux_sysctl.c
@@ -115,6 +115,7 @@
return (0);
}
+#ifdef LINUX_LEGACY_SYSCALLS
int
linux_sysctl(struct thread *td, struct linux_sysctl_args *args)
{
@@ -191,3 +192,4 @@
LIN_SDT_PROBE1(sysctl, linux_sysctl, return, ENOTDIR);
return (ENOTDIR);
}
+#endif
Index: head/sys/i386/linux/linux.h
===================================================================
--- head/sys/i386/linux/linux.h
+++ head/sys/i386/linux/linux.h
@@ -35,6 +35,8 @@
#include <compat/linux/linux.h>
#include <i386/linux/linux_syscall.h>
+#define LINUX_LEGACY_SYSCALLS
+
/*
* debugging support
*/
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Feb 17, 12:31 PM (2 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28813470
Default Alt Text
D15237.diff (11 KB)
Attached To
Mode
D15237: linuxulator: do not include legacy syscalls on arm64
Attached
Detach File
Event Timeline
Log In to Comment