Commit Graph

19 Commits

Author SHA1 Message Date
Sebastian Huber
ec1e500f4f timecounter: Add files to Doxygen group
Update #3707.
2023-07-26 07:18:29 +02:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Sebastian Huber
3353d3f3ad doxygen: Add group for FreeBSD kernel header files 2023-03-17 08:47:28 +01:00
Sebastian Huber
2859e422b3 Provide kernel space items only if needed
The kernel space parts of standard system header files were protected
against misuse by a preprocessor error directive.  This approach does
not work well with tools such as Doxygen.  Provide the kernel space
items only if the required defines are present.
2023-03-14 08:00:11 +01:00
Gleb Smirnoff
388dd97e39 Add in_localip_fib(), in6_localip_fib().
Check if given address/FIB exists locally.

Reviewed by:		melifaro
Differential revision:	https://reviews.freebsd.org/D32913
2022-07-11 13:28:10 +02:00
Gleb Smirnoff
94c33ba992 Use network epoch to protect local IPv4 addresses hash.
The modification to the hash are already naturally locked by
in_control_sx.  Convert the hash lists to CK lists. Remove the
in_ifaddr_rmlock. Assert the network epoch where necessary.

Most cases when the hash lookup is done the epoch is already entered.
Cover a few cases, that need entering the epoch, which mostly is
initial configuration of tunnel interfaces and multicast addresses.

Reviewed by:		melifaro
Differential revision:	https://reviews.freebsd.org/D32584
2022-07-11 13:28:10 +02:00
Alexander V. Chernikov
7846249e1a routing: fix source address selection rules for IPv4 over IPv6.
Current logic always selects an IFA of the same family from the
 outgoing interfaces. In IPv4 over IPv6 setup there can be just
 single non-127.0.0.1 ifa, attached to the loopback interface.

Create a separate rt_getifa_family() to handle entire ifa selection
 for the IPv4 over IPv6.

Differential Revision: https://reviews.freebsd.org/D31868
MFC after:	1 week
2022-07-11 13:28:10 +02:00
John Baldwin
070f1b552c Remove copyinfrom() and copyinstrfrom().
These functions were added in 2001 and are currently unused.
copyinfrom() looks to have never been used.  copyinstrfrom() was used
for two weeks before the code was refactored to remove it's sole use.

Reviewed by:	brooks, kib
Obtained from:	CheriBSD
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D24928
2022-07-11 13:28:10 +02:00
Sebastian Huber
f49ef6b6cb Add file descriptions to kernel space headers 2022-05-18 10:01:29 +02:00
Sebastian Huber
b9926483b1 Fix copyright notice of kernel space headers
Use the copyright notice of the associated header file from FreeBSD if the
kernel space header file contains a substantial amount of imported code.
2022-05-18 10:01:29 +02:00
Sebastian Huber
81962136cc Add include guard checks to kernel space headers 2022-05-18 10:01:29 +02:00
Ryan Long
ebfccb05b8 include: Add file headers and licenses
These files had no header, copyright, or license. Based on git history,
added appropriate copyrights and licenses.
2022-05-04 09:12:06 -05:00
Ryan Long
47e84cbde2 cpukit/include: Adding file headers and licenses
These files had no file header, copyright, or license. Based on git
history, added appropriate copyright and license.
2022-05-04 09:11:50 -05:00
rrs
c6d8589bb0 Synchronize kernel <sys/time.h> with FreeBSD
Integrate parts of this commit:

This commit brings in a new refactored TCP stack
called Rack. Rack includes the following features: - A different SACK
processing scheme (the old sack structures are not used). - RACK (Recent
acknowledgment) where counting dup-acks is no longer done instead time
is used to knwo when to retransmit. (see the I-D) - TLP (Tail Loss
Probe) where we will probe for tail-losses to attempt to try not to take
a retransmit time-out. (see the I-D) - Burst mitigation using TCPHTPS -
PRR (partial rate reduction) see the RFC.

Once built into your kernel, you can select this stack by either
socket option with the name of the stack is "rack" or by setting
the global sysctl so the default is rack.

Note that any connection that does not support SACK will be kicked
back to the "default" base  FreeBSD stack (currently known as "default").

To build this into your kernel you will need to enable in your
kernel:
   makeoptions WITH_EXTRA_TCP_STACKS=1
   options TCPHPTS

Sponsored by:	Netflix Inc.
Differential Revision:		https://reviews.freebsd.org/D15525
2019-11-18 07:16:30 +01:00
Sebastian Huber
de6348a9f1 _kernel_time.h: Compatibility to future Newlib 2019-10-01 08:13:56 +02:00
Sebastian Huber
6d70a11905 Include <stdbool.h> in <machine/_kernel_types.h>
The FreeBSD kernel started to use the bool type.

Update #3472.
2018-08-27 07:38:54 +02:00
Sebastian Huber
27c89d7981 Add FreeBSD kernel space header files
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.
2018-08-27 07:38:54 +02:00
Sebastian Huber
6695d02bf0 Update FreeBSD kernel timespec support
This change is based on the following FreeBSD commit:

"Make timespecadd(3) and friends public

The timespecadd(3) family of macros were imported from NetBSD back in
r35029. However, they were initially guarded by #ifdef _KERNEL. In the
meantime, we have grown at least 28 syscalls that use timespecs in some
way, leading many programs both inside and outside of the base system to
redefine those macros. It's better just to make the definitions public.

Our kernel currently defines two-argument versions of timespecadd and
timespecsub.  NetBSD, OpenBSD, and FreeDesktop.org's libbsd, however, define
three-argument versions.  Solaris also defines a three-argument version, but
only in its kernel.  This revision changes our definition to match the
common three-argument version.

Bump _FreeBSD_version due to the breaking KPI change.

Discussed with:	cem, jilles, ian, bde
Differential Revision:	https://reviews.freebsd.org/D14725"

To make the change public (outside #ifdef _KERNEL) it must be integrated
in Newlib.

Update #3472.
2018-08-23 14:39:33 +02:00
Chris Johns
2afb22b7e1 Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step.  It
copied header files from arbitrary locations into the build tree.  The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

* The make preinstall step itself needs time and disk space.

* Errors in header files show up in the build tree copy.  This makes it
  hard for editors to open the right file to fix the error.

* There is no clear relationship between source and build tree header
  files.  This makes an audit of the build process difficult.

* The visibility of all header files in the build tree makes it
  difficult to enforce API barriers.  For example it is discouraged to
  use BSP-specifics in the cpukit.

* An introduction of a new build system is difficult.

* Include paths specified by the -B option are system headers.  This
  may suppress warnings.

* The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step.   All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc.  Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

* cpukit/include

* cpukit/score/cpu/@RTEMS_CPU@/include

* cpukit/libnetworking

The new BSP include directories are:

* bsps/include

* bsps/@RTEMS_CPU@/include

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed.  The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.
2018-01-25 08:45:26 +01:00