Commit Graph

296 Commits

Author SHA1 Message Date
Chris Johns
1524f95e93 i386/pc686: Fix kernel bus DMA for the PC686 BSP
The x86 provides it own bus space support. Use the generic
bus space calls. This however requires the BUS_SPACE_MEM tag
be provided for all architectures. Make the generic value
match the x86 value.
2023-10-04 16:13:45 +11:00
Chris Johns
7cc487f2d3 rtemsbsd/vfs: Use VOP_REMOVE to remove file nodes 2023-08-07 07:58:30 +10:00
Chris Johns
fdde806c50 rtemsbsd/syscall: Set unitialised variable in open
The open path length was not set when at the root node and this
sometimes failed the current directory checks.
2023-08-06 15:45:21 +10:00
Chris Johns
f55a3dd32f nfs: Support multiple mounts with the same path basename
NFSv4 mounts NFS file systems to the flat root of a pseudo file
system. This change allow the same basename to be used.
2023-07-21 14:56:02 +10:00
Chris Johns
1dfdee9ce9 freebsd/vfs: Pass in the td's cred to the VFS calls
Closes #4723
2023-07-21 14:56:02 +10:00
Chris Johns
65913f4b3b syscall/open: Reference the path info directory vnode
The kernel open call requires a path so to open a file we need to
set the current directory to the parent vnode. If the open mode is
create the path info vnode is the directory to perform the open
create in. Using the parent node creates the file in wrong path.

Updates #4723
2023-07-21 14:56:02 +10:00
Aaron Nyholm
7170d1ed14 rtemsbsd/rc_conf: Fixed non-nullterminated string causing crashes 2023-04-13 09:35:19 +10:00
Sebastian Huber
ed25b390fc Use rtems_task_exit() 2022-06-01 10:34:36 +02:00
Sebastian Huber
7bc7bae957 Add program destructor support
Update #4650.
2022-05-12 07:45:30 +02:00
Chris Johns
f94a67a68d rtemsbsd: Clear bus DMA memory a byte at a time
- memset may be optimized for performance and might work
  with device type memory. Clear a byte at a time.
2021-10-21 11:23:30 +11: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
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
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
e56b5cb135 kern: Add kernel trace support (KTR)
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
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
2a01430ba5 rtemsbsd: Catch timeout overflows
Update #4475
2021-08-28 10:24:37 +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
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
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
Kinsey Moore
0c60fe524e rtembsd: Fix alignment of allocations for 64bit
Alignment on 64bit hardware is strict in comparison to running in an
emulator. This resolves an alignment exception when allocating memory on
real hardware.
2021-03-10 08:57:59 -06:00
Sebastian Huber
5eed6acb5f rtems-bsd-cxx: Undefine _GNU_SOURCE
At least the powerpc C++ compiler defines currently _GNU_SOURCE due to a GCC
configuration error.  This leads to conflicting qsort_r() definitions.

As a workaround undefine _GNU_SOURCE for this C++ compatibility test file.

Update #4078.
2020-09-14 17:13:12 +02:00
Sebastian Huber
272d5f522d ifmcstat: Port to RTEMS 2020-09-07 10:12:44 +02:00
Sebastian Huber
bd7e6eeb31 Conditionally include <bsp/linker-symbols.h>
Remove superfluous <bsp.h> include.
2020-08-05 15:04:48 +02:00
Christian Mauderer
5e3780023c busdma: Don't sync nocache memory on ARM
The busdma shouldn't try to flush or invalidate cache in a nocache area.
2020-07-29 13:09:11 +02:00
Christian Mauderer
cdd6003eb8 busdma: Option to round to cache lines on sync
Some targets support only flushing or invalidating complete cache lines.
In this cases misaligned buffers might lead to unexpected results. This
patch adds a flag that allows drivers to signal to the bus dma driver
that it is OK to round a buffer to the next full cache line. That's for
example necessary if a driver wants to send out 14 byte via a USB DMA.
Only the driver knows whether these 14 bytes are located in an otherwise
unused cache line aligned buffer.
2020-07-29 13:09:11 +02:00
Sebastian Huber
26866d2c1f Fix linker errors with minimal build set 2020-07-08 10:21:20 +02:00
Sebastian Huber
afaeccc05a NVMECONTROL(8): Port to RTEMS
Update #3821.
2019-11-13 13:22:36 +01:00
Sebastian Huber
4a6660cee0 Fix pgsigio() warnings 2019-09-25 09:25:06 +02:00
Sebastian Huber
bd6b20c0e6 nexus: Avoid NULL pointer access 2019-09-23 10:13:29 +02:00
Sebastian Huber
d1c8a7fbf5 Add wrapper for strndup() 2019-09-11 10:25:04 +02:00
Nils Hölscher
fd86c091b9 rtems/rtems-kernel-nexus.c: LibBSD init now uses all pass levels.
I observed all Modules loading in the last fdt pass.
The reason was, nexus bus loading with BUS_PASS_DEFAULT.
2019-08-12 08:13:11 +02:00
Sebastian Huber
312f705d4f EPOCH(9): Add epoch_drain_callbacks() 2019-07-09 13:56:23 +02:00
Sebastian Huber
ed1a63384b EPOCH(9): Avoid inline functions
FreeBSD changed the epoch_enter() and epoch_exit() inline functions into
proper functions after a performance analysis to avoid code bloat.
2019-07-09 13:37:34 +02:00
Sebastian Huber
660a8835eb SLEEPQUEUE(9): Fix timeout handling 2019-07-05 10:20:47 +02:00
Sebastian Huber
8f12ed3824 Add RTEMS-specific getcredhostuuid() 2019-06-05 14:15:57 +02:00
Sebastian Huber
b5f8d4831d Use _SMP_Unicast_action()
It is a bit more efficient.
2019-05-21 07:40:53 +02:00
Sebastian Huber
a87e0f4f5c Update due to API changes
Close #3749.
2019-05-15 15:45:03 +02:00
Sebastian Huber
edc4bf9f71 Separate libbsd and RTEMS clock ticks 2019-05-15 13:43:49 +02:00
Sebastian Huber
510d1c96f6 Include missing <stdlib.h> to fix warnings 2019-05-15 13:43:46 +02:00
Sebastian Huber
061e27912c Remove unused maxusers 2019-05-15 13:43:44 +02:00
Sebastian Huber
0a8c0ce47f Remove dangerous weak definition of getentropy()
All BSP supporting libbsd should provide this function.
2019-05-15 13:43:41 +02:00
Sebastian Huber
49c75e331e Use static inline functions for jail and prison
This helps the compiler to optimize away dead code.
2019-05-13 09:34:01 +02:00
Sebastian Huber
6e5c632248 Fix zero-copy mbuf support
In 2017 there was a change in the mbuf API.
2019-05-13 09:34:00 +02:00
Sebastian Huber
647dd08ae2 Update due to API changes 2019-04-11 09:38:45 +02:00