1991 Commits

Author SHA1 Message Date
Kinsey Moore
38f3de6469 rtemsbsd/atomic: Return a value for CMPSET
When the cmpset and fcmpset functions were refactored, the return value
of the operation was discarded instead of being returned for SMP builds
outside of gcc 4.x. This had the effect of turning these functions into
a long busywait loop that eventually failed due to integer overflow.

This patch restores the use of the return value of the atomic
operations.
2021-10-08 09:05:05 -05:00
Kinsey Moore
0baf1a8545 waf_libbsd: Fix typo in previous patch
There was a typo in the patch that added the HAVE_<LIBRARY> definition
that prevented "./waf configure" from succeeding. This adds the missing
character.
2021-10-08 09:05:05 -05:00
Kinsey Moore
e6bd18c10b waf_libbsd: Account for library check results
Conditionally compiled tests (consisting only of debugger01) were not
compiling as expected when libdebugger was present. This appears to have
occurred during the transition from header detection or due to an
intervening change in the waf internal libraries. The result of
check_cc() is the only location this information is reported, so library
checks now set HAVE_<LIBRARY> as appropriate when the library is found
so existing code for header configuration correctly recognize that a
library is present.
2021-10-06 08:35:37 -05:00
Chris Johns
2e5f808b09 rtemsbsd/syscalls: Remove pipe()
- This call is provided by RTEMS and that is preferred

Closes #4518
2021-09-23 15:42:12 +10:00
Chris Johns
d9dd59d9ef rtemsbsd/open: Correctly open a mount directory
- If the open is for a directory and it is the root of the mounted
  file system open from the pseudo's root node.
2021-09-23 13:31:08 +10:00
Chris Johns
715e29f2a0 freebsd/libc/rpc: Fix the fgets emulation for the internal netconfig support 2021-09-08 09:23:09 +10:00
Christian Mauderer
b7c51ac449 imx: Remove ccm functions alredy defined in RTEMS
The imx_ccm_*_hz are all defined in RTEMS. So don't duplicate them in
libbsd. Otherwise some applications get linker errors.

Update #3869
2021-09-02 09:19:27 +02:00
Chris Johns
7e282d2506 rtemsbsd/nfs: Add support to mount NFSv2
- NFSv2 requires userland RPC calls to determine the version of
  NFS and the FH. This is passed to the kernel.

- Port more libc/rpc.

Update #4475
2021-09-02 08:45:12 +10:00
Chris Johns
882425fe54 kern/sys: Add NFSv4 client
Update #4475
2021-08-31 18:38:48 +10:00
Chris Johns
6138f242be kern/sys: Import NFS and NFS file system client
Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
c6dbc96748 kern/sys: Add the kernel RPC and XDR support
Updates #4475
2021-08-28 10:25:46 +10:00
Chris Johns
3da45ae4bc freebsd/sys: Import RPC and XDR support
Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
6514d56158 sys/kern: Add VFS support
- Refactor the libio interface

- Move syscalls into an rtemsbsd location

- Provide a root directory mount point

Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
ac4db4cec5 rtemsbsd: Remove DHCP init wrapper
- Object files cannot config init and resided in libbsd.a

Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
1739d74f7d freebsd/sys: Import VFS support
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
e56b5cb135 kern: Add kernel trace support (KTR)
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
9800a0f9fa kern: Import kern_ktr.c
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
c7427fc154 kern: Add a proc0
- Provides the thread's proc pointer and with that access to creds

Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
761fd69393 kern: Import kern_prot.c fnd kern_resource.c for proc0
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
46a15fa7aa sys/kern: Add lockmgr support
- See `man lockmgr`

- Implement the lock_object and move the RTEMS mutex to that object

- Add debug support to track the locks with gdb

Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
e1ca99b535 testsuite: Optionally allow all command in a shell
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
2a01430ba5 rtemsbsd: Catch timeout overflows
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
684cf3cdc2 rtemsbsd: Add FrreBSD's clang-format style
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
974742defc kern-symbols: Add symbols from the everything build set
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
5ef23a2836 sys/netinet/libalias: Fix symbols clashes
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
f700edc5b8 waf: Fix clashing symbols in the user land symbols
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
59f652fe88 Implement portable kernel symbol namespace tool
- The script's use of sort proved to not be portable

- No need to check the commits as symbols are only added

- Regenerated kernel header to reset the sort order

Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
f5c405ec05 bsp/motorola_powerpc: Add dc and ukphy support
- Add the dc net dev to the BSP

- Add the ukphy support

Closes # 4246
2021-08-28 10:23:41 +10:00
Chris Johns
efd75d2e35 testsuite: Wait for the link to be UP
- Wait for a slow PHY to bring the link UP. If the IP address is
  static the test can start before the link is up and the test
  fails.

- Make 2 tests wait. Others will need to be added.
2021-08-27 17:04:30 +10:00
Chris Johns
45ff774c3c rtemsbsd: Add interface support routines
- Add the ability to check if an interface is up
2021-08-27 17:02:59 +10:00
Chris Johns
3f1e128488 rtemsbsd/bus: Add PCI support to the nexus bus
- Add PCI IO region support

- Add support map buffers to PCI address space

- Add BSP conditional IO space support. Some PC implementations
  have PCI IO space mapped differently to memory space and this needs
  to be reflected in the busspace.

- Include bsp.h to pick per BSP configuration.

Closes #4245
2021-08-27 16:53:41 +10:00
Joel Sherrill
c5e81a2169 linker_set.h: Add alignof implementation for when not C11 or C++11
The default implementation was completely broken. Use the GCC specific
__alignof__ if compiling for C99 or C++03. If not C++11, C11, or
GCC, then it is an error.
2021-07-21 17:00:22 -05:00
Stephen Clark
c41318075e nexus: Added SDHCI driver to ZynqMP
Made ZynqMP build with the SDHCI driver.
2021-07-15 11:29:09 -05:00
Kinsey Moore
a53aeb5eb9 rtemsbsd: Present all ZynqMP interfaces by default
Now that the issue with false PHY detection on unterminated MII busses
has been resolved, present all hardware interfaces for use on ZynqMP.
2021-07-15 10:07:16 -05:00
Kinsey Moore
14576608a9 freebsd/if_cgem: Fail probe for unterminated MII
When the MII bus is unterminated on unused interfaces, it results in PHY
read timeouts which manifest as spurious PHYs during the attach call.
Detect these timeouts during the probe so the device can be ignored.
2021-07-15 10:07:16 -05:00
Kinsey Moore
b0c8153d54 rtemsbsd: Use config.inc to control ZynqMP ethernet
This alters the selection of the 4 Cadence GEM interfaces on the Zynq
Ultrascale+ MPSoC BSP to be provided by config.inc instead of being
provided by options in the RTEMS BSP itself since those options appear
to be dead code when not used in conjunction with LibBSD.
2021-07-01 10:33:39 -05:00
Stephen Clark
8dfea31d72 rtemsbsd: Added a test for the TTCP command.
Added a new test for the TTCP command. Modified default-network-init.h
to conditionally build the shell with TTCP. Modified libbsd.py to build
the new TTCP test.
2021-06-29 16:03:42 -05:00
Stephen Clark
6cc63cbe65 rtemsbsd: Made TTCP command build for RTEMS
Updated ttcp.c to build clean for RTEMS 6 and the machines it
originally built for. Also fixed ttcp.c to close network
sockets after completion. Defined a shell command for TTCP in
rtems-bsd-shell-ttcp.c. Added TTCP to the list of RTEMS network
commands in netcmds-config.h. Added declaration of the TTCP shell
command to rtems-bsd-commands.h. Modified libbsd.py to make waf
build TTCP and its shell command.
2021-06-29 16:03:42 -05:00
Stephen Clark
7960ab7a43 rtemsbsd:Updated TTCP code with network demo code
Updated the TTCP code to match the ttcp.c in RTEMS network-demos
repository (https://git.rtems.org/network-demos/).
2021-06-29 16:03:42 -05:00
Stephen Clark
af06b267c5 rtemsbsd: Added original TTCP code
Added the original Test TCP (TTCP) program in unmodified form.
Also added the original README for TTCP. Both the README and the
TTCP program were sourced from the first commit in the RTEMS
network demos repository.
2021-06-29 16:03:42 -05:00
Kinsey Moore
4ce914cb90 rtemsbsd: Make ZynqMP CGEM interfaces selectable
Use the new options from the ZynqMP BSPs to allow selection of the
available CGEM ethernet interfaces.
2021-06-28 09:15:13 -05:00
Christian Mauderer
400dcc41d7 builder.py: Only disable tests if they are there
For checking the dependencies, the tests are removed. But if the tests
are not enabled at all, that triggers a python exception.
2021-06-16 11:34:19 +02:00
Christian Mauderer
2c8bbde1dc racoon: Fix build with current toolchain
During some newlib version, the _types_fd_set has been replaced with
just fd_set.
2021-06-16 11:34:10 +02:00
Sebastian Huber
ec8eaccc62 README: Mention SMP requirements 2021-06-16 07:39:16 +02:00
Sebastian Huber
158c270ded EPOCH(9): Fix epoch call and drain
Since the epoch call callbacks may lock/unlock a mutex the callbacks must be
called from within thread context with thread dispatching enabled.  Use thread
pinning to ensure that the calling thread stays on the right processor.  Use
the interrupt server to ensure the thread context for the epoch drain.
2021-06-15 18:46:08 +02:00
Sebastian Huber
cb94a7443d EPOCH(9): Use PER_CPU_DATA_NEED_INITIALIZATION()
Use the PER_CPU_DATA_NEED_INITIALIZATION() macro if necessary to request an
initialization of the per-CPU data.
2021-06-11 08:46:37 +02:00
Jan Sommer
974ab1568a i386: Remove unneeded include header files 2021-06-09 18:47:07 +02:00
Jan Sommer
1ca0dc7309 waf_libbsd.py: Apply path-mappings to header-paths 2021-06-09 18:46:27 +02:00
Ryan Long
34862dd273 libbsd nfs.c: Change filesystem utime_h handler to utimens_h
Changed nfs_utime() to nfs_utimens(), changed the arguments to use
a timespec array instead of individual variables for access and
modified time.

Updates #4400
2021-05-28 16:32:42 -05:00
Christian Mauderer
e5d5e097de ipsec-tools/pfkey: Fix socket leak
setkey uses pfkey_open to open a socket. But setkey doesn't close the
socket.

The libipsec functions are used only by user space applications (setkey
and racoon). Adding the wrapper for socket makes sure that the opened
socket is registered and closes if the application exits.

Fixes #4405
2021-05-11 08:43:42 +02:00