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