Commit Graph
486 Commits
Author SHA1 Message Date
Benjamin Valentin c29f133a63 core/msg_bus: clarify API of msg_bus_post()
Receiving threads must not modify the contents of the message as this
is racy by definition.

Also make `msg_bus_post()` accept `const void*` instead of `char *`.
2020-05-20 10:44:11 +02:00
Francisco Molina cb5cbe7431 cpu/cortexm_common: add inlined header only def for irq_%
irq_% are not inlined by the compiler which leads to it branching
to a function that actually implement a single machine instruction.

Inlining these functions makes the call more efficient as well as
saving some bytes in ROM.
2020-05-12 16:37:34 +02:00
Benjamin Valentin b3eb59c30e core/msg: add message bus 2020-04-28 13:35:05 +02:00
Francisco Molina cbcb882454 core/include: add xtstr macro 2020-04-21 15:10:55 +02:00
Koen Zandberg 46b6a95309 Merge pull request #13671 from jia200x/pr/move_thread_flags_error
core/thread_flags: remove #error from header file
2020-03-31 15:48:41 +02:00
Kaspar Schleiser 8efe5960aa core: uncrustify 2020-03-30 17:02:08 +02:00
Kaspar Schleiser f99bc894de core: make some formatting uncrustify friendly (or ignore) 2020-03-30 17:00:32 +02:00
JulianHolzwarth dd6e51b1eb core/mutex.c _mutex_lock uses an int pointer
_mutex_lock uses a volatile int pointer for the parameter blocking instead of an int.
2020-03-26 17:26:07 +01:00
Jose Alamos 027a47e3a8 core/thread_flags: remove #error from header file
This commit removes the #error from the thread_flags header.
This #error makes the usage of
if(IS_USED(MODULE_THAT_DEPENDS_ON_THREAD_FLAGS)) pattern harder,
because the error is triggered each time the header is included.
If a module uses any thread_flags function it will fail in link time
anyway.
2020-03-20 16:59:34 +01:00
Kaspar Schleiser 1b8ec38e34 core/panic: add PANIC_EXPECT_FAIL 2020-02-24 10:48:43 +01:00
Leandro Lanzieri ea8c85ae8b core/debug: Fix code style errors 2020-02-18 13:20:06 +01:00
Leandro Lanzieri 981b4eb8d0 core/debug: Fix documentation of ENABLE_DEBUG macro 2020-02-18 13:20:06 +01:00
Karl Fessel 4445faaa3a core/shed: remove not needed bitarithm include add missing
bitarithm.h is not needed for the interface of shed but may cause conflicts
due to different definitions of SETBIT and CLRBIT

common implementations are: (value, offset) xor (value, mask) bitarithm
implements the later

frac.c and nrf52/usbdev.c use bitarithm.h but where missing the include

sam0/rtt.c defined a bit using mask from bitarithm,
changed that to the soulution used in sam0/rtc.c
2020-02-05 12:45:29 +01:00
JulianHolzwarth 2655c97fd5 core/thread.c: new function for zombie state 2019-12-11 16:48:31 +01:00
JulianHolzwarth 6b0156eac5 core/include/sched.h: new thread_status_t thread state 2019-12-11 15:44:59 +01:00
Kaspar Schleiser 9dfcabf0d8 core: fix typos 2019-11-23 22:39:38 +01:00
Francois Berder 4a31f94cfc many typo fixes
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2019-11-23 22:39:07 +01:00
Benjamin Valentin a98a9e12e9 core: debug: introduce DEBUG_PUTS()
The DEBUG() function requires a minimal stack size for printf().
This is not always availiable.
To still allow static debug messages, introduce DEBUG_PUTS() that
gets resolved to puts() and does not carry such stack size requirements.
2019-11-20 19:09:47 +01:00
Leandro Lanzieri 0dd776a9e6 core/kernel_defines: Introduce 'IS_ACTIVE' macro.
IS_ACTIVE allows to evaluate macro definitions in non-preprocessor
expressions. It takes a macro that may be defined to 1 or not defined at
all and expands to 1 or 0 respectively.
2019-11-11 12:53:03 +01:00
Marian Buschsieweke e0cec17ec8 core/rmutex: Made C++ compatible 2019-10-24 23:08:36 +02:00
Gunar Schorcht 54e915eec5 core/assert: allow multiple static_asserts
Uses an own scope for the definition of the enum const to allow multiple `static_assert` statements within the same function in non-C11 environments.
2019-10-19 16:16:24 +02:00
JulianHolzwarth fbf6a665e1 core/thread.c: change thread_getstatus return type
thread_status_t instead of int
2019-10-15 15:55:05 +02:00
Francisco Molina 1caf6610cb sys: add schedstatistics module 2019-09-13 11:37:44 +02:00
Martine Lenders 1887e9d3f4 Merge pull request #12203 from JulianHolzwarth/pr/core/thread/hotfix_prio_type
core/thread.c: thread_create fix priority type
2019-09-12 12:41:13 +02:00
JulianHolzwarth 1d16b3d5dc core/thread.c: thread_create fix priority type
Bugfix: changing type of priority to uint8_t to be consistent with struct _thread
2019-09-11 17:42:48 +02:00
Francisco Molina fc58ebbd97 core/sched: separate sched_cb from schedstatistics 2019-09-10 17:08:21 +02:00
francisco 3d62fa05b8 core/schedstatistics: refactor
- add init_schedstatistics function to be called after
  auto_init, that way xtimer_is init is called before
  the first call to xtimer_now
- register schedstatics code as a callback to be executed
  on each sched_run()
2019-09-10 17:07:54 +02:00
Benjamin Valentin fcf31724a6 core: add ARRAY_SIZE macro 2019-08-06 19:31:10 +02:00
Alexandre Abadie fdfd3133f7 core/sched_native: fix duplicate core_sched group definition
Introduce core_sched_native group and put this in group in parent
core_sched group
2019-08-05 16:57:37 +02:00
Martine Lenders db20a057ae core: rename thread_state_t to thread_status_t
This way it can't come to name collisions on `native` with Mac OSX'
threading library [1].

[1]: https://opensource.apple.com/source/xnu/xnu-792/osfmk/mach/thread_status.h.auto.html
2019-05-11 12:25:07 +02:00
Kaspar Schleiser 0ec9c57b2b add copyrights from IOTPUSH project 2019-05-02 12:09:37 +02:00
Hauke Petersen c71fb4a435 core/clist: add clist_count() 2019-03-23 23:29:53 +01:00
Vincent Dupont e8619b327b thread: allow overriding THREAD_PRIORITY_MAIN 2019-03-20 14:09:16 +01:00
Marian Buschsieweke 4c3e92f183 core: Made thread state an enum
- Introduced enum type `thread_state_t` to replace preprocessor macros
- Moved thread states to `sched.h` for two reasons:
  a) Because of the interdependencies of `sched.h` and `thread.h` keeping it in
     `thread.h` would result in ugly code.
  b) Theses thread states are defined from the schedulers point of view, so it
     actually makes senses to have it defined there
2019-02-13 13:31:52 +01:00
Sebastian Meiling dceff6c22f doxygen: use ingroup instead of addtogroup in core 2019-01-09 08:42:59 +01:00
Sebastian Meiling 81e293422c doxygen: refine core_sync grouping
- Move `@defgroup core_sync` group definition to doc.txt
- Adapt usage of `@ingroup core_sync` accordingly
2019-01-09 08:42:59 +01:00
Alexandre Abadie f2194a8e26 core/irq: fix 2 missing words in documentation 2019-01-07 20:50:59 +01:00
Kaspar Schleiser 4878cf2119 Merge pull request #10400 from miri64/core/enh/thread_has_queue_func
core: provide function to check msg queue initialization
2018-12-19 18:41:39 +01:00
Martine Lenders 7835db5ec3 core: provide function to check msg queue initialization
This makes it easier to refactor that part of the `thread_t` structure
later on.
2018-12-19 15:39:50 +01:00
Kaspar Schleiser 2a03e6fdbd Merge pull request #10264 from gebart/core/schedstats_t
core: Rename typedef schedstat -> schedstat_t
2018-12-18 12:51:29 +01:00
Hauke Petersen 0e4f5bf894 core/clist: add missing function to table in doc 2018-12-11 11:15:18 +01:00
Sebastian Meiling 43d39b7a33 Merge pull request #8333 from samkumar/feature-condition-variable
core: condition variable implementation
2018-11-30 21:15:53 +01:00
Sam Kumar fb8edbb610 core: condition variable implementation 2018-11-30 11:22:07 -08:00
Joakim Nohlgård 5b68bbb2cf core: Rename typedef schedstat -> schedstat_t
To follow naming conventions
2018-10-26 09:10:21 +02:00
PeterKietzmann 0ecaaf021c core/bitarithm: add explicit 32-bit function 2018-10-08 13:57:21 +02:00
Martine Lenders 2350c46740 Merge pull request #9826 from kaspar030/fix_byteorder_bebuf
core/byteorder: fix bebuftohs() / htobebufs() on big endian
2018-09-03 14:35:29 +02:00
Kaspar Schleiser 2d27b32567 Merge pull request #9364 from gschorcht/thread_arch
core: add architecture dependent thread information
2018-08-24 12:10:20 +02:00
Kaspar Schleiser accf50ce07 core/byteorder: fix byteorder_htobebufs, byteorder_bebuftohs
Logic was swapping byte order on Big Endian platforms
2018-08-23 22:07:44 +02:00
Martine Lenders ec7bf7a854 core: rmutex: include stdint.h
For some reason the LLVM/clang version of `stdatomic.h` does not include
`stdint.h`, though it uses types from it.
2018-08-03 18:34:56 +02:00
Gunar Schorcht 9db03537b9 core/pthread: make them compilable with g++ 2018-07-21 14:24:57 +02:00