summaryrefslogtreecommitdiff
path: root/lib/libc/sys
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2000-01-31 15:15:07 +0000
committerchristos <christos@NetBSD.org>2000-01-31 15:15:07 +0000
commitf9be3e6b20f7e7717db9849c7de8504e3fcbf8ce (patch)
tree2f9fe2979834c0fe831643ed2e9614cea3a2a32d /lib/libc/sys
parent618e1b562825c3bc5befc63621729c0a4917dd49 (diff)
Explain why we don't want to pass structs and unions to syscalls, and
how to find the proper args for a syscall.
Diffstat (limited to 'lib/libc/sys')
-rw-r--r--lib/libc/sys/syscall.211
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/libc/sys/syscall.2 b/lib/libc/sys/syscall.2
index cb9044bb78e..9d18003a45c 100644
--- a/lib/libc/sys/syscall.2
+++ b/lib/libc/sys/syscall.2
@@ -1,4 +1,4 @@
-.\" $NetBSD: syscall.2,v 1.8 1999/12/02 21:42:40 kleink Exp $
+.\" $NetBSD: syscall.2,v 1.9 2000/01/31 15:15:07 christos Exp $
.\"
.\" Copyright (c) 1980, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -73,6 +73,15 @@ and an error code is stored in
There is no way to simulate system calls that have multiple return values
such as
.Xr pipe 2 .
+.Pp
+Due to ABI implementation differences in passing struct or union
+type arguments to system calls between different processors, all
+system calls pass instead pointers to such structs or unions, even
+when the documentation of the system call mentions otherwise. The
+conversion between passing structs and unions is handled normally
+via userland stubs. The correct arguments for the kernel entry
+points for each system call can be found in the header file
+.Ao Pa sys/syscallargs.h Ac
.Sh HISTORY
The
.Fn syscall