Page MenuHomeFreeBSD

D27099.diff
No OneTemporary

D27099.diff

Index: head/sys/amd64/linux/linux_dummy.c
===================================================================
--- head/sys/amd64/linux/linux_dummy.c
+++ head/sys/amd64/linux/linux_dummy.c
@@ -1,188 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2013 Dmitry Chagin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/sdt.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-
-#include <amd64/linux/linux.h>
-#include <amd64/linux/linux_proto.h>
-#include <compat/linux/linux_dtrace.h>
-#include <compat/linux/linux_util.h>
-
-/* DTrace init */
-LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
-
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(epoll_ctl_old);
-UNIMPLEMENTED(epoll_wait_old);
-UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(tuxcall);
-UNIMPLEMENTED(security);
-UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(uselib);
-UNIMPLEMENTED(vserver);
-
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(sysfs);
-DUMMY(vhangup);
-DUMMY(modify_ldt);
-DUMMY(pivot_root);
-DUMMY(adjtimex);
-DUMMY(swapoff);
-DUMMY(init_module);
-DUMMY(ioperm);
-DUMMY(delete_module);
-DUMMY(quotactl);
-DUMMY(readahead);
-DUMMY(io_setup);
-DUMMY(io_destroy);
-DUMMY(io_getevents);
-DUMMY(io_submit);
-DUMMY(io_cancel);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(restart_syscall);
-DUMMY(semtimedop);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
-DUMMY(mq_open);
-DUMMY(mq_unlink);
-DUMMY(mq_timedsend);
-DUMMY(mq_timedreceive);
-DUMMY(mq_notify);
-DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.15: */
-DUMMY(kexec_file_load);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
-/* Linux 4.11: */
-DUMMY(statx);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
-/* Linux 5.0: */
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s) \
-int \
-linux_ ## s ## xattr( \
- struct thread *td, struct linux_ ## s ## xattr_args *arg) \
-{ \
- \
- return (EOPNOTSUPP); \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
Index: head/sys/amd64/linux/linux_dummy_machdep.c
===================================================================
--- head/sys/amd64/linux/linux_dummy_machdep.c
+++ head/sys/amd64/linux/linux_dummy_machdep.c
@@ -0,0 +1,74 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2013 Dmitry Chagin
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/sdt.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+
+#include <amd64/linux/linux.h>
+#include <amd64/linux/linux_proto.h>
+#include <compat/linux/linux_dtrace.h>
+#include <compat/linux/linux_util.h>
+
+/* DTrace init */
+LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
+
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c (or
+ * sys/x86/linux/linux_dummy_x86.c).
+ */
+
+UNIMPLEMENTED(get_thread_area);
+UNIMPLEMENTED(set_thread_area);
+UNIMPLEMENTED(uselib);
+
+DUMMY(modify_ldt);
+
+DUMMY(ioperm);
+DUMMY(io_setup);
+DUMMY(io_destroy);
+DUMMY(io_getevents);
+DUMMY(io_submit);
+DUMMY(io_cancel);
+DUMMY(mq_open);
+DUMMY(mq_unlink);
+DUMMY(mq_timedsend);
+DUMMY(mq_timedreceive);
+DUMMY(mq_notify);
+DUMMY(mq_getsetattr);
+DUMMY(readahead);
+DUMMY(restart_syscall);
+DUMMY(semtimedop);
+/* Linux 3.15: */
+DUMMY(kexec_file_load);
Index: head/sys/amd64/linux32/linux32_dummy.c
===================================================================
--- head/sys/amd64/linux32/linux32_dummy.c
+++ head/sys/amd64/linux32/linux32_dummy.c
@@ -43,119 +43,29 @@
/* DTrace init */
LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
-UNIMPLEMENTED(afs_syscall);
UNIMPLEMENTED(break);
-UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
UNIMPLEMENTED(ftime);
-UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(getpmsg);
UNIMPLEMENTED(gtty);
UNIMPLEMENTED(stty);
UNIMPLEMENTED(lock);
UNIMPLEMENTED(mpx);
-UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
UNIMPLEMENTED(prof);
UNIMPLEMENTED(profil);
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
UNIMPLEMENTED(ulimit);
-UNIMPLEMENTED(vserver);
DUMMY(stime);
DUMMY(olduname);
DUMMY(uname);
-DUMMY(vhangup);
-DUMMY(swapoff);
-DUMMY(adjtimex);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(quotactl);
DUMMY(bdflush);
-DUMMY(sysfs);
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(pivot_root);
DUMMY(ptrace);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
DUMMY(mq_open);
DUMMY(mq_unlink);
DUMMY(mq_timedsend);
DUMMY(mq_timedreceive);
DUMMY(mq_notify);
DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
/* Linux 4.11: */
-DUMMY(statx);
DUMMY(arch_prctl);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
/* Linux 5.0: */
DUMMY(clock_gettime64);
DUMMY(clock_settime64);
@@ -177,28 +87,3 @@
DUMMY(rt_sigtimedwait_time64);
DUMMY(futex_time64);
DUMMY(sched_rr_get_interval_time64);
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s) \
-int \
-linux_ ## s ## xattr( \
- struct thread *td, struct linux_ ## s ## xattr_args *arg) \
-{ \
- \
- return (EOPNOTSUPP); \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
Index: head/sys/arm64/linux/linux_dummy.c
===================================================================
--- head/sys/arm64/linux/linux_dummy.c
+++ head/sys/arm64/linux/linux_dummy.c
@@ -1,167 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2013 Dmitry Chagin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "opt_compat.h"
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/sdt.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-
-#include <arm64/linux/linux.h>
-#include <arm64/linux/linux_proto.h>
-#include <compat/linux/linux_dtrace.h>
-#include <compat/linux/linux_util.h>
-
-// LINUXTODO: deduplicate arm64 dummy against other archs?
-// LINUXTODO: review/update/add unimplemented syscalls
-
-/* DTrace init */
-LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
-
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(epoll_ctl_old);
-UNIMPLEMENTED(epoll_wait_old);
-UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(security);
-UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(tuxcall);
-UNIMPLEMENTED(uselib);
-UNIMPLEMENTED(vserver);
-
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(vhangup);
-DUMMY(pivot_root);
-DUMMY(adjtimex);
-DUMMY(swapoff);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(semtimedop);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
-DUMMY(mq_open);
-DUMMY(mq_unlink);
-DUMMY(mq_timedsend);
-DUMMY(mq_timedreceive);
-DUMMY(mq_notify);
-DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
-
-#define DUMMY_XATTR(s) \
-int \
-linux_ ## s ## xattr( \
- struct thread *td, struct linux_ ## s ## xattr_args *arg) \
-{ \
- \
- return (EOPNOTSUPP); \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
Index: head/sys/arm64/linux/linux_dummy_machdep.c
===================================================================
--- head/sys/arm64/linux/linux_dummy_machdep.c
+++ head/sys/arm64/linux/linux_dummy_machdep.c
@@ -0,0 +1,63 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2013 Dmitry Chagin
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_compat.h"
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/sdt.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+
+#include <arm64/linux/linux.h>
+#include <arm64/linux/linux_proto.h>
+#include <compat/linux/linux_dtrace.h>
+#include <compat/linux/linux_util.h>
+
+/* DTrace init */
+LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
+
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c.
+ */
+
+UNIMPLEMENTED(get_thread_area);
+UNIMPLEMENTED(set_thread_area);
+UNIMPLEMENTED(uselib);
+
+DUMMY(mq_open);
+DUMMY(mq_unlink);
+DUMMY(mq_timedsend);
+DUMMY(mq_timedreceive);
+DUMMY(mq_notify);
+DUMMY(mq_getsetattr);
+DUMMY(semtimedop);
Index: head/sys/compat/linux/linux_dummy.c
===================================================================
--- head/sys/compat/linux/linux_dummy.c
+++ head/sys/compat/linux/linux_dummy.c
@@ -0,0 +1,159 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2013 Dmitry Chagin
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_compat.h"
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/sdt.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+
+#ifdef COMPAT_LINUX32
+#include <machine/../linux32/linux.h>
+#include <machine/../linux32/linux32_proto.h>
+#else
+#include <machine/../linux/linux.h>
+#include <machine/../linux/linux_proto.h>
+#endif
+
+#include <compat/linux/linux_dtrace.h>
+#include <compat/linux/linux_util.h>
+
+/* DTrace init */
+LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
+
+UNIMPLEMENTED(afs_syscall);
+UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
+UNIMPLEMENTED(epoll_ctl_old);
+UNIMPLEMENTED(epoll_wait_old);
+UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
+UNIMPLEMENTED(getpmsg);
+UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
+UNIMPLEMENTED(putpmsg);
+UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
+UNIMPLEMENTED(security);
+UNIMPLEMENTED(vserver);
+
+DUMMY(setfsuid);
+DUMMY(setfsgid);
+DUMMY(vhangup);
+DUMMY(pivot_root);
+DUMMY(adjtimex);
+DUMMY(swapoff);
+DUMMY(init_module);
+DUMMY(delete_module);
+DUMMY(lookup_dcookie);
+DUMMY(remap_file_pages);
+DUMMY(mbind);
+DUMMY(get_mempolicy);
+DUMMY(set_mempolicy);
+DUMMY(kexec_load);
+/* Linux 2.6.11: */
+DUMMY(add_key);
+DUMMY(request_key);
+DUMMY(keyctl);
+/* Linux 2.6.13: */
+DUMMY(ioprio_set);
+DUMMY(ioprio_get);
+DUMMY(inotify_add_watch);
+DUMMY(inotify_rm_watch);
+/* Linux 2.6.16: */
+DUMMY(migrate_pages);
+DUMMY(unshare);
+/* Linux 2.6.17: */
+DUMMY(tee);
+DUMMY(vmsplice);
+/* Linux 2.6.18: */
+DUMMY(move_pages);
+/* Linux 2.6.27: */
+DUMMY(signalfd4);
+DUMMY(inotify_init1);
+/* Linux 2.6.31: */
+DUMMY(perf_event_open);
+/* Linux 2.6.36: */
+DUMMY(fanotify_init);
+DUMMY(fanotify_mark);
+/* Linux 2.6.39: */
+DUMMY(name_to_handle_at);
+DUMMY(open_by_handle_at);
+DUMMY(clock_adjtime);
+/* Linux 3.0: */
+DUMMY(setns);
+/* Linux 3.2: */
+DUMMY(process_vm_readv);
+DUMMY(process_vm_writev);
+/* Linux 3.5: */
+DUMMY(kcmp);
+/* Linux 3.8: */
+DUMMY(finit_module);
+DUMMY(sched_setattr);
+DUMMY(sched_getattr);
+/* Linux 3.17: */
+DUMMY(seccomp);
+/* Linux 3.18: */
+DUMMY(bpf);
+/* Linux 3.19: */
+DUMMY(execveat);
+/* Linux 4.2: */
+DUMMY(userfaultfd);
+/* Linux 4.3: */
+DUMMY(membarrier);
+/* Linux 4.4: */
+DUMMY(mlock2);
+/* Linux 4.6: */
+DUMMY(preadv2);
+DUMMY(pwritev2);
+/* Linux 4.8: */
+DUMMY(pkey_mprotect);
+DUMMY(pkey_alloc);
+DUMMY(pkey_free);
+
+#define DUMMY_XATTR(s) \
+int \
+linux_ ## s ## xattr( \
+ struct thread *td, struct linux_ ## s ## xattr_args *arg) \
+{ \
+ \
+ return (EOPNOTSUPP); \
+}
+DUMMY_XATTR(set);
+DUMMY_XATTR(lset);
+DUMMY_XATTR(fset);
+DUMMY_XATTR(get);
+DUMMY_XATTR(lget);
+DUMMY_XATTR(fget);
+DUMMY_XATTR(list);
+DUMMY_XATTR(llist);
+DUMMY_XATTR(flist);
+DUMMY_XATTR(remove);
+DUMMY_XATTR(lremove);
+DUMMY_XATTR(fremove);
Index: head/sys/conf/files.amd64
===================================================================
--- head/sys/conf/files.amd64
+++ head/sys/conf/files.amd64
@@ -412,6 +412,7 @@
dependency "linux32_assym.h"
amd64/linux32/linux32_sysent.c optional compat_linux32
amd64/linux32/linux32_sysvec.c optional compat_linux32
+compat/linux/linux_dummy.c optional compat_linux32
compat/linux/linux_emul.c optional compat_linux32
compat/linux/linux_errno.c optional compat_linux32
compat/linux/linux_file.c optional compat_linux32
@@ -435,6 +436,7 @@
compat/linux/linux_common.c optional compat_linux32
compat/linux/linux_event.c optional compat_linux32
compat/linux/linux.c optional compat_linux32
+x86/linux/linux_dummy_x86.c optional compat_linux32
dev/amr/amr_linux.c optional compat_linux32 amr
dev/mfi/mfi_linux.c optional compat_linux32 mfi
compat/ndis/winx64_wrap.S optional ndisapi pci
Index: head/sys/conf/files.i386
===================================================================
--- head/sys/conf/files.i386
+++ head/sys/conf/files.i386
@@ -52,6 +52,7 @@
cddl/dev/dtrace/i386/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}"
compat/linprocfs/linprocfs.c optional linprocfs
compat/linsysfs/linsysfs.c optional linsysfs
+compat/linux/linux_dummy.c optional compat_linux
compat/linux/linux_event.c optional compat_linux
compat/linux/linux_emul.c optional compat_linux
compat/linux/linux_errno.c optional compat_linux
@@ -200,7 +201,7 @@
i386/i386/vm_machdep.c standard
i386/linux/imgact_linux.c optional compat_linux
i386/linux/linux_copyout.c optional compat_linux
-i386/linux/linux_dummy.c optional compat_linux
+i386/linux/linux_dummy_machdep.c optional compat_linux
i386/linux/linux_machdep.c optional compat_linux
i386/linux/linux_ptrace.c optional compat_linux
i386/linux/linux_sysent.c optional compat_linux
@@ -240,6 +241,7 @@
x86/isa/elcr.c optional atpic | apic
x86/isa/isa.c optional isa
x86/isa/isa_dma.c optional isa
+x86/linux/linux_dummy_x86.c optional compat_linux
x86/x86/io_apic.c optional apic
x86/x86/local_apic.c optional apic
x86/x86/mptable.c optional apic
Index: head/sys/i386/linux/linux_dummy.c
===================================================================
--- head/sys/i386/linux/linux_dummy.c
+++ head/sys/i386/linux/linux_dummy.c
@@ -1,200 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 1994-1995 Søren Schmidt
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/sdt.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-
-#include <i386/linux/linux.h>
-#include <i386/linux/linux_proto.h>
-#include <compat/linux/linux_dtrace.h>
-#include <compat/linux/linux_util.h>
-
-/* DTrace init */
-LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
-
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(break);
-UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(ftime);
-UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(gtty);
-UNIMPLEMENTED(stty);
-UNIMPLEMENTED(lock);
-UNIMPLEMENTED(mpx);
-UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(prof);
-UNIMPLEMENTED(profil);
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(ulimit);
-UNIMPLEMENTED(vserver);
-
-DUMMY(stime);
-DUMMY(fstat);
-DUMMY(olduname);
-DUMMY(uname);
-DUMMY(vhangup);
-DUMMY(vm86old);
-DUMMY(swapoff);
-DUMMY(adjtimex);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(quotactl);
-DUMMY(bdflush);
-DUMMY(sysfs);
-DUMMY(vm86);
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(pivot_root);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
-/* Linux 4.11: */
-DUMMY(statx);
-DUMMY(arch_prctl);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
-/* Linux 5.0: */
-DUMMY(clock_gettime64);
-DUMMY(clock_settime64);
-DUMMY(clock_adjtime64);
-DUMMY(clock_getres_time64);
-DUMMY(clock_nanosleep_time64);
-DUMMY(timer_gettime64);
-DUMMY(timer_settime64);
-DUMMY(timerfd_gettime64);
-DUMMY(timerfd_settime64);
-DUMMY(utimensat_time64);
-DUMMY(pselect6_time64);
-DUMMY(ppoll_time64);
-DUMMY(io_pgetevents_time64);
-DUMMY(recvmmsg_time64);
-DUMMY(mq_timedsend_time64);
-DUMMY(mq_timedreceive_time64);
-DUMMY(semtimedop_time64);
-DUMMY(rt_sigtimedwait_time64);
-DUMMY(futex_time64);
-DUMMY(sched_rr_get_interval_time64);
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s) \
-int \
-linux_ ## s ## xattr( \
- struct thread *td, struct linux_ ## s ## xattr_args *arg) \
-{ \
- \
- return (EOPNOTSUPP); \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
Index: head/sys/i386/linux/linux_dummy_machdep.c
===================================================================
--- head/sys/i386/linux/linux_dummy_machdep.c
+++ head/sys/i386/linux/linux_dummy_machdep.c
@@ -0,0 +1,91 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 1994-1995 Søren Schmidt
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/sdt.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+
+#include <i386/linux/linux.h>
+#include <i386/linux/linux_proto.h>
+#include <compat/linux/linux_dtrace.h>
+#include <compat/linux/linux_util.h>
+
+/* DTrace init */
+LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
+
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c (or
+ * sys/x86/linux/linux_dummy_x86.c).
+ */
+
+UNIMPLEMENTED(break);
+UNIMPLEMENTED(ftime);
+UNIMPLEMENTED(gtty);
+UNIMPLEMENTED(stty);
+UNIMPLEMENTED(lock);
+UNIMPLEMENTED(mpx);
+UNIMPLEMENTED(prof);
+UNIMPLEMENTED(profil);
+UNIMPLEMENTED(ulimit);
+
+DUMMY(bdflush);
+DUMMY(fstat);
+DUMMY(olduname);
+DUMMY(stime);
+DUMMY(uname);
+DUMMY(vm86);
+DUMMY(vm86old);
+/* Linux 4.11: */
+DUMMY(arch_prctl);
+/* Linux 5.0: */
+DUMMY(clock_gettime64);
+DUMMY(clock_settime64);
+DUMMY(clock_adjtime64);
+DUMMY(clock_getres_time64);
+DUMMY(clock_nanosleep_time64);
+DUMMY(timer_gettime64);
+DUMMY(timer_settime64);
+DUMMY(timerfd_gettime64);
+DUMMY(timerfd_settime64);
+DUMMY(utimensat_time64);
+DUMMY(pselect6_time64);
+DUMMY(ppoll_time64);
+DUMMY(io_pgetevents_time64);
+DUMMY(recvmmsg_time64);
+DUMMY(mq_timedsend_time64);
+DUMMY(mq_timedreceive_time64);
+DUMMY(semtimedop_time64);
+DUMMY(rt_sigtimedwait_time64);
+DUMMY(futex_time64);
+DUMMY(sched_rr_get_interval_time64);
Index: head/sys/modules/linux/Makefile
===================================================================
--- head/sys/modules/linux/Makefile
+++ head/sys/modules/linux/Makefile
@@ -6,6 +6,9 @@
.endif
.PATH: ${SRCTOP}/sys/compat/linux ${SRCTOP}/sys/${MACHINE_CPUARCH}/linux${SFX}
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+.PATH: ${SRCTOP}/sys/x86/linux
+.endif
VDSO= linux${SFX}_vdso
@@ -18,6 +21,9 @@
linux_timer.c linux_vdso.c \
opt_inet6.h opt_compat.h opt_posix.h opt_usb.h vnode_if.h \
device_if.h bus_if.h
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+SRCS+= linux_dummy_x86.c
+.endif
.if ${MACHINE_CPUARCH} == "amd64"
SRCS+= linux${SFX}_support.s
.else
Index: head/sys/modules/linux64/Makefile
===================================================================
--- head/sys/modules/linux64/Makefile
+++ head/sys/modules/linux64/Makefile
@@ -1,11 +1,14 @@
# $FreeBSD$
.PATH: ${SRCTOP}/sys/compat/linux ${SRCTOP}/sys/${MACHINE}/linux
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+.PATH: ${SRCTOP}/sys/x86/linux
+.endif
VDSO= linux_vdso
KMOD= linux64
-SRCS= linux_fork.c linux_dummy.c linux_file.c linux_event.c \
+SRCS= linux_fork.c linux_dummy_machdep.c linux_file.c linux_event.c \
linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \
linux_machdep.c linux_misc.c linux_ptrace.c linux_signal.c \
linux_socket.c linux_stats.c linux_sysctl.c linux_sysent.c \
@@ -13,6 +16,9 @@
opt_compat.h opt_inet6.h opt_posix.h opt_usb.h \
vnode_if.h device_if.h bus_if.h \
linux_support.s
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+SRCS+= linux_dummy_x86.c
+.endif
DPSRCS= assym.inc linux_genassym.c
# XXX: for assym.inc
Index: head/sys/modules/linux_common/Makefile
===================================================================
--- head/sys/modules/linux_common/Makefile
+++ head/sys/modules/linux_common/Makefile
@@ -4,7 +4,7 @@
KMOD= linux_common
SRCS= linux_common.c linux_mib.c linux_mmap.c linux_util.c linux_emul.c \
- linux_errno.c \
+ linux_dummy.c linux_errno.c \
linux.c device_if.h vnode_if.h bus_if.h opt_inet6.h
EXPORT_SYMS=
Index: head/sys/x86/linux/linux_dummy_x86.c
===================================================================
--- head/sys/x86/linux/linux_dummy_x86.c
+++ head/sys/x86/linux/linux_dummy_x86.c
@@ -0,0 +1,69 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2013 Dmitry Chagin
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_compat.h"
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/sdt.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+
+#ifdef COMPAT_LINUX32
+#include <machine/../linux32/linux.h>
+#include <machine/../linux32/linux32_proto.h>
+#else
+#include <machine/../linux/linux.h>
+#include <machine/../linux/linux_proto.h>
+#endif
+
+#include <compat/linux/linux_dtrace.h>
+#include <compat/linux/linux_util.h>
+
+/* DTrace init */
+LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
+
+DUMMY(sysfs);
+DUMMY(quotactl);
+/* Linux 2.6.13: */
+DUMMY(inotify_init);
+/* Linux 2.6.22: */
+DUMMY(signalfd);
+/* Linux 4.11: */
+DUMMY(statx);
+/* Linux 4.18: */
+DUMMY(io_pgetevents);
+DUMMY(rseq);
+/* Linux 5.0: */
+DUMMY(pidfd_send_signal);
+DUMMY(io_uring_setup);
+DUMMY(io_uring_enter);
+DUMMY(io_uring_register);

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 8, 5:46 AM (22 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14528926
Default Alt Text
D27099.diff (37 KB)

Event Timeline