Marian Buschsieweke
7749e621b8
core: Fix undefined behaviour in C11 atomics
...
Casting pointers to volatile memory to pointers to regular memory is permitted,
but using those pointers to access the memory results in undefined behavior.
This commit changes the casts to no longer drop the volatile qualifier.
References: https://en.cppreference.com/w/c/language/volatile
2019-05-15 15:47:43 +02:00
be66fb0507
core/atomic_c11: fix declarations
...
gcc 9 started complaining about type mismatches:
1. all int sized return types are expected to be
"unsigned int" instead of e.g., "uint32_t"
2. all arguments are expected to be passed as (volatile)
void * pointers
This commit fixes 1. by doing ifdef'ed typedefs for I2 and I4, an fixes
2. by using void pointers, then casting within the template bodies.
2019-05-13 17:38:10 +02:00
e4fcac91a1
core/atomic_sync: guard by GCC >= 4.7
...
The documentation states that the implementation is missing for
gcc < 4.7, but then unconditionally compiles it, overriding the
builtins.
(gcc 9 starts complaining about mismatch of declarations.)
2019-05-13 13:18:21 +02:00
0d4f7b2715
Merge pull request #11510 from miri64/core/fix/thread_state-name-collision
...
core: rename thread_state_t to thread_status_t
2019-05-11 13:03:49 +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
87c72a8fe1
core/thread: unify thread_t variable naming
...
thread_t variables were named t, other_thread, cb. For consistency sake,
change all occurences to just "thread".
2019-05-11 11:39:32 +02:00
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
Marian Buschsieweke
435f798a2b
core/sched: Fixed typo
2019-03-21 22:00:37 +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
82b2362bc3
core/msg: add assert for problem identified in #10881
2019-01-28 17:14:16 +01:00
Kees Bakker
920d8b8805
core: remove redundant casts
2019-01-09 23:00:50 +01:00
Sebastian Meiling
52bc2b86fa
doxygen: use initial capitals for group names
2019-01-09 08:42:59 +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
f2194a8e26
core/irq: fix 2 missing words in documentation
2019-01-07 20:50:59 +01:00
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
c8937f8d40
core: use thread_has_msg_queue() for message queue check
2018-12-19 15:39:50 +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
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
Martine Lenders
28572d7d21
core: mutex: fix DEBUG pointer output
2018-11-09 08:41:50 +01: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
smlng
5b1cd0475f
core/clist: add cppcheck-suppress nullPointer
...
This was found by cppcheck 1.6x used in Travis-CI, however this
seems to be a false positive, as it is not found by newer versions
of cppcheck.
2018-09-25 12:03:58 +02:00
smlng
59e299635b
cppcheck: add/correct reason for cppcheck-suppress
...
Adding and correcting description/rational on why certain cppcheck
warnings or errors are intentionally suppressed.
2018-09-25 12:03:58 +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
Joakim Nohlgård
ab05acbf89
core: Mark openocd info variables read-only
2018-08-25 14:44:45 +02:00
2d27b32567
Merge pull request #9364 from gschorcht/thread_arch
...
core: add architecture dependent thread information
2018-08-24 12:10:20 +02:00
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
Gunar Schorcht
e75e0a5fe6
core: architecture dependent part in thread_t
2018-07-05 09:22:59 +02:00
Gunar Schorcht
c71f40370b
core: add architecture dependent extension
2018-07-05 09:22:59 +02:00
Hauke Petersen
36e0d4883d
core/byteorder: to/from bufs funcs are big endian
2018-07-04 17:41:04 +02:00
Joakim Nohlgård
69fb02c3fc
core: uncrustify thread_flags.h
2018-06-27 12:43:29 +02:00
2b1ed99a49
core: add more stacksize defines
2018-06-14 23:29:03 +02:00
2212850fbb
core/mbox: doc typo fixes
2018-06-13 12:13:24 +02:00
bd2845adf6
core: fix doxygen grouping
2018-06-11 19:12:02 +02:00
Hauke Petersen
f68b243dfc
core/byteorder: add uint16 from/to buffer funcs
2018-06-06 13:18:48 +02:00
Matthew Blue
2bd1d7f045
core/assert: provide static_assert for c99
2018-06-03 03:15:17 -04:00
Matthew Blue
38a30b68c2
core/debug: fix debug.h use within ISRs
2018-05-17 17:06:44 -04:00
8fd013635f
Merge pull request #9136 from jcarrano/fix-assert
...
core: make assert() an expression.
2018-05-15 21:38:14 +02:00
Juan Carrano
09d1b2eac7
core: Make assert be an expression.
...
The "verbose" alternative for assert() is now an expression and
can be used in all the places that a funcion call can be used.
2018-05-15 14:25:55 +02:00
7c7bb45ce7
core/clist: make clist_foreach() return break-causing node
2018-05-12 00:07:13 +02:00
d9993cc8d2
Merge pull request #8642 from OTAkeys/feat/static_assert
...
assert: add static_assert if using c11
2018-04-03 22:10:46 +02:00
Pieter Willemsen
729441fdb6
assert: add static_assert if using c11
2018-04-03 16:09:31 +02:00
Joakim Nohlgård
1fdfa6480d
core/mutex: fix -fpermissive warning in C++ mode
...
g++ gives the error message "error: invalid conversion from ‘void*’ to
‘list_node*’ [-fpermissive]"
2018-03-25 09:11:26 +02:00
aa57ea5b74
core: instead of cpp-style, use C-style comments
2018-02-06 16:59:58 +01:00
Sebastian Meiling
3bb169307b
Merge pull request #8364 from smlng/osx/debug/fix_output
...
macOS: fix debug output
2018-01-22 15:14:48 +01:00
smlng
e017f8a5f1
core: fix format errors in debug output
2018-01-17 15:25:11 +01:00
499c1812b2
core/bitarithm: provide multiple implementations for bitarithm_lsb()
2018-01-16 22:55:26 +01:00
e6a9a760a7
core/thread: add thread_getname() dummy available without DEVELHELP
2018-01-15 14:37:04 +01:00
c001e14f9d
core: debug: rely on optimizer to kick out unused debug code
2018-01-12 13:38:06 +01:00
Martine Lenders
4013adcf65
Merge pull request #8277 from miri64/doc/fix/must-not-may-not-wording
...
doc: Fix 'must not'/'may not' wording
2018-01-10 20:34:17 +01:00
MichelRottleuthner
ee17dae5af
pkg/fatfs: add vfs integration
2018-01-09 14:46:40 +01:00
Martine Lenders
2e93ba1c50
doc: Fix 'must not'/'may not' wording
...
I applied the following terminology and changed the wording in the doc
accordingly:
* must not: If the parameter is of the value it *must not* be it either
hits an assert or crashes the system.
* may not: The value can be that value, but the function will return an
error.
2017-12-19 09:00:12 +01:00
a8ec624ac4
core: cib: fix overflow handling
2017-11-22 17:53:16 +01:00
Martine Lenders
4952ffbae7
Merge pull request #6698 from Lotterleben/doc_thread_h
...
thread.h: extend doc for msg_waiters and msg_array
2017-11-16 19:25:52 +01:00
Lotte Steenbrink
9cc3641b75
thread.h: extend doc for msg_waiters and msg_array
2017-11-16 10:15:46 -08:00
24e7869484
core/include/panic.h: fix typos
2017-11-16 14:40:16 +01:00
32c10ae2c9
core, cpu: rename thread_start_threading() -> cpu_switch_context_exit()
2017-11-16 14:40:16 +01:00
bb4a5c5cdf
core: remove COREIF_NG
2017-11-16 14:39:54 +01:00
615b1e60bc
core/clist: add argument to clist_foreach
2017-11-06 12:49:22 +01:00
f142908f4e
Merge pull request #7655 from kaspar030/add_list_sort
...
core/clist: add clist_sort()
2017-11-06 12:46:01 +01:00
Joe Kroesche
5b6d311830
core/include/ringbuffer.h: add doc ref to tsrb.
...
Updated file comment header to comply with coding standard;
added brief module description and reference to tsrb to guide reader
who might be looking for thread-safe implementation
2017-10-29 08:08:15 -05:00
Joakim Nohlgård
317b013319
core/thread_flags: Remove unused THREAD_FLAG_MUTEX_UNLOCKED
...
and improve docs for THREAD_FLAG_TIMEOUT
2017-10-12 14:30:59 +02:00
Travis Griggs
2fd324a52f
correct print_stack macro
2017-10-03 14:39:25 -07:00
de784961fa
core/clist: add clist_sort()
2017-10-03 00:36:14 +02:00
5cc8204e10
Merge pull request #7048 from smlng/enh/ps/schedstats
...
schedstats: revert to 32Bit, and enhance output of schedstats
2017-09-28 16:08:51 +02:00
smlng
6ac0922c7d
doc: replace dashes
2017-09-06 08:49:05 +02:00
Joakim Nohlgård
a67694a8c0
core: thread_flags: Set sched_status_switch_request after waking a waiting thread
2017-08-31 22:51:28 +02:00
Joakim Nohlgård
5dd38c68e2
Merge pull request #7536 from kaspar030/improve_thread_flags_docs
...
core: thread_flags: improve documentation
2017-08-30 20:44:04 +02:00
ee945978e9
core: thread_flags: improve documentation
2017-08-30 13:43:02 +02:00
Joakim Nohlgård
ef01efc387
core/msg: Set THREAD_FLAG_MSG_WAITING when queueing messages
2017-08-30 12:04:47 +02:00
Joakim Nohlgård
87d322556a
core/thread: fix Doxygen nesting
...
Everything below the thread states was cut off in the module
documentation because Doxygen does not handle nested @name tags.
2017-08-11 07:47:09 +02:00
68f13467d3
core: remove redundant includes
2017-08-02 14:27:55 +02:00
7a0fcc30c8
sys: add initial SSP support
2017-06-27 18:05:14 +02:00
smlng
e7136e2dde
schedstats: revert #6975 , use 32Bit again
2017-06-08 14:33:47 +02:00
Raul Fuentes
f21d497be4
tread.h: Minor examples compile
2017-05-30 20:48:57 +02:00
0fcc7d3834
cleanup: apply headerguard script output
2017-05-24 17:54:02 +02:00
Sebastian Meiling
dd4f8f7704
Merge pull request #6975 from OTAkeys/pr/ps_schedstatistics_fix
...
ps: fix schedstatistics
2017-05-17 13:50:42 +02:00
Vincent Dupont
6d5b95517d
ps: fix schedstatistics
...
Fix xtimer_now() usage and fix columns alignment in ps command when
module schedstatistics is used.
2017-05-16 10:33:42 +02:00
Hauke Petersen
f914ae4876
core/panic: enable panic modes for Cortex-M7
2017-05-08 09:16:11 +02:00
89390a83d4
core: byteorder.h: rename HTON* -> hton*, NTOH* -> ntoh*
2017-04-13 10:59:39 +02:00
smlng
4ffbbfb8f6
doc: correct naming of doxygen group in core
2017-04-10 16:11:49 +02:00
0b10dccf64
core: adapt to Makefile.submodule
2017-03-28 20:50:48 +02:00
smlng
1b69f281f9
core, log: fix tautology compare error with toolchain llvm
2017-03-17 09:04:09 +01:00
Simon Brummer
68581a8fbe
core: bugfix: ringbuffer_remove
2017-03-01 22:01:26 +01:00
8d207ca724
Merge pull request #5731 from melshuber/master
...
core: recursive mutex implementation
2017-02-21 14:03:14 +01:00
Martin Elshuber
6cd3d34686
Removed duplicated code, fixed comment
2017-02-20 12:11:02 +01:00
Joakim Nohlgård
47e970635b
core: Fix assert printf format string
...
cppcheck said: core/assert.c:23: warning (invalidPrintfArgType_sint): %d in
format string (no. 2) requires 'int' but the argument type is 'unsigned
int'.
2017-02-16 17:11:22 +01:00
smlng
f4d9972574
llvm: hide redefines of atomic sync operations
2017-02-14 10:53:12 +01:00
Martin Elshuber
b9c2fc8254
Added reentrant mutex implementation
...
In contrast to normal mutexes, reeentrant mutexes allow to be relocked
multiple times from the same thread.
2017-02-09 15:17:39 +01:00
Joakim Nohlgård
4fdd2ea41a
core: Remove atomic in favour of C11 stdatomic
2017-02-08 16:23:50 +01:00
Joakim Nohlgård
4297e06fe5
core: add __sync_x library helpers for <gcc-4.7
2017-02-08 16:23:47 +01:00
Joakim Nohlgård
fcdb157228
core: rename c11_atomic -> atomic_c11
2017-02-08 16:23:47 +01:00