summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2000-12-01 08:57:47 +0000
committeralfred <alfred@FreeBSD.org>2000-12-01 08:57:47 +0000
commite6bf60ac99dad1e2f847cb7f1557c06a651f4c9d (patch)
tree9e9a1edac03b7e0a202fb92d35ad8aba89087754 /sys/sys
parente1caf64702400ce84de06e726003bca5f0121595 (diff)
downloadFreeBSD-src-e6bf60ac99dad1e2f847cb7f1557c06a651f4c9d.zip
FreeBSD-src-e6bf60ac99dad1e2f847cb7f1557c06a651f4c9d.tar.gz
sysvipc loadable.
new syscall entry lkmressys - "reserved loadable syscall" Make syscall_register allow overwriting of such entries (lkmressys).
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/ipc.h4
-rw-r--r--sys/sys/syscall.h2
-rw-r--r--sys/sys/sysent.h9
-rw-r--r--sys/sys/sysproto.h1
4 files changed, 15 insertions, 1 deletions
diff --git a/sys/sys/ipc.h b/sys/sys/ipc.h
index 38892e9..1a153c5 100644
--- a/sys/sys/ipc.h
+++ b/sys/sys/ipc.h
@@ -85,6 +85,10 @@ struct ipc_perm {
struct proc;
int ipcperm __P((struct proc *, struct ipc_perm *, int));
+extern void (*semexit_hook)(struct proc *);
+extern void (*shmfork_hook)(struct proc *, struct proc *);
+extern void (*shmexit_hook)(struct proc *);
+
#else /* ! _KERNEL */
/* XXX doesn't really belong here, but has been historical practice in SysV. */
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 8966354..011669b 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -291,4 +291,4 @@
#define SYS___cap_get_file 367
#define SYS___cap_set_fd 368
#define SYS___cap_set_file 369
-#define SYS_MAXSYSCALL 370
+#define SYS_MAXSYSCALL 371
diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h
index 93d356b..fca23e0 100644
--- a/sys/sys/sysent.h
+++ b/sys/sys/sysent.h
@@ -112,6 +112,15 @@ static moduledata_t name##_mod = { \
}; \
DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE)
+#define SYSCALL_MODULE_HELPER(syscallname, argcount) \
+static int syscallname##_syscall = SYS_##syscallname; \
+static struct sysent syscallname##_sysent = { \
+ argcount, (sy_call_t *)& syscallname \
+}; \
+SYSCALL_MODULE(syscallname, \
+ & syscallname##_syscall, & syscallname##_sysent, \
+ NULL, NULL);
+
int syscall_register __P((int *offset, struct sysent *new_sysent,
struct sysent *old_sysent));
int syscall_deregister __P((int *offset, struct sysent *old_sysent));
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index dee4147..7e8abde 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -1280,6 +1280,7 @@ int __cap_get_fd __P((struct proc *, struct __cap_get_fd_args *));
int __cap_get_file __P((struct proc *, struct __cap_get_file_args *));
int __cap_set_fd __P((struct proc *, struct __cap_set_fd_args *));
int __cap_set_file __P((struct proc *, struct __cap_set_file_args *));
+int lkmressys __P((struct proc *, struct nosys_args *));
#ifdef COMPAT_43
OpenPOWER on IntegriCloud