Move the kernel space content of some Newlib provided header files to
RTEMS and libbsd. This allows to use the Newlib provided header files
with different FreeBSD baselines.
Update #3472.
This firewall was not ported to RTEMS and is just dead code which may
make trouble during FreeBSD baseline updates. It also increased the
compile-time of the library for nothing.
Update #3472.
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.
This adds two new buildset configurations: One that leaves out as much
features as possible and one that enables all features. For the default
configuration WiFi support is now disabled.
To disable IPv6 for the minimal configuration, all -DINET6 are
eliminated in libbsd.py. They are now replaced by a #ifdef that checks
for RTEMS_BSD_MODULE_NETINET6 instead.
Close#3351.
Using panic() with interrupts disabled could lead to an additional error
(INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT) due to a potentially
blocking output.
Imported from Freescale Linux repository
git://git.freescale.com/ppc/upstream/linux.git
commit 2774c204cd8bfc56a200ff4dcdfc9cdf5b6fc161.
Linux compatibility layer is partly from FreeBSD.
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.