diff options
author | ps <ps@FreeBSD.org> | 2005-10-15 05:57:06 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2005-10-15 05:57:06 +0000 |
commit | a72385743d68a9b60d4489c5ed5297cfc7f37f32 (patch) | |
tree | f91e801ad8f8849ea2dc8840f311e80b890f6396 /sys/kern | |
parent | 36d05b2d9f097b4798aa795664af98d80e9849cf (diff) | |
download | FreeBSD-src-a72385743d68a9b60d4489c5ed5297cfc7f37f32.zip FreeBSD-src-a72385743d68a9b60d4489c5ed5297cfc7f37f32.tar.gz |
Implement the 32bit versions of recvmsg, recvfrom, sendmsg
Partially obtained from: jhb
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/uipc_syscalls.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index d9944fe..d855755 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -922,12 +922,13 @@ sendmsg(td, uap) return (error); } -static int -recvit(td, s, mp, namelenp) +int +kern_recvit(td, s, mp, namelenp, segflg) struct thread *td; int s; struct msghdr *mp; void *namelenp; + enum uio_seg segflg; { struct uio auio; struct iovec *iov; @@ -964,7 +965,7 @@ recvit(td, s, mp, namelenp) auio.uio_iov = mp->msg_iov; auio.uio_iovcnt = mp->msg_iovlen; - auio.uio_segflg = UIO_USERSPACE; + auio.uio_segflg = segflg; auio.uio_rw = UIO_READ; auio.uio_td = td; auio.uio_offset = 0; /* XXX */ @@ -1082,6 +1083,17 @@ out: return (error); } +static int +recvit(td, s, mp, namelenp) + struct thread *td; + int s; + struct msghdr *mp; + void *namelenp; +{ + + return (kern_recvit(td, s, mp, namelenp, UIO_USERSPACE)); +} + /* * MPSAFE */ |