summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-14 10:04:29 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-31 13:18:47 +0100
commit7c3625139fad52931f070973926a81ca9e522cda (patch)
tree98423ca9eb07346a860d3e986151507d0146ed26 /freebsd/sys/kern/uipc_syscalls.c
parentUse connect() from FreeBSD (diff)
downloadrtems-libbsd-7c3625139fad52931f070973926a81ca9e522cda.tar.bz2
Use listen() from FreeBSD
Diffstat (limited to 'freebsd/sys/kern/uipc_syscalls.c')
-rw-r--r--freebsd/sys/kern/uipc_syscalls.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c
index e4ec4baa..a52de3aa 100644
--- a/freebsd/sys/kern/uipc_syscalls.c
+++ b/freebsd/sys/kern/uipc_syscalls.c
@@ -344,10 +344,14 @@ kern_bind(td, fd, sa)
return (error);
}
-#ifndef __rtems__
/* ARGSUSED */
+#ifndef __rtems__
int
listen(td, uap)
+#else /* __rtems__ */
+static int
+rtems_bsd_listen(td, uap)
+#endif /* __rtems__ */
struct thread *td;
struct listen_args /* {
int s;
@@ -376,7 +380,28 @@ listen(td, uap)
}
return(error);
}
+#ifdef __rtems__
+int
+listen(int socket, int backlog)
+{
+ struct thread *td = rtems_bsd_get_curthread_or_null();
+ struct listen_args ua = {
+ .s = socket,
+ .backlog = backlog
+ };
+ int error;
+
+ if (td != NULL) {
+ error = rtems_bsd_listen(td, &ua);
+ } else {
+ error = ENOMEM;
+ }
+
+ return rtems_bsd_error_to_status_and_errno(error);
+}
+#endif /* __rtems__ */
+#ifndef __rtems__
/*
* accept1()
*/