192 Commits

Author SHA1 Message Date
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
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
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
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
Kinsey Moore
3abebabf1d linker: Enforce set alignment requirements
According to commentary on GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99143, the alignment
behavior of linker sections on which RTEMS has relied was never
guaranteed to be consistent across platforms and any alignment
requirements for linker sections needs to be enforced explicitly.
This adds those explicit alignment requirements.
2021-03-10 08:57:59 -06: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
Jan Sommer
fb5499af2f Callout: Redefine callout_reset_on for rtems
- callout_reset_on takes a cpu which is ignored by the subsequent call
to callout_reset_sbt_on in RTEMS.
- The macro is redefined to discard the cpu argument directly which
enables uses of it with cpu-dependent variables (disabled in
RETMS) without further changes, e.g. in iflib.c.
2020-04-17 13:15:51 +02:00
Sebastian Huber
46b3858b27 Update to FreeBSD stable/12 2020-02-10
Git mirror commit 0d1c391321b34b3025cf0e72f2231d836ff76da8.
2020-02-18 15:00:48 +01:00
Sebastian Huber
9d905758df EVENTHANDLER(9): Avoid multiple definition errors 2020-02-10 18:20:13 +01:00
Sebastian Huber
b5f802ef43 Add support for EARLY_COUNTER 2019-09-25 10:59:50 +02:00
Sebastian Huber
f105680799 Remove obsolete header files 2019-09-25 09:26:20 +02:00
Sebastian Huber
4a6660cee0 Fix pgsigio() warnings 2019-09-25 09:25:06 +02:00
Sebastian Huber
37323bb819 Update to FreeBSD stable/12 2019-09-23
Git mirror commit 7e8d1444023128d34fb9aa4e4515928a4f794d1b.
2019-09-23 15:07:12 +02:00
Sebastian Huber
25e5265719 C++ compatibility for kernel space <sys/sysctl.h> 2019-09-23 10:13:28 +02:00
Sebastian Huber
3411e3d738 Update to FreeBSD stable/12 2019-08-26
Git mirror commit 621e7bafbf6857451f23ba11b0495c7ac69aff89.
2019-08-26 09:39:40 +02:00
Sebastian Huber
5283630d2c Update to FreeBSD stable/12 2019-07-09
Git mirror commit 3427c3416aa3c0f25124070959cca78024b94d85.
2019-07-09 14:45:47 +02:00
Sebastian Huber
7ece7548c1 Update to FreeBSD stable/12 2019-06-26
Git mirror commit aa83598855d14cdbf7aef6b05d0617e90f87ca2f.
2019-06-26 13:44:21 +02:00
Sebastian Huber
705e362ea5 Update to FreeBSD stable/12 2019-06-05
Git mirror commit 78576620f2689e23144a1cf1bf55106cc6abe2b7.
2019-06-05 14:16:00 +02:00
Sebastian Huber
edc4bf9f71 Separate libbsd and RTEMS clock ticks 2019-05-15 13:43:49 +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
481397ff24 Update to FreeBSD stable/12 2019-03-27
Git mirror commit 43a38f188ca2e936ec78104c30ea3e24d9c1606b.
2019-03-28 08:15:38 +01:00
Sebastian Huber
eb1d30ad35 Update to FreeBSD stable/12 2019-03-11
Git mirror commit 735fe7a0a5f9c265040e2e6654a01b081d6354f1.
2019-03-11 09:41:49 +01:00
Sebastian Huber
d8e4874ea0 C++ compatibility for some kernel-space headers 2019-02-18 10:09:57 +01:00
Sebastian Huber
1ce4034521 ZONE(9): Fix UMA_PCPU_ALLOC_SIZE
Using CACHE_LINE_SIZE for UMA_PCPU_ALLOC_SIZE was a huge memory waste
since the backend memory allocator is page based.
2019-02-12 09:17:36 +01:00
Sebastian Huber
a5b385b26f Update to FreeBSD stable/12 2019-01-29
Git mirror commit 7005c2e76a6bfb359bf2f1acb8382c0b7a01f4be.
2019-01-29 10:57:36 +01:00
Sebastian Huber
1354d9bf97 Update to FreeBSD stable/12 2019-01-21
Git mirror commit 3a48f3689d65c5304cf706bbf2c5576daeb60a96.

Update #3472.
2019-01-21 10:13:58 +01:00
Sebastian Huber
aec8db05b2 Update to FreeBSD stable/12 2019-01-16
Git mirror commit 4ff7d8141f665693dd8b17090d410604888f1e9a.

Update #3472.
2019-01-21 10:00:40 +01:00
Sebastian Huber
8d5fc9d52a blist: Fix u_daddr_t for 32-bit targets
The daddr_t is defined in <sys/types.h> by Newlib as long.
2018-11-27 09:13:54 +01:00
Sebastian Huber
e0b4edbdcc Update to FreeBSD head 2018-11-15
Git mirror commit a18b0830c4be01b39489a891b63d6023ada6358a.

Update #3472.
2018-11-15 10:56:14 +01:00
Sebastian Huber
b3169c2a6a Update to FreeBSD head 2018-10-23
Git mirror commit 59f44d20be3f99d181ca742e636d45fc39ec982b.

This commit updates OpenSSL to version 1.1.1.  This required an update
of racoon which uses some internal stuff from OpenSSL and seems to be
mostly unmaintained, e.g. there is update in the FreeBSD ports to cope
with OpenSSL 1.1.1.

Update #3472.
2018-10-25 08:38:45 +02:00
Sebastian Huber
3489e3b639 Update to FreeBSD head 2018-09-17
Git mirror commit 6c2192b1ef8c50788c751f878552526800b1e319.

Update #3472.
2018-09-21 10:29:41 +02:00
Sebastian Huber
bcdce02d9b Update to FreeBSD head 2018-06-01
Git mirror commit fb63610a69b0eb7f69a201ba05c4c1a7a2739cf9.

Update #3472.
2018-09-21 10:29:41 +02:00
Sebastian Huber
2df56dbd60 Update to FreeBSD head 2018-04-01
Git mirror commit 8dfb1ccc26d1cea7e2529303003ff61f9f1784c4.

Update #3472.
2018-09-21 10:29:40 +02:00
Sebastian Huber
18fa92c2dc Update to FreeBSD head 2018-02-01
Git mirror commit d079ae0442af8fa3cfd6d7ede190d04e64a2c0d4.

Update #3472.
2018-09-21 10:29:39 +02:00
Sebastian Huber
bb80d9df8b Update to FreeBSD head 2017-12-01
Git mirror commit e724f51f811a4b2bd29447f8b85ab5c2f9b88266.

Update #3472.
2018-09-21 10:29:38 +02:00
Sebastian Huber
e4a8065910 Update to FreeBSD head 2017-10-01
Git mirror commit b2f0376b45428f13151d229c5ae9d4d8f74acbd1.

Update #3472.
2018-09-21 10:29:37 +02:00
Sebastian Huber
c37f9fba70 Update to FreeBSD head 2017-08-01
Git mirror commit f5002f5e5f78cae9f0269d812dc0aedb0339312c.

Update #3472.
2018-09-21 10:29:37 +02:00
Sebastian Huber
de261e0404 Update to FreeBSD head 2017-06-01
Git mirror commit dfb26efac4ce9101dda240e94d9ab53f80a9e131.

Update #3472.
2018-09-21 10:29:36 +02:00
Sebastian Huber
cf447b951a Remove struct callout::c_cpu
This is an optimization of the callout handling.  In libbsd all callouts
are handled by the one and only timer server.
2018-09-17 09:10:52 +02:00
Sebastian Huber
1d99262f59 libkern.h: Avoid call overhead for bcmp() 2018-08-09 07:59:38 +02:00
Christian Mauderer
9ea8664ba2 random: Implement read_random via getentropy. 2018-08-01 09:55:27 +02:00
Sebastian Huber
137250239e Make sure CALLOUT_DFRMIGRATION is not used
This flag supports the callout migration in FreeBSD.  This feature is
not supported by libbsd.
2018-07-26 14:49:35 +02:00
Sebastian Huber
e37f03e47a Make sure CALLOUT_PROCESSED is not used
This flag is only used in combination with the callout expire list,
which we do not use in libbsd.
2018-07-26 14:35:56 +02:00
Sebastian Huber
6d9d7b1956 Critical bug fix for callouts
FreeBSD has two callout executors, one in software and one in hardware
interrupt context.  In libbsd, all callouts are executed by the timer
server.  Entirely remove the different execution contexts for libbsd.
Previously, this was not properly done which could result an invalid
callout_drain() sequence leading to system memory corruption.
2018-07-26 14:12:46 +02:00
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
4e17f143de DEVICE(9): Fix __BUS_ACCESSOR() 2018-01-08 14:01:02 +01:00
Sebastian Huber
c360b1a2dc Revert "RWLOCK(9): Add reader/writer lock implementation"
This was accidentally committed.

This reverts commit 97a98f6cd767b3a68279890488c7b451788f84f4.
2017-11-17 10:49:59 +01:00
Sebastian Huber
b5822c2a0a Revert "SX(9): Implement with reader/writer lock"
This was accidentally committed.

This reverts commit cc7a8d87e7307db738bf39ab1ca3ce1053f1c163.
2017-11-17 10:49:31 +01:00