Index: head/lib/libc/sys/Makefile.inc =================================================================== --- head/lib/libc/sys/Makefile.inc +++ head/lib/libc/sys/Makefile.inc @@ -46,6 +46,7 @@ PSEUDO+= _getdirentries.o SRCS+= pipe.c +SRCS+= vadvise.c INTERPOSED = \ accept \ Index: head/lib/libc/sys/Symbol.map =================================================================== --- head/lib/libc/sys/Symbol.map +++ head/lib/libc/sys/Symbol.map @@ -1010,8 +1010,6 @@ __sys_utrace; _uuidgen; __sys_uuidgen; - _vadvise; - __sys_vadvise; _wait4; __sys_wait4; _wait6; Index: head/lib/libc/sys/vadvise.c =================================================================== --- head/lib/libc/sys/vadvise.c +++ head/lib/libc/sys/vadvise.c @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2018 SRI International + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory (Department of Computer Science and + * Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of the + * DARPA SSITH research programme. + * + * 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. + * + * $FreeBSD$ + */ + +#include +#include + +int vadvise(int); + +int +vadvise(int arg __unused) +{ + + return (EINVAL); +} Index: head/sys/compat/freebsd32/syscalls.master =================================================================== --- head/sys/compat/freebsd32/syscalls.master +++ head/sys/compat/freebsd32/syscalls.master @@ -173,8 +173,7 @@ 70 AUE_SSTK NOPROTO { int sstk(int incr); } 71 AUE_MMAP COMPAT|NOPROTO { int mmap(void *addr, int len, \ int prot, int flags, int fd, int pos); } -72 AUE_O_VADVISE NOPROTO { int ovadvise(int anom); } vadvise \ - ovadvise_args int +72 AUE_O_VADVISE COMPAT11|NOPROTO { int vadvise(int anom); } 73 AUE_MUNMAP NOPROTO { int munmap(void *addr, size_t len); } 74 AUE_MPROTECT STD { int freebsd32_mprotect(void *addr, \ size_t len, int prot); } Index: head/sys/kern/syscalls.master =================================================================== --- head/sys/kern/syscalls.master +++ head/sys/kern/syscalls.master @@ -229,8 +229,7 @@ 70 AUE_SSTK STD { int sstk(int incr); } 71 AUE_MMAP COMPAT { int mmap(_In_ void *addr, int len, int prot, \ int flags, int fd, long pos); } -72 AUE_O_VADVISE STD { int ovadvise(int anom); } vadvise \ - ovadvise_args int +72 AUE_O_VADVISE COMPAT11 { int vadvise(int anom); } 73 AUE_MUNMAP STD { int munmap(_In_ void *addr, size_t len); } 74 AUE_MPROTECT STD { int mprotect(_In_ void *addr, \ size_t len, int prot); } Index: head/sys/vm/vm_unix.c =================================================================== --- head/sys/vm/vm_unix.c +++ head/sys/vm/vm_unix.c @@ -231,20 +231,11 @@ #endif /* defined(__aarch64__) || defined(__riscv__) */ } -#ifndef _SYS_SYSPROTO_H_ -struct ovadvise_args { - int anom; -}; -#endif - -/* - * MPSAFE - */ -/* ARGSUSED */ +#ifdef COMPAT_FREEBSD11 int -sys_ovadvise(struct thread *td, struct ovadvise_args *uap) +freebsd11_vadvise(struct thread *td, struct freebsd11_vadvise_args *uap) { - /* START_GIANT_OPTIONAL */ - /* END_GIANT_OPTIONAL */ + return (EINVAL); } +#endif