summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2005-10-15 05:57:06 +0000
committerps <ps@FreeBSD.org>2005-10-15 05:57:06 +0000
commita72385743d68a9b60d4489c5ed5297cfc7f37f32 (patch)
treef91e801ad8f8849ea2dc8840f311e80b890f6396 /sys/kern
parent36d05b2d9f097b4798aa795664af98d80e9849cf (diff)
downloadFreeBSD-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.c18
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
*/
OpenPOWER on IntegriCloud