summaryrefslogtreecommitdiffstats
path: root/sys/sys/sysent.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-09-25 20:07:42 +0000
committerjhb <jhb@FreeBSD.org>2008-09-25 20:07:42 +0000
commit00776aeb581a27af198e57c4d7c48198c3af6f03 (patch)
tree2d86342cfddf85672b7cabbaa1c75a865dff4583 /sys/sys/sysent.h
parenta87bfbe313ff337a63706aaefb95e607c7192367 (diff)
downloadFreeBSD-src-00776aeb581a27af198e57c4d7c48198c3af6f03.zip
FreeBSD-src-00776aeb581a27af198e57c4d7c48198c3af6f03.tar.gz
Tidy up a few things with syscall generation:
- Instead of using a syscall slot (370) just to get a function prototype for lkmressys(), add an explicit function prototype to <sys/sysent.h>. This also removes unused special case checks for 'lkmressys' from makesyscalls.sh. - Instead of having magic logic in makesyscalls.sh to only generate a function prototype the first time 'lkmnosys' is seen, make 'NODEF' always not generate a function prototype and include an explicit prototype for 'lkmnosys' in <sys/sysent.h>. - As a result of the fix in (2), update the LKM syscall entries in the freebsd32 syscall table to use 'lkmnosys' rather than 'nosys'. - Use NOPROTO for the __syscall() entry (198) in the native ABI. This avoids the need for magic logic in makesyscalls.h to only generate a function prototype the first time 'nosys' is encountered.
Diffstat (limited to 'sys/sys/sysent.h')
-rw-r--r--sys/sys/sysent.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h
index bdbd809..57459b1 100644
--- a/sys/sys/sysent.h
+++ b/sys/sys/sysent.h
@@ -156,6 +156,12 @@ int syscall_register(int *offset, struct sysent *new_sysent,
int syscall_deregister(int *offset, struct sysent *old_sysent);
int syscall_module_handler(struct module *mod, int what, void *arg);
+/* Special purpose system call functions. */
+struct nosys_args;
+
+int lkmnosys(struct thread *, struct nosys_args *);
+int lkmressys(struct thread *, struct nosys_args *);
+
#endif /* _KERNEL */
#endif /* !_SYS_SYSENT_H_ */
OpenPOWER on IntegriCloud