1/*-
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (c) 2013 Dmitry Chagin <dchagin@FreeBSD.org>
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28#include <sys/param.h>
29#include <sys/systm.h>
30#include <sys/sdt.h>
31#include <sys/proc.h>
32
33/*
34 * Including linux vs linux32 here is arbitrary -- the syscall args structures
35 * (proto.h) are not dereferenced by the DUMMY stub implementations, and
36 * suitable for use by both native and compat32 entrypoints.
37 */
38#include <machine/../linux/linux.h>
39#include <machine/../linux/linux_proto.h>
40
41#include <compat/linux/linux_dtrace.h>
42#include <compat/linux/linux_util.h>
43
44/* DTrace init */
45LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
46
47UNIMPLEMENTED(afs_syscall);
48UNIMPLEMENTED(create_module);	/* Added in Linux 1.0 removed in 2.6. */
49UNIMPLEMENTED(epoll_ctl_old);
50UNIMPLEMENTED(epoll_wait_old);
51UNIMPLEMENTED(get_kernel_syms);	/* Added in Linux 1.0 removed in 2.6. */
52UNIMPLEMENTED(getpmsg);
53UNIMPLEMENTED(nfsservctl);	/* Added in Linux 2.2 removed in 3.1. */
54UNIMPLEMENTED(putpmsg);
55UNIMPLEMENTED(query_module);	/* Added in Linux 2.2 removed in 2.6. */
56UNIMPLEMENTED(security);
57UNIMPLEMENTED(vserver);
58
59DUMMY(setfsuid);
60DUMMY(setfsgid);
61DUMMY(vhangup);
62DUMMY(pivot_root);
63DUMMY(adjtimex);
64DUMMY(swapoff);
65DUMMY(init_module);
66DUMMY(delete_module);
67DUMMY(lookup_dcookie);
68DUMMY(remap_file_pages);
69DUMMY(mbind);
70DUMMY(get_mempolicy);
71DUMMY(set_mempolicy);
72DUMMY(kexec_load);
73/* Linux 2.6.11: */
74DUMMY(add_key);
75DUMMY(request_key);
76DUMMY(keyctl);
77/* Linux 2.6.13: */
78DUMMY(inotify_add_watch);
79DUMMY(inotify_rm_watch);
80/* Linux 2.6.16: */
81DUMMY(migrate_pages);
82DUMMY(unshare);
83/* Linux 2.6.17: */
84DUMMY(tee);
85DUMMY(vmsplice);
86/* Linux 2.6.18: */
87DUMMY(move_pages);
88/* Linux 2.6.27: */
89DUMMY(signalfd4);
90DUMMY(inotify_init1);
91/* Linux 2.6.31: */
92DUMMY(perf_event_open);
93/* Linux 2.6.36: */
94DUMMY(fanotify_init);
95DUMMY(fanotify_mark);
96/* Linux 2.6.39: */
97DUMMY(clock_adjtime);
98/* Linux 3.0: */
99DUMMY(setns);
100/* Linux 3.2: */
101DUMMY(process_vm_readv);
102DUMMY(process_vm_writev);
103/* Linux 3.5: */
104DUMMY(kcmp);
105/* Linux 3.8: */
106DUMMY(finit_module);
107DUMMY(sched_setattr);
108DUMMY(sched_getattr);
109/* Linux 3.18: */
110DUMMY(bpf);
111/* Linux 3.19: */
112DUMMY(execveat);
113/* Linux 4.2: */
114DUMMY(userfaultfd);
115/* Linux 4.3: */
116DUMMY(membarrier);
117/* Linux 4.4: */
118DUMMY(mlock2);
119/* Linux 4.6: */
120DUMMY(preadv2);
121DUMMY(pwritev2);
122/* Linux 4.8: */
123DUMMY(pkey_mprotect);
124DUMMY(pkey_alloc);
125DUMMY(pkey_free);
126/* Linux 4.18: */
127DUMMY(io_pgetevents);
128/* Linux 5.1: */
129DUMMY(pidfd_send_signal);
130DUMMY(io_uring_setup);
131DUMMY(io_uring_enter);
132DUMMY(io_uring_register);
133/* Linux 5.2: */
134DUMMY(open_tree);
135DUMMY(move_mount);
136DUMMY(fsopen);
137DUMMY(fsconfig);
138DUMMY(fsmount);
139DUMMY(fspick);
140/* Linux 5.3: */
141DUMMY(pidfd_open);
142/* Linux 5.6: */
143DUMMY(openat2);
144DUMMY(pidfd_getfd);
145/* Linux 5.10: */
146DUMMY(process_madvise);
147/* Linux 5.12: */
148DUMMY(mount_setattr);
149/* Linux 5.13: */
150DUMMY(landlock_create_ruleset);
151DUMMY(landlock_add_rule);
152DUMMY(landlock_restrict_self);
153/* Linux 5.14: */
154DUMMY(memfd_secret);
155DUMMY(quotactl_fd);
156/* Linux 5.15: */
157DUMMY(process_mrelease);
158/* Linux 5.16: */
159DUMMY(futex_waitv);
160DUMMY(set_mempolicy_home_node);
161/* Linux 6.5: */
162DUMMY(cachestat);
163/* Linux 6.6: */
164DUMMY(fchmodat2);
165