1283424Sdchagin/*-
2330997Semaste * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3330997Semaste *
4283424Sdchagin * Copyright (c) 2013 Dmitry Chagin
5283424Sdchagin * All rights reserved.
6283424Sdchagin *
7283424Sdchagin * Redistribution and use in source and binary forms, with or without
8283424Sdchagin * modification, are permitted provided that the following conditions
9283424Sdchagin * are met:
10283424Sdchagin * 1. Redistributions of source code must retain the above copyright
11330997Semaste *    notice, this list of conditions and the following disclaimer.
12283424Sdchagin * 2. Redistributions in binary form must reproduce the above copyright
13283424Sdchagin *    notice, this list of conditions and the following disclaimer in the
14283424Sdchagin *    documentation and/or other materials provided with the distribution.
15283424Sdchagin *
16330997Semaste * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17330997Semaste * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18330997Semaste * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19330997Semaste * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20330997Semaste * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21330997Semaste * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22330997Semaste * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23330997Semaste * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24330997Semaste * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25330997Semaste * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26330997Semaste * SUCH DAMAGE.
27283424Sdchagin */
28283424Sdchagin
29283424Sdchagin#include <sys/cdefs.h>
30283424Sdchagin__FBSDID("$FreeBSD: stable/11/sys/amd64/linux/linux_dummy.c 346839 2019-04-28 14:19:31Z dchagin $");
31283424Sdchagin
32283424Sdchagin#include "opt_compat.h"
33283424Sdchagin
34283424Sdchagin#include <sys/param.h>
35283424Sdchagin#include <sys/kernel.h>
36283424Sdchagin#include <sys/sdt.h>
37283424Sdchagin#include <sys/systm.h>
38283424Sdchagin#include <sys/proc.h>
39283424Sdchagin
40283424Sdchagin#include <amd64/linux/linux.h>
41283424Sdchagin#include <amd64/linux/linux_proto.h>
42283424Sdchagin#include <compat/linux/linux_dtrace.h>
43283424Sdchagin#include <compat/linux/linux_util.h>
44283424Sdchagin
45283424Sdchagin/* DTrace init */
46283424SdchaginLIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
47283424Sdchagin
48316701SmmokhiUNIMPLEMENTED(afs_syscall);
49346816SdchaginUNIMPLEMENTED(create_module);	/* Added in Linux 1.0 removed in 2.6. */
50316701SmmokhiUNIMPLEMENTED(epoll_ctl_old);
51316701SmmokhiUNIMPLEMENTED(epoll_wait_old);
52346816SdchaginUNIMPLEMENTED(get_kernel_syms);	/* Added in Linux 1.0 removed in 2.6. */
53316701SmmokhiUNIMPLEMENTED(get_thread_area);
54316701SmmokhiUNIMPLEMENTED(getpmsg);
55346816SdchaginUNIMPLEMENTED(nfsservctl);	/* Added in Linux 2.2 removed in 3.1. */
56316701SmmokhiUNIMPLEMENTED(putpmsg);
57346816SdchaginUNIMPLEMENTED(query_module);	/* Added in Linux 2.2 removed in 2.6. */
58316701SmmokhiUNIMPLEMENTED(security);
59316701SmmokhiUNIMPLEMENTED(set_thread_area);
60316701SmmokhiUNIMPLEMENTED(tuxcall);
61316701SmmokhiUNIMPLEMENTED(uselib);
62316701SmmokhiUNIMPLEMENTED(vserver);
63316701Smmokhi
64283424SdchaginDUMMY(sendfile);
65283424SdchaginDUMMY(syslog);
66283424SdchaginDUMMY(setfsuid);
67283424SdchaginDUMMY(setfsgid);
68283424SdchaginDUMMY(sysfs);
69283424SdchaginDUMMY(vhangup);
70283424SdchaginDUMMY(pivot_root);
71283424SdchaginDUMMY(adjtimex);
72283424SdchaginDUMMY(swapoff);
73283424SdchaginDUMMY(init_module);
74283424SdchaginDUMMY(delete_module);
75283424SdchaginDUMMY(quotactl);
76283424SdchaginDUMMY(lookup_dcookie);
77283424SdchaginDUMMY(remap_file_pages);
78283424SdchaginDUMMY(semtimedop);
79283424SdchaginDUMMY(mbind);
80283424SdchaginDUMMY(get_mempolicy);
81283424SdchaginDUMMY(set_mempolicy);
82283424SdchaginDUMMY(mq_open);
83283424SdchaginDUMMY(mq_unlink);
84283424SdchaginDUMMY(mq_timedsend);
85283424SdchaginDUMMY(mq_timedreceive);
86283424SdchaginDUMMY(mq_notify);
87283424SdchaginDUMMY(mq_getsetattr);
88283424SdchaginDUMMY(kexec_load);
89346816Sdchagin/* Linux 2.6.11: */
90283424SdchaginDUMMY(add_key);
91283424SdchaginDUMMY(request_key);
92283424SdchaginDUMMY(keyctl);
93346816Sdchagin/* Linux 2.6.13: */
94283424SdchaginDUMMY(ioprio_set);
95283424SdchaginDUMMY(ioprio_get);
96283424SdchaginDUMMY(inotify_init);
97283424SdchaginDUMMY(inotify_add_watch);
98283424SdchaginDUMMY(inotify_rm_watch);
99346816Sdchagin/* Linux 2.6.16: */
100283424SdchaginDUMMY(migrate_pages);
101283424SdchaginDUMMY(unshare);
102346816Sdchagin/* Linux 2.6.17: */
103283424SdchaginDUMMY(splice);
104283424SdchaginDUMMY(tee);
105283424SdchaginDUMMY(sync_file_range);
106283424SdchaginDUMMY(vmsplice);
107346816Sdchagin/* Linux 2.6.18: */
108283424SdchaginDUMMY(move_pages);
109346816Sdchagin/* Linux 2.6.22: */
110283424SdchaginDUMMY(signalfd);
111346816Sdchagin/* Linux 2.6.27: */
112283424SdchaginDUMMY(signalfd4);
113283424SdchaginDUMMY(inotify_init1);
114346816Sdchagin/* Linux 2.6.31: */
115283424SdchaginDUMMY(perf_event_open);
116346816Sdchagin/* Linux 2.6.38: */
117283424SdchaginDUMMY(fanotify_init);
118283424SdchaginDUMMY(fanotify_mark);
119346816Sdchagin/* Linux 2.6.39: */
120283424SdchaginDUMMY(name_to_handle_at);
121283424SdchaginDUMMY(open_by_handle_at);
122283424SdchaginDUMMY(clock_adjtime);
123346816Sdchagin/* Linux 3.0: */
124283424SdchaginDUMMY(setns);
125314107SdchaginDUMMY(getcpu);
126346816Sdchagin/* Linux 3.2: */
127283424SdchaginDUMMY(process_vm_readv);
128283424SdchaginDUMMY(process_vm_writev);
129346816Sdchagin/* Linux 3.5: */
130283424SdchaginDUMMY(kcmp);
131346816Sdchagin/* Linux 3.8: */
132283424SdchaginDUMMY(finit_module);
133314107SdchaginDUMMY(sched_setattr);
134314107SdchaginDUMMY(sched_getattr);
135346816Sdchagin/* Linux 3.14: */
136314107SdchaginDUMMY(renameat2);
137346816Sdchagin/* Linux 3.15: */
138314107SdchaginDUMMY(seccomp);
139314107SdchaginDUMMY(memfd_create);
140314107SdchaginDUMMY(kexec_file_load);
141346816Sdchagin/* Linux 3.18: */
142314107SdchaginDUMMY(bpf);
143346816Sdchagin/* Linux 3.19: */
144314107SdchaginDUMMY(execveat);
145346816Sdchagin/* Linux 4.2: */
146314107SdchaginDUMMY(userfaultfd);
147346816Sdchagin/* Linux 4.3: */
148314107SdchaginDUMMY(membarrier);
149346816Sdchagin/* Linux 4.4: */
150314107SdchaginDUMMY(mlock2);
151346816Sdchagin/* Linux 4.5: */
152314107SdchaginDUMMY(copy_file_range);
153346816Sdchagin/* Linux 4.6: */
154314107SdchaginDUMMY(preadv2);
155314107SdchaginDUMMY(pwritev2);
156346816Sdchagin/* Linux 4.8: */
157314107SdchaginDUMMY(pkey_mprotect);
158314107SdchaginDUMMY(pkey_alloc);
159314107SdchaginDUMMY(pkey_free);
160346839Sdchagin/* Linux 4.11: */
161346839SdchaginDUMMY(statx);
162346839Sdchagin/* Linux 4.18: */
163346839SdchaginDUMMY(io_pgetevents);
164346839SdchaginDUMMY(rseq);
165346839Sdchagin/* Linux 5.0: */
166346839SdchaginDUMMY(pidfd_send_signal);
167346839SdchaginDUMMY(io_uring_setup);
168346839SdchaginDUMMY(io_uring_enter);
169346839SdchaginDUMMY(io_uring_register);
170283424Sdchagin
171283424Sdchagin#define DUMMY_XATTR(s)						\
172283424Sdchaginint								\
173283424Sdchaginlinux_ ## s ## xattr(						\
174283424Sdchagin    struct thread *td, struct linux_ ## s ## xattr_args *arg)	\
175283424Sdchagin{								\
176283424Sdchagin								\
177342999Sfsu	return (EOPNOTSUPP);					\
178283424Sdchagin}
179283424SdchaginDUMMY_XATTR(set);
180283424SdchaginDUMMY_XATTR(lset);
181283424SdchaginDUMMY_XATTR(fset);
182283424SdchaginDUMMY_XATTR(get);
183283424SdchaginDUMMY_XATTR(lget);
184283424SdchaginDUMMY_XATTR(fget);
185283424SdchaginDUMMY_XATTR(list);
186283424SdchaginDUMMY_XATTR(llist);
187283424SdchaginDUMMY_XATTR(flist);
188283424SdchaginDUMMY_XATTR(remove);
189283424SdchaginDUMMY_XATTR(lremove);
190283424SdchaginDUMMY_XATTR(fremove);
191