Leandro Lanzieri
a7cc59d9f0
core/Kconfig: move MODULE_CORE_LIB symbol to fix menuconfig display
2022-03-18 08:23:46 +01:00
d248b2d785
core/lib: hide _XTSTR()
from doxygen
2022-03-10 15:35:02 +01:00
003d64dd6c
core/lib: add doxygen for LOG_*
macros
2022-03-10 10:15:14 +01:00
ca4f1ec05b
core/lib: add doxygen for BIT0
- BIT31
2022-03-10 10:03:14 +01:00
f94d72b7fe
core: add core_lib to Kconfig
2022-03-09 21:43:05 +01:00
3db7c1150a
core: split out library code
...
This commit splits core into it's scheduler/IPC part and into other code
that is either used or uses the scheduler, through defined APIs.
2022-03-09 21:43:05 +01:00
Martine Lenders
bb89334322
core: add functionality to check queue state of another thread
2022-03-03 16:50:34 +01:00
7c0ddbd1d8
Merge pull request #17472 from chrysn-pull-requests/doc-flags-msgs
...
core (largely doc): Differentiate message types from thread flags
2022-02-27 21:10:47 +01:00
chrysn
b923fec952
core/thread: Add constant value to check custom flags against
...
Co-authored-by: benpicco <benpicco@googlemail.com>
2022-02-26 22:17:33 +01:00
chrysn
4bbe0ec42d
core/msg doc: No need for system-wide uniqueness
2022-02-26 22:08:31 +01:00
Benjamin Valentin
1bf151f01f
core/init: declare board_init()
2022-02-25 15:08:58 +01:00
Karl Fessel
726c461cb5
Merge pull request #17574 from kfessel/p-fix-asserth
...
core/assert: avoid including panic.h with assert.h
2022-02-15 11:57:55 +01:00
Karl Fessel
ca112c224a
core/assert.h: doxygen brief for __NORETURN
2022-02-15 10:34:54 +01:00
Karl Fessel
29caf39a9a
core/panic.c: cleanup unneeded includes
2022-02-12 18:30:58 +01:00
Karl Fessel
0b52b3e62e
core/assert: remove panic include from assert.h
2022-02-12 18:30:58 +01:00
benpicco
4aa90d3dc6
Merge pull request #16919 from maribu/core/rmutex
...
core/rmutex: use atomic utils
2022-02-04 11:56:05 +01:00
benpicco
5a57dec71a
Merge pull request #17093 from maribu/core/change_prio
...
core/sched: add sched_change_priority()
2022-01-28 20:01:20 +01:00
chrysn
fef782f735
core/thread doc: Point to helper function
2022-01-20 14:18:40 +01:00
chrysn
95b5052be4
Merge pull request #17502 from chrysn-pull-requests/queue-on-stack-never-quit
...
tests: Fix thread return with local message queue
2022-01-15 23:26:14 +01:00
Marian Buschsieweke
b6b7065ddc
core/rmutex: use atomic utils
...
Replace use of C11 atomics with atomic utils. This fixes
> error: address argument to atomic operation must be a pointer to a
> trivially-copyable type ('_Atomic(int) *' invalid)
error when compiling on AVR with LLVM.
2022-01-14 09:52:17 +01:00
Marian Buschsieweke
d4e051596c
core/init: minor code cleanup
2022-01-12 16:15:48 +01:00
chrysn
b4a185132a
core/msg: Document caution needed when having queue on the stack
2022-01-11 21:51:14 +01:00
5083061995
Merge pull request #17273 from maribu/core/IS_CT_CONSTANT
...
core: Add IS_CT_CONSTANT()
2022-01-08 00:21:07 +01:00
Marian Buschsieweke
68424a924c
core: Add IS_CT_CONSTANT()
...
This adds a simple macro to check (at C level) whether a given
expression is proven to be compile time constant and suitable for
constant folding. This allows writing code like this:
```C
int gpio_read(gpio_t pin) {
if (IS_CT_CONSTANT(pin)) {
/* this implementation should even be able to use the port and
* pin number as immediate in inline assembly */
}
else {
/* less efficient implementation that cannot use port and pin
* number as immediate in inline assembly */
}
}
```
2022-01-06 23:30:56 +01:00
8272e4fbd2
Merge pull request #17359 from benpicco/irq_is_in-bool
...
core: change return type of irq_is_in(), irq_is_enabled() to bool
2022-01-06 18:13:20 +01:00
chrysn
79e0e94312
core/thread doc: Contrast to messages
2022-01-05 19:33:51 +01:00
chrysn
5e7d65fc1f
core/thread: Fix documentation
...
This has been wrong since 317b0133
when a third predefined flag was
removed.
2022-01-05 19:04:35 +01:00
Marian Buschsieweke
8608104fe5
core/kernel_defines.h: drop BUILD_BUG_ON()
...
This provides the same functionality as `static_assert()` provided by
C11 and has no advantages compared to it. Hence, encourage users to use
standard C functionality instead.
2022-01-05 15:41:39 +01:00
2b5ac8d422
Merge pull request #17262 from benpicco/msg_avail-return
...
core/msg: make msg_avail() return 0 on no queue
2022-01-05 14:13:28 +01:00
b84c3e47bf
Merge pull request #17267 from maribu/core/alignof
...
core/kernel_defines.h: drop ALIGN_OF()
2022-01-05 14:10:00 +01:00
chrysn
49ff487ea2
core: Warn about using irq_enable
2021-12-21 18:03:55 +01:00
Vitor Batista
921fdd0975
core/include/debug.h: minor debug fix
2021-12-08 17:09:17 +01:00
Benjamin Valentin
41a5b7ef7a
core: change return type of irq_is_in(), irq_is_enabled() to bool
...
This only cleans up the API, no change in behavior or users of the API
is expected.
2021-12-08 15:53:15 +01:00
Marian Buschsieweke
b9c07f9622
core/sched: silence -Wcast-align
2021-12-03 10:12:34 +01:00
Benjamin Valentin
b5ea78ad47
core/msg: make msg_avail() return 0 on no queue
...
For the caller there should be no difference if there is no message
in the queue and if there can't be a message in the queue.
The current API works as one would expect if there is a message queue,
but once called from a thread that does not have a message queue
configured, code that does
while (msg_avail())
will end up in an infinite loop.
Remove this foot-gun from the API by making the return value of
msg_avail() independend of the availability of a message queue.
2021-11-29 12:04:16 +01:00
Marian Buschsieweke
9535447e6f
core/kernel_defines.h: drop ALIGN_OF()
...
Since we moved to C11 now for all platforms, using `alignof()` provided
by `<stdalign.h>` has become the better option.
2021-11-25 09:20:22 +01:00
Jan Romann
3c86b74dc6
core: uncrustify
2021-11-18 15:44:00 +01:00
Marian Buschsieweke
d7a0ea1eec
core/bitarthm: suppress false positives
...
Co-authored-by: chrysn <chrysn@fsfe.org>
2021-11-18 09:45:22 +01:00
Marian Buschsieweke
58e197098d
core: add WITHOUT_PEDANTIC() and DECLARE_CONSTANT()
...
`WITHOUT_PEDANTIC(expr)` disables `-Wpedantic` for `expr`, but switches
back to the previous diagnostic settings afterwards. This helps defining
macros that are not strictly ISO compliant without having to drop the
`-Wpedantic` flag entirely.
`DECLARE_CONSTANT(identifier, const_expr)` declares an anonymous `enum`
constant named `identifier` and assigns it the value `const_expr`. Here,
`const_expr` has to be a compile time constant, but is not needed to be
an integer constant expression. It basically is a tool to magically
convert a non-integer constant expression into a integer constant
expression.
2021-11-10 15:22:47 +01:00
Benjamin Valentin
e2639cb53a
core/include/kernel_defines.h: Fix index_of()
...
Calculate the size of the element based on the array given, not based
on the element pointer.
The element might as well be given as a `void *` via a callback.
In that case, if the user forgets to cast the `void *` to the array
element type, the calculation returns false values.
Disarm this foot gun by basing the element size off the given array.
2021-11-06 00:35:39 +01:00
Benjamin Valentin
01a49d3d19
core/include/kernel_defines.h: add index_of() macro
2021-11-05 16:42:38 +01:00
Martine Lenders
e27fd3018e
core/thread.h: fix new uncrustify error
2021-11-05 09:27:00 +01:00
Martine Lenders
f08989a3c8
core: make SCHED_TEST_STACK boolean and default to 1 with DEVELHELP
2021-11-05 09:27:00 +01:00
Hauke Petersen
3d7d797a57
core/sched: add sched_change_priority() function
...
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2021-11-02 20:44:32 +01:00
Marian Buschsieweke
ff7e7c26cf
core/log: Add anchor to doc to allow stable references
2021-10-10 21:35:31 +02:00
Martine Lenders
ea8e632eda
Merge pull request #16765 from benpicco/RIOT_VERSION_CODE
...
build system: add machine-readable RIOT_VERSION_CODE macro
2021-09-22 12:47:35 +02:00
Benjamin Valentin
7ef2594327
core/include/kernel_defines.h: add RIOT_VERSION_NUM macro
2021-09-21 17:43:29 +02:00
4fd1ae89a7
Merge pull request #16463 from kfessel/p-sched-int
...
core/sched: add runq_callback hook and runq inspection functions
2021-09-15 15:43:50 +03:00
2b2c5fe746
core/thread: provide getters for thread_t fields as used by ps()
2021-09-15 10:16:45 +02:00
chrysn
137399c8cb
core/msg doc: Clarify; elaborating on interaction with queue
2021-09-01 14:56:41 +02:00
Hauke Petersen
b526394d82
core/irq.h: add irq_is_enabled() function
2021-08-25 08:01:05 +02:00
Jan Romann
4384795cb9
treewide: Remove excessive newlines
2021-08-13 19:50:38 +02:00
Karl Fessel
671a7edca1
core/sched: uncrustify sched_cb declaration
...
this is a change out of this PR scope to reduce
the number of uncrustify complains for future edits
2021-08-09 14:22:07 +02:00
Karl Fessel
3508012942
core/sched: name inspection functions the same as the used clist fns
2021-08-09 14:18:18 +02:00
Francisco
d7b3328601
Merge pull request #16098 from kfessel/p-remove-lifo
...
core/lifo: Remove lifo [after 2021.04]
2021-06-15 13:55:30 +02:00
JulianHolzwarth
8309889e39
core/msg.c: fixed msg_queue_print()
2021-06-02 01:28:22 +02:00
Karl Fessel
9f00528a58
core/sched: add runq_callback hook and runq inspection functions
2021-05-10 15:01:58 +02:00
95a2456457
Merge pull request #16330 from kfessel/p-add-clist-special
...
core/clist: add special cardinality tests and matching unittest
2021-04-15 12:14:58 +02:00
Karl Fessel
5735d99971
core/clist: add special cardinality tests and matching unittest
...
adds clist_exactly_one() and clist_more_than_one()
and a unittest that tests them
2021-04-14 21:00:10 +02:00
Karl Fessel
1dde0f42d4
core/sched: keep scheduler clist internal to sched
...
adds sched_runq_advance(prio)
used it in core/thread and
test malloc_thread_safety
2021-04-14 09:53:04 +02:00
020945a773
core/clist: add clist_is_empty()
2021-04-09 10:54:29 +02:00
Joakim Nohlgård
87727febd7
core/msg: Fix mismatched printf bool format
...
_Bool will be extended to int when calling the variadic printf function.
2021-03-24 12:01:23 +01:00
Joakim Nohlgård
783c407787
core/msg: Fix mismatched printf signed/unsigned format
...
enum signedness depends on the platform settings, use explicit casts for robustness
2021-03-24 12:01:18 +01:00
Joakim Nohlgård
a83516b2f6
core/msg: Fix mismatched printf signed/unsigned format
...
cib_avail returns unsigned int
2021-03-24 12:01:07 +01:00
e8e8405c4a
core/thread: move thread configuration into seperate header
2021-03-02 11:56:11 +01:00
Karl Fessel
1c1f051ab7
core/lifo: Remove lifo
2021-02-27 11:59:36 +01:00
Karl Fessel
55a0ca402b
core/lifo: deprecate file for remove after 2021.04
2021-02-27 10:17:33 +01:00
Karl Fessel
9ab0681634
core/lifo: remove lifo.c, keep api with lifo.h
...
use LOG_DEBUG instead of DEBUG
2021-02-26 17:45:31 +01:00
2861d1f353
core/xfa: typeof() -> __typeof__()
2021-02-23 13:37:19 +01:00
df4dc36d91
core/xfa: add "experimental" note
2021-02-18 10:46:08 +01:00
d310044a88
core/xfa: fix doxygen issues
2021-02-18 10:46:08 +01:00
249ed5f2e1
core/include/xfa.h: uncrustify
2021-02-18 10:46:08 +01:00
2bc7bb4740
core/xfa: make externc happy
2021-02-18 10:46:08 +01:00
e827f0bdf1
core/xfa: add comments explaining the pragmas
2021-02-18 10:46:08 +01:00
50dc68bd21
core/xfa: make const XFA's volatile
...
This prevents gcc from figuring out that an XFA that has been
initialized in the same file is technically empty when the compilation
unit is seen by itself. This happened with gcc 10.1.0 on msp430-elf.
2021-02-18 10:46:08 +01:00
b54afa1449
xfa: remove duplicate "const" from _XFA_CONST
2021-02-18 10:46:08 +01:00
ac549abbb9
xfa: remove common -Txfa.ld include
2021-02-18 10:46:08 +01:00
bdd59ae7f2
core: disable -Warray-bounds for XFA users
2021-02-18 10:46:08 +01:00
66092f5506
core: Introduce cross file arrays (XFA)
...
Co-Authored-By: Joakim Nohlgård <joakim.nohlgard@eistec.se>
2021-02-16 14:21:32 +01:00
chrysn
6145949f88
core/mutex: Add assert guard against usage without threads
2021-02-15 06:01:01 +01:00
Martine Lenders
9b40bb63c2
core: apply uncrustify patches
2021-02-02 22:21:14 +01:00
9d5f87bf67
core/thread: Allow for inline thread_yield_higher
...
Similar to irq.h, this allows for inline the often trivial
thread_yield_higher function
2021-01-19 11:03:20 +01:00
f0ce992d4a
core/thread: uncrustify header file
2021-01-19 10:28:58 +01:00
323fa3b5ac
core/mutex: fix typo in documentation
2020-12-29 11:48:48 +01:00
Marian Buschsieweke
8bbe56c302
core/mutex: compatibility with non-C languages
...
Due to limited compatibility with C, we cannot use the inline mutex_trylock
implementation for C++. Instead, we provide a mutex_trylock_ffi() intended for
foreign function interfaces. This should also benefit rust users.
2020-12-09 11:53:48 +01:00
Marian Buschsieweke
472d6d0abc
core/mutex: fix documentation
2020-12-08 23:04:16 +01:00
229291ef01
Merge pull request #15442 from maribu/mutex_abort
...
core/mutex: Add mutex_cancel
2020-12-08 17:12:52 +01:00
Marian Buschsieweke
df66dd0272
core/mutex: uncrustify
2020-12-08 14:50:50 +01:00
Marian Buschsieweke
e348407888
core/mutex: Add mutex_cancel() & mutex_lock_cancelable()
...
Add a version of `mutex_lock()` that can be canceled with the obvious name
`mutex_lock_cancelable()`. This function returns `0` on success, and
`-ECANCELED` when the calling thread was unblocked via a call to
`mutex_cancel()` (and hence without obtaining the mutex).
This is intended to simplify the implementation of `xtimer_mutex_lock_timeout()`
and to implement `ztimer_mutex_lock_timeout()`.
2020-12-08 14:50:49 +01:00
benpicco
aabd5eaca5
Merge pull request #15506 from kaspar030/refactor_thread_info
...
core: refactor thread info
2020-11-26 13:01:09 +01:00
ceea0ba949
core/thread: add thread_is_active()
2020-11-25 20:49:00 +01:00
1d5e2e9cd9
all: remove traces of kernel_types.h
...
Automatically removed using:
$ git grep -l kernel_types | xargs sed -i '/^#include .kernel_types/d'
2020-11-25 17:52:34 +01:00
017e9e9d4d
core/thread: add thread_get_status()
2020-11-25 14:39:22 +01:00
5321bcde89
core: thread: move thread_state_to_string() from ps.c
2020-11-25 14:35:00 +01:00
65f997026f
core: drop kernel_types.h
2020-11-25 13:18:53 +01:00
1711b4b649
core/include/kernel_types.h: re-add c++ compat parts
2020-11-23 17:13:35 +01:00
0b801c4de0
all: adapt to moved sched defines
2020-11-23 16:56:34 +01:00
7fa8b69912
core: include inttypes.h in sched.h
...
sched.h now defines PRIkernel_pid to PRIi16, which in turn is defined in
inttypes.h.
2020-11-23 16:56:34 +01:00
1ca0c23173
core/msg: adapt to changed thread define location
2020-11-23 16:56:34 +01:00
369e9b30e2
core: move scheduler defines to sched.h
2020-11-23 16:56:34 +01:00