diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-14 13:24:10 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-31 13:18:48 +0100 |
commit | 8989c110f525c8dda381dba90f502635fc29883a (patch) | |
tree | 40b17f5d7775a86a8c72ac23cca59ea48c9fbaf4 /freebsd/sys/kern/uipc_syscalls.c | |
parent | Use getpeername() from FreeBSD (diff) | |
download | rtems-libbsd-8989c110f525c8dda381dba90f502635fc29883a.tar.bz2 |
Use getsockname() from FreeBSD
Diffstat (limited to 'freebsd/sys/kern/uipc_syscalls.c')
-rw-r--r-- | freebsd/sys/kern/uipc_syscalls.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c index 249bc2b7..d5f97bb4 100644 --- a/freebsd/sys/kern/uipc_syscalls.c +++ b/freebsd/sys/kern/uipc_syscalls.c @@ -1699,7 +1699,11 @@ kern_getsockopt(td, s, level, name, val, valseg, valsize) return (error); } -#ifndef __rtems__ +#ifdef __rtems__ +int +kern_getsockname(struct thread *td, int fd, struct sockaddr **sa, + socklen_t *alen); +#endif /* __rtems__ */ /* * getsockname1() - Get socket name. */ @@ -1738,6 +1742,28 @@ getsockname1(td, uap, compat) error = copyout(&len, uap->alen, sizeof(len)); return (error); } +#ifdef __rtems__ +int +getsockname(int socket, struct sockaddr *__restrict address, + socklen_t *__restrict address_len) +{ + struct thread *td = rtems_bsd_get_curthread_or_null(); + struct getsockname_args ua = { + .fdes = socket, + .asa = address, + .alen = address_len + }; + int error; + + if (td != NULL) { + error = getsockname1(td, &ua); + } else { + error = ENOMEM; + } + + return rtems_bsd_error_to_status_and_errno(error); +} +#endif /* __rtems__ */ int kern_getsockname(struct thread *td, int fd, struct sockaddr **sa, @@ -1780,6 +1806,7 @@ bad: return (error); } +#ifndef __rtems__ int getsockname(td, uap) struct thread *td; |