Sebastian Huber
94b5368388
Avoid malloc() in getsockaddr()
...
The getsockaddr() function is used to allocate a struct sockaddr of the
right length and initialize it with userspace provided data. It is used
for the connect(), bind() and sendit() family functions. In particular,
the sendit() function is used by the UDP send functions. This means
each UDP send needs a malloc() and free() invocation. This is a
performance problem in RTEMS (first-fit heap) and may lead to heap
fragmentation. Replace the malloc() allocation with a stack allocation.
This requires SOCK_MAXADDRLEN (= 255) of additional stack space for
libbsd.
A further optimization would be to get rid of the stack copy of the
socket address. However, this would require to check each consumer of
the address to ensure that it is not modified.
2018-07-04 07:20:37 +02:00
Sebastian Huber
b03a1c0b59
Fix file descriptor reference counting in accept()
...
Update #3132 .
2017-11-15 13:25:28 +01:00
Sebastian Huber
72d5fa11a8
Fix reference counting for file descriptors
...
Update #3132 .
2017-11-10 11:01:54 +01:00
Sebastian Huber
894c965d95
Support reference counting for file descriptors
...
Close #3132 .
2017-09-15 12:46:57 +02:00
Sebastian Huber
3c967ca238
Use <sys/lock.h> provided by Newlib
2017-06-08 13:20:09 +02:00
Sebastian Huber
02373194fe
Update due to Newlib 2017-06-07 changes
...
The following files are now provided by Newlib:
* arpa/inet.h
* net/if.h
* netinet/in.h
* netinet/tcp.h
* sys/socket.h
* sys/uio.h
* sys/un.h
The <sys/param.h> and <sys/cpuset.h> are now compatible enough to be
used directly.
Update #2833 .
2017-06-08 13:19:54 +02:00
Sebastian Huber
de8a76da2f
Update to FreeBSD head 2017-04-04
...
Git mirror commit 642b174daddbd0efd9bb5f242c43f4ab4db6869f.
2017-04-04 14:46:23 +02:00
Sebastian Huber
0732183638
Fix SOCK_CLOEXEC with socket() and socketpair()
...
Remove SOCK_CLOEXEC flag to get a valid socket type, e.g. to avoid a
EPROTOTYPE in case of socket(..., SOCK_DGRAM | SOCK_CLOEXEC, ...).
2017-03-14 07:15:34 +01:00
Sebastian Huber
75b706fde4
Update to FreeBSD head 2016-12-10
...
Git mirror commit 80c55f08a05ab3b26a73b226ccb56adc3122a55c.
2017-01-10 09:53:34 +01:00
Sebastian Huber
c40e45b75e
Update to FreeBSD head 2016-08-23
...
Git mirror commit 9fe7c416e6abb28b1398fd3e5687099846800cfd.
2017-01-10 09:53:31 +01:00
Sebastian Huber
7d0050d921
Fix fp initializaiton in kern_sendit()
...
Bug introduced by 22257c7d81148e5b78027116e07627a54f4efb95.
2016-04-25 11:26:58 +02:00
Sebastian Huber
22257c7d81
Avoid use of cap_rights_t
2016-04-18 15:06:41 +02:00
Sebastian Huber
dd96574e45
SOCKETPAIR(2): Port to RTEMS
2015-11-16 09:52:50 +01:00
Sebastian Huber
5c0aa976d3
Add zerocopy sendto
2015-02-13 10:34:20 +01:00
Sebastian Huber
7eeb079d84
Update to FreeBSD 9.3
2015-02-13 10:34:19 +01:00
Sebastian Huber
66659ff1ad
Update to FreeBSD 9.2
2013-11-11 10:08:08 +01:00
Sebastian Huber
0a57e1db23
Reduce divergence from FreeBSD sources
2013-11-11 10:08:06 +01:00
Sebastian Huber
f244de9638
Rename rtems-bsd-config.h
...
Rename rtems-bsd-config.h in rtems-bsd-kernel-space.h.
2013-11-11 10:08:04 +01:00
Sebastian Huber
af5333e0a0
Update to FreeBSD 8.4
2013-11-04 15:28:21 +01:00
Sebastian Huber
9d9bfaff8d
Use send/recv functions from FreeBSD
...
Use recvfrom(), recvmsg(), sendto() and sendmsg() from FreeBSD.
2013-10-31 13:18:48 +01:00
Sebastian Huber
8989c110f5
Use getsockname() from FreeBSD
2013-10-31 13:18:48 +01:00
Sebastian Huber
0beab1e86a
Use getpeername() from FreeBSD
2013-10-31 13:18:48 +01:00
Sebastian Huber
ac78dd2440
Use getsockopt() and setsockopt() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
7c2b59c831
Use accept() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
7c3625139f
Use listen() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
6676de488a
Use connect() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
468b08e553
Use bind() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
6ffb9b9e27
Use shutdown() from FreeBSD
2013-10-31 13:18:47 +01:00
Sebastian Huber
caf8eded60
Import socket() implementation from FreeBSD
...
Add new test syscalls01.
2013-10-31 13:18:47 +01:00