diff options
author | alfred <alfred@FreeBSD.org> | 2000-12-01 08:57:47 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2000-12-01 08:57:47 +0000 |
commit | e6bf60ac99dad1e2f847cb7f1557c06a651f4c9d (patch) | |
tree | 9e9a1edac03b7e0a202fb92d35ad8aba89087754 /sys/sys | |
parent | e1caf64702400ce84de06e726003bca5f0121595 (diff) | |
download | FreeBSD-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.h | 4 | ||||
-rw-r--r-- | sys/sys/syscall.h | 2 | ||||
-rw-r--r-- | sys/sys/sysent.h | 9 | ||||
-rw-r--r-- | sys/sys/sysproto.h | 1 |
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 |