Page MenuHomeFreeBSD

D15557.id42939.diff
No OneTemporary

D15557.id42939.diff

Index: lib/libc/sys/Makefile.inc
===================================================================
--- lib/libc/sys/Makefile.inc
+++ lib/libc/sys/Makefile.inc
@@ -46,6 +46,7 @@
PSEUDO+= _getdirentries.o
SRCS+= pipe.c
+SRCS+= vadvise.c
INTERPOSED = \
accept \
Index: lib/libc/sys/vadvise.c
===================================================================
--- /dev/null
+++ lib/libc/sys/vadvise.c
@@ -0,0 +1,47 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2018 (holder)
+ * 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.
+ */
+
+#include <sys/cdefs.h>
+#include <sys/errno.h>
+
+__weak_reference(__sys_vadvise, vadvise);
+__weak_reference(__sys_vadvise, _vadvise);
+
+int __sys_vadvise(int);
+
+int
+__sys_vadvise(int arg __unused)
+{
+
+ return (EINVAL);
+}
Index: sys/compat/freebsd32/freebsd32_syscall.h
===================================================================
--- sys/compat/freebsd32/freebsd32_syscall.h
+++ sys/compat/freebsd32/freebsd32_syscall.h
@@ -77,7 +77,7 @@
#define FREEBSD32_SYS_sbrk 69
#define FREEBSD32_SYS_sstk 70
/* 71 is old mmap */
-#define FREEBSD32_SYS_vadvise 72
+#define FREEBSD32_SYS_freebsd11_vadvise 72
#define FREEBSD32_SYS_munmap 73
#define FREEBSD32_SYS_freebsd32_mprotect 74
#define FREEBSD32_SYS_madvise 75
Index: sys/compat/freebsd32/freebsd32_syscalls.c
===================================================================
--- sys/compat/freebsd32/freebsd32_syscalls.c
+++ sys/compat/freebsd32/freebsd32_syscalls.c
@@ -81,7 +81,7 @@
"sbrk", /* 69 = sbrk */
"sstk", /* 70 = sstk */
"compat.mmap", /* 71 = old mmap */
- "vadvise", /* 72 = vadvise */
+ "compat11.vadvise", /* 72 = freebsd11 vadvise */
"munmap", /* 73 = munmap */
"freebsd32_mprotect", /* 74 = freebsd32_mprotect */
"madvise", /* 75 = madvise */
Index: sys/compat/freebsd32/freebsd32_sysent.c
===================================================================
--- sys/compat/freebsd32/freebsd32_sysent.c
+++ sys/compat/freebsd32/freebsd32_sysent.c
@@ -128,7 +128,7 @@
{ AS(sbrk_args), (sy_call_t *)sys_sbrk, AUE_SBRK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 69 = sbrk */
{ AS(sstk_args), (sy_call_t *)sys_sstk, AUE_SSTK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 70 = sstk */
{ compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 71 = old mmap */
- { AS(ovadvise_args), (sy_call_t *)sys_ovadvise, AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = vadvise */
+ { compat11(AS(freebsd11_vadvise_args),vadvise), AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = freebsd11 vadvise */
{ AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 73 = munmap */
{ AS(freebsd32_mprotect_args), (sy_call_t *)freebsd32_mprotect, AUE_MPROTECT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 74 = freebsd32_mprotect */
{ AS(madvise_args), (sy_call_t *)sys_madvise, AUE_MADVISE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 75 = madvise */
Index: sys/compat/freebsd32/freebsd32_systrace_args.c
===================================================================
--- sys/compat/freebsd32/freebsd32_systrace_args.c
+++ sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -435,13 +435,6 @@
*n_args = 1;
break;
}
- /* ovadvise */
- case 72: {
- struct ovadvise_args *p = params;
- iarg[0] = p->anom; /* int */
- *n_args = 1;
- break;
- }
/* munmap */
case 73: {
struct munmap_args *p = params;
@@ -3944,16 +3937,6 @@
break;
};
break;
- /* ovadvise */
- case 72:
- switch(ndx) {
- case 0:
- p = "int";
- break;
- default:
- break;
- };
- break;
/* munmap */
case 73:
switch(ndx) {
@@ -9084,11 +9067,6 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
- /* ovadvise */
- case 72:
- if (ndx == 0 || ndx == 1)
- p = "int";
- break;
/* munmap */
case 73:
if (ndx == 0 || ndx == 1)
Index: sys/compat/freebsd32/syscalls.master
===================================================================
--- sys/compat/freebsd32/syscalls.master
+++ 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: sys/kern/init_sysent.c
===================================================================
--- sys/kern/init_sysent.c
+++ sys/kern/init_sysent.c
@@ -121,7 +121,7 @@
{ AS(sbrk_args), (sy_call_t *)sys_sbrk, AUE_SBRK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 69 = sbrk */
{ AS(sstk_args), (sy_call_t *)sys_sstk, AUE_SSTK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 70 = sstk */
{ compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 71 = old mmap */
- { AS(ovadvise_args), (sy_call_t *)sys_ovadvise, AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = vadvise */
+ { compat11(AS(freebsd11_vadvise_args),vadvise), AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = freebsd11 vadvise */
{ AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 73 = munmap */
{ AS(mprotect_args), (sy_call_t *)sys_mprotect, AUE_MPROTECT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 74 = mprotect */
{ AS(madvise_args), (sy_call_t *)sys_madvise, AUE_MADVISE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 75 = madvise */
Index: sys/kern/syscalls.c
===================================================================
--- sys/kern/syscalls.c
+++ sys/kern/syscalls.c
@@ -78,7 +78,7 @@
"sbrk", /* 69 = sbrk */
"sstk", /* 70 = sstk */
"compat.mmap", /* 71 = old mmap */
- "vadvise", /* 72 = vadvise */
+ "compat11.vadvise", /* 72 = freebsd11 vadvise */
"munmap", /* 73 = munmap */
"mprotect", /* 74 = mprotect */
"madvise", /* 75 = madvise */
Index: sys/kern/syscalls.master
===================================================================
--- sys/kern/syscalls.master
+++ 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: sys/kern/systrace_args.c
===================================================================
--- sys/kern/systrace_args.c
+++ sys/kern/systrace_args.c
@@ -432,13 +432,6 @@
*n_args = 1;
break;
}
- /* ovadvise */
- case 72: {
- struct ovadvise_args *p = params;
- iarg[0] = p->anom; /* int */
- *n_args = 1;
- break;
- }
/* munmap */
case 73: {
struct munmap_args *p = params;
@@ -3949,16 +3942,6 @@
break;
};
break;
- /* ovadvise */
- case 72:
- switch(ndx) {
- case 0:
- p = "int";
- break;
- default:
- break;
- };
- break;
/* munmap */
case 73:
switch(ndx) {
@@ -9033,11 +9016,6 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
- /* ovadvise */
- case 72:
- if (ndx == 0 || ndx == 1)
- p = "int";
- break;
/* munmap */
case 73:
if (ndx == 0 || ndx == 1)
Index: sys/sys/syscall.h
===================================================================
--- sys/sys/syscall.h
+++ sys/sys/syscall.h
@@ -77,7 +77,7 @@
#define SYS_sbrk 69
#define SYS_sstk 70
/* 71 is old mmap */
-#define SYS_vadvise 72
+#define SYS_freebsd11_vadvise 72
#define SYS_munmap 73
#define SYS_mprotect 74
#define SYS_madvise 75
Index: sys/sys/syscall.mk
===================================================================
--- sys/sys/syscall.mk
+++ sys/sys/syscall.mk
@@ -59,7 +59,7 @@
vfork.o \
sbrk.o \
sstk.o \
- vadvise.o \
+ freebsd11_vadvise.o \
munmap.o \
mprotect.o \
madvise.o \
Index: sys/sys/sysproto.h
===================================================================
--- sys/sys/sysproto.h
+++ sys/sys/sysproto.h
@@ -264,9 +264,6 @@
struct sstk_args {
char incr_l_[PADL_(int)]; int incr; char incr_r_[PADR_(int)];
};
-struct ovadvise_args {
- char anom_l_[PADL_(int)]; int anom; char anom_r_[PADR_(int)];
-};
struct munmap_args {
char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)];
char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)];
@@ -1828,7 +1825,6 @@
int sys_vfork(struct thread *, struct vfork_args *);
int sys_sbrk(struct thread *, struct sbrk_args *);
int sys_sstk(struct thread *, struct sstk_args *);
-int sys_ovadvise(struct thread *, struct ovadvise_args *);
int sys_munmap(struct thread *, struct munmap_args *);
int sys_mprotect(struct thread *, struct mprotect_args *);
int sys_madvise(struct thread *, struct madvise_args *);
@@ -2493,6 +2489,9 @@
char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
char dev_l_[PADL_(int)]; int dev; char dev_r_[PADR_(int)];
};
+struct freebsd11_vadvise_args {
+ char anom_l_[PADL_(int)]; int anom; char anom_r_[PADR_(int)];
+};
struct freebsd11_stat_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char ub_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * ub; char ub_r_[PADR_(struct freebsd11_stat *)];
@@ -2570,6 +2569,7 @@
char dev_l_[PADL_(uint32_t)]; uint32_t dev; char dev_r_[PADR_(uint32_t)];
};
int freebsd11_mknod(struct thread *, struct freebsd11_mknod_args *);
+int freebsd11_vadvise(struct thread *, struct freebsd11_vadvise_args *);
int freebsd11_stat(struct thread *, struct freebsd11_stat_args *);
int freebsd11_fstat(struct thread *, struct freebsd11_fstat_args *);
int freebsd11_lstat(struct thread *, struct freebsd11_lstat_args *);
@@ -2658,7 +2658,7 @@
#define SYS_AUE_sbrk AUE_SBRK
#define SYS_AUE_sstk AUE_SSTK
#define SYS_AUE_ommap AUE_MMAP
-#define SYS_AUE_vadvise AUE_O_VADVISE
+#define SYS_AUE_freebsd11_vadvise AUE_O_VADVISE
#define SYS_AUE_munmap AUE_MUNMAP
#define SYS_AUE_mprotect AUE_MPROTECT
#define SYS_AUE_madvise AUE_MADVISE
Index: sys/vm/vm_unix.c
===================================================================
--- sys/vm/vm_unix.c
+++ sys/vm/vm_unix.c
@@ -232,20 +232,16 @@
return (error);
}
+#ifdef COMPAT_FREEBSD11
#ifndef _SYS_SYSPROTO_H_
-struct ovadvise_args {
+struct freebsd11_vadvise_args {
int anom;
};
#endif
-
-/*
- * MPSAFE
- */
-/* ARGSUSED */
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

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 27, 2:13 PM (8 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39741978
Default Alt Text
D15557.id42939.diff (12 KB)

Event Timeline