Oleg Hahm
828839316b
core: renamed crash.h to panic.h
2015-05-09 18:44:10 +02:00
Joakim Gebart
215ccc1213
core: Introduce atomic counters
...
- Move generic implementation of atomic_set_return to core/atomic.c
- Generic implementation of atomic compare and swap in core/atomic.c
- atomic_cas is used to implement atomic counters in core/include/atomic.h
- atomic_int_t is an atomic integer type
- ATOMIC_INIT can be used as an initializer for atomic_int_t
- ATOMIC_VALUE gets a reference to the value of an atomic integer
2015-05-07 18:52:13 +02:00
Oleg Hahm
89e871e7e3
doc: fixes doxygen warnings in core
2015-04-21 18:53:36 +02:00
Martine Lenders
5214e14e66
Revert "debug.h: check stacksize fixed"
2015-03-31 22:38:04 +02:00
Simon Brummer
b495c24609
debug.h: check stacksize fixed
2015-03-31 13:26:21 +02:00
altairpearl
a409191b71
core: Updated include guards to remove leading underscores
2015-03-30 06:10:58 +05:30
Ludwig Ortmann
d701cefd5e
Revert "core: limit message queue size"
2015-03-27 22:46:40 +01:00
Darredevil
d5542beb91
core/include/cib: repaired file include guards
2015-03-24 22:38:29 +02:00
Alexandru Caciulescu
a53e06a772
core: limit message queue size
2015-03-24 22:19:38 +02:00
Oleg Hahm
70c014d698
doc: additional hint for msg_send_receive()
2015-03-18 14:26:03 +01:00
2acd216d5a
Merge pull request #2589 from kushalsingh007/isr
...
Core: doc: add note advising against creation of threads from within ISR
2015-03-17 10:58:26 +01:00
kushalsingh007
3b7e54b441
Core: Change in description of thread_create function.
...
- Fixes #2136
- Adds warning about creating threads from within an ISR.
2015-03-13 19:55:08 +05:30
Oleg Hahm
4fec8fd31e
doc: improvement to IPC documentation
...
Per default, doxygen will take only the part until the first dot into
account for the brief description. In this case this leads to an
ambiguous overview over the IPC send functions.
2015-03-13 10:15:41 +01:00
Ludwig Ortmann
0b8271a08a
Merge pull request #2429 from authmillenon/all/doc/enable-helper-macros
...
doc: enable helper macros for doxygen
2015-03-07 11:32:04 +01:00
Oleg Hahm
e75d9505ae
core: added missing semicolon in header
2015-03-05 17:08:52 +01:00
Oleg Hahm
b441cdfb3a
core: documentation: document msg_reply_int()
2015-03-05 16:03:08 +01:00
Oleg Hahm
460dcdf8bb
core: documentation: msg_reply returns -1 on error
2015-03-05 15:54:43 +01:00
Martine Lenders
21dd2eb21d
doc: enable helper macros for doxygen
2015-03-03 17:53:32 +01:00
Ludwig Ortmann
cec87139a5
core, cpu, drivers, tests: remove trailing space
2015-02-18 13:52:48 +01:00
Martine Lenders
ffe9678bd1
core: expand documentation of thread_create()
...
Adds specific documentation for the error return values of
thread_create().
2015-02-13 21:34:33 +01:00
Martine Lenders
29c3fe9830
[SQUASH ME] fix typo
2015-02-12 14:30:36 +01:00
Martine Lenders
da10435a61
debug: Make DEBUGF more platform-independent
2015-02-12 12:57:21 +01:00
Martine Lenders
0eb2d78dda
doc: use my real name
2015-02-08 18:52:16 +01:00
BytesGalore
714ee38355
boards: core: cpu: drivers: sys: added missing header guards
2015-01-27 19:10:57 +01:00
René Kijewski
5f29fed076
core: introduce msg_sent_by_int()
...
msg_send_int() sets `m->sender_pid = target_pid`. This was used to flag a
message as having been sent by an ISR.
This PR introduces a static inline function `msg_sent_by_int()` and a
specific define for this purpose.
2014-12-18 23:04:03 +01:00
Ludwig Ortmann
ad14b60fe7
Merge pull request #1958 from Kijewski/sched_switch-on-run-queue
...
core: `sched_switch()` switch if not on runqueue
2014-12-16 11:41:39 +01:00
Ludwig Ortmann
093085b4ff
native: workaround for missing __builtin_bswap16
...
Implements a workaround for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624
This is present in current versions of ubuntu 12.04 and debian 7.7 (stable).
2014-12-15 09:27:40 +01:00
René Kijewski
370f926bad
core: sched_switch()
switch if not on runqueue
...
Fixes #1935 .
`sched_switch()` should not only switch if the other priority is higher,
but also if the current thread was moved from the runqueue.
2014-12-11 17:39:17 +01:00
Ludwig Ortmann
6c9e892927
Merge pull request #2139 from OlegHahm/doxygen_fix_core_warnings
...
doc: core: sched: add some references
2014-12-05 16:56:53 +01:00
Oleg Hahm
07fe5bcc9f
Merge pull request #1709 from benpicco/hwtimer_fix
...
allow HWTIMER_SPEED > 1000000
2014-12-04 19:00:38 +01:00
Oleg Hahm
000450c894
Merge pull request #2117 from OlegHahm/doxygen_eliminate_warnings
...
Doxygen eliminate warnings pt. 2
2014-12-04 17:18:42 +01:00
Oleg Hahm
0ccf1043de
doc: fixed broken doxygen references
2014-12-04 17:16:57 +01:00
Oleg Hahm
5adb43cc75
doc: add some references
2014-12-04 16:50:21 +01:00
Oleg Hahm
6310927ed7
doc: document internal cib init macro
2014-12-04 15:11:42 +01:00
Oleg Hahm
e9426ef9ab
core: undefining ENABLE_DEBUG is no longer required
2014-12-03 22:56:15 +01:00
Ludwig Ortmann
e6c808d5fa
Merge pull request #1970 from Kijewski/optimize-cib
...
core: inline `cib.c`
2014-12-03 17:12:48 +01:00
Oleg Hahm
d92e9af91c
doc: fixed broken param descriptions
2014-11-30 22:34:50 +01:00
Ludwig Ortmann
68e1db938c
core/hwtimer: fix HWTIMER_SPIN_BARRIER doc
2014-11-28 13:53:23 +01:00
René Kijewski
8a9220a85c
core: cib size must not exceed MAXINT/2
2014-11-26 18:04:54 +01:00
Hauke Petersen
2220a9fab0
core/cpu/boards: removed fw_puts from RIOT
2014-11-21 13:09:02 +01:00
Oleg Hahm
459f550be5
Merge pull request #2042 from Kijewski/restrict
...
c++: `s/restrict/__restrict/`
2014-11-19 15:29:23 +01:00
Oleg Hahm
771b3a4506
Merge pull request #1984 from Kijewski/net_help-is-odd
...
core: move NTOHL and friends into byteorder.h
2014-11-19 15:11:43 +01:00
René Kijewski
f89e1f4a3d
c++: s/restrict/__restrict/
...
`restrict` is not a keyword in C++, but `__restrict` is understood by
GCC-ish compilers.
2014-11-19 14:27:19 +01:00
9ce0b676b4
core: sys: move ringbuffer to core
2014-11-19 14:18:39 +01:00
René Kijewski
2c370862b7
core: allow inclusion of byteorder.h in C++ code
2014-11-19 00:47:25 +01:00
René Kijewski
434d6a1f65
core: move NTOHL and friends into byteorder.h
2014-11-19 00:46:41 +01:00
René Kijewski
a07b44781d
C++ -_-
2014-11-11 21:07:40 +01:00
René Kijewski
ab545f83b0
core: inline cib.c
...
The functions in `cib.h` are only used in `msg.c`. They are very small,
and proper function calls have a bigger overhead than inlining these
functions.
The difference in .text size (worst to best):
```
+104 native
+69 qemu-i386
+32 mbed_lpc1768
+28 samr21-xpro
-54 chronos
-54 z1
-56 iot-lab_M3
-56 msb-430
-56 msb-430h
-56 msba2
-56 openmote
-56 spark-core
-56 telosb
-56 wsn430-v1_3b
-56 wsn430-v1_4
-58 arduino-mega2560
-60 airfy-beacon
-60 arduino-due
-60 f4vi1
-60 msbiot
-60 pca10000
-60 pca10005
-60 stm32f0discovery
-60 stm32f3discovery
-60 stm32f4discovery
-60 udoo
-60 yunjia-nrf51822
-72 avsextrem
-72 pttu
-120 redbee-econotag
```
2014-11-11 17:40:18 +01:00
René Kijewski
23177e5326
Remove special case for atmega in kernel_types.h
2014-11-11 11:42:44 +01:00
feb550f17a
Merge pull request #1885 from OlegHahm/thread_yield_higher_cleanup
...
core: thread_yield_higher cleanup
2014-10-30 23:22:27 +01:00
Oleg Hahm
6b39ce9650
config: moved from core to sys
...
There's no need to run config_load from core directly, can be done by
auto_init.
2014-10-30 22:27:11 +01:00
Oleg Hahm
09f225f6ed
config: use radio_address_t
2014-10-30 22:27:11 +01:00
René Kijewski
9ddbf57709
core: refactor sched_run
...
`sched_run()` was cluttered. Many individual changes were done without a
proper refactoring.
2014-10-30 21:00:09 +01:00
Oleg Hahm
9a61d8cf1c
core: move optional tcb members to DEVELHELP
2014-10-30 16:37:10 +01:00
Oleg Hahm
4885690874
core: update irq_arch documentation
2014-10-30 16:11:11 +01:00
Oleg Hahm
93ac114bc3
core: move thread_yield*() to thread.[ch]
...
Although it might conceptionally rather belong to the scheduler, the
yield functions are prefixed with thread_ and thus, belong there.
2014-10-28 00:56:37 +01:00
Oleg Hahm
6f53cd484d
core: make sched_runqueue public
...
Reverting b604832
, because thread_yield() needs to access this
information.
2014-10-28 00:56:14 +01:00
Oleg Hahm
c33e1b5dad
Merge pull request #1844 from OlegHahm/doxygen_cleanup
...
Doxygen cleanup
2014-10-24 16:04:01 +02:00
Oleg Hahm
9b819c4dd6
Merge pull request #1836 from Kijewski/yield-less
...
core: introduce sched_yield(), yield less
2014-10-24 10:05:37 +02:00
René Kijewski
677d690e2b
core: introduce thread_yield_higher(), yield less
...
Fixes #1708 .
Currently involuntary preemption causes the current thread not only to
yield for a higher prioritized thread, but all other threads of its own
priority class, too.
This PR adds the function `thread_yield_higher()`, which will yield the
current thread in favor of higher prioritized functions, but not for
threads of its own priority class.
Boards now need to implement `thread_yield_higher()` instead of
`thread_yield()`, but `COREIF_NG` boards are not affected in any way.
`thread_yield()` retains its old meaning: yield for every thread that
has the same or a higher priority.
This PR does not touch the occurrences of `thread_yield()` in the periph
drivers, because the author of this PR did not look into the logic of
the various driver implementations.
2014-10-24 00:09:56 +02:00
Oleg Hahm
206b75933e
doc: fixed remaining doxygen warnings in core
...
Only one warning remains and will be fixed in a separate commit.
2014-10-23 18:30:09 +02:00
Oleg Hahm
db8f3d2650
cpu: use typed function pointer for thread_arch_init
2014-10-23 18:26:21 +02:00
Oleg Hahm
18381661dc
doc: fix documentation for hwtimer
...
@verbatim was used incorrectly and a closing html tag was missing
2014-10-23 17:29:25 +02:00
René Kijewski
b604832777
core: make sched_runqueues static
...
PR #1000 overlooked to rename `runqueues` into `sched_runqueues` in
`sched.h`. This shows that the variable is not used outside of
`sched.c`.
As the list should not be accessed outside of the scheduler, so it
can be `static`.
2014-10-22 16:55:50 +02:00
bdcac07faa
core: msg: introduce msg_try_send
2014-10-22 12:37:33 +02:00
DangNhat Pham-Huu
e6c7414357
Merge pull request #1805 from BytesGalore/extern_C_in_headers_core_unguard_includes
...
core: moved `#include`s outside the `extern "C"` guards
2014-10-22 07:09:57 +07:00
Martine Lenders
a7ed27130d
byteorder: silence warnings in clang
2014-10-21 19:50:37 +02:00
BytesGalore
74161f0f2d
core: moved #include
s outside the extern "C"
guards
2014-10-21 13:46:04 +02:00
René Kijewski
862000b715
core: align stack on a 32bit boundary
...
Fixes #1267 .
2014-10-17 18:22:37 +02:00
Ludwig Ortmann
ab418faa34
core: add doxygen header for kernel_types
2014-10-13 19:44:35 +02:00
Ludwig Ortmann
2fe2a39602
core: refactor check for valid pid
...
move into header and remove redundant condition
2014-10-13 19:44:35 +02:00
Martine Lenders
42f96b0d60
Merge pull request #1699 from Kijewski/issue-1586
...
core: Provide functions for different byte orders
2014-10-10 07:38:57 +02:00
Pham Huu Dang Nhat
2ded32dee7
c++: core: add extern C in header files
2014-10-09 06:18:16 +07:00
Benjamin Valentin
d6ca7c44c2
prevent rounding 0 if HWTIMER_SPEED > 1000000L
...
The current macros in hwtimer.h expect HWTIMER_SPEED to be < 1000000L, otherwise integer arithmetic will round the result down to 0.
Add a case to prevent that.
2014-10-06 22:13:48 +02:00
Ludwig Ortmann
f677f70836
core/hwtimer: add HWTIMER_WAIT_OVERHEAD
2014-10-01 19:53:43 +02:00
Ludwig Ortmann
0a8be81526
core/hwtimer: clean up header
...
- break/shorten overlong lines
- improve grammar
2014-10-01 19:53:42 +02:00
Ludwig Ortmann
da550bc913
introduce HWTIMER_SPIN_BARRIER (API change)
...
Boards should define HWTIMER_SPIN_BARRIER that is used to decide
whether it makes sense to set a timer and yield or call hwtimer_spin
instead.
Used by `core/hwtimer.c` and `sys/vtimer/vtimer.c`.
A default value is provided and a warning is printed when it is used.
2014-10-01 19:53:42 +02:00
René Kijewski
749db8d0dd
core: Provide functions for different byte orders
...
Rationale: see #1586 .
2014-09-29 21:07:02 +02:00
René Kijewski
4e50d74272
core: Provide ssize_t in a common place
...
Now you can include `kernel_types.h` if you need the `ssize_t`, without
facing problems due to the terrible MSP toolchain.
2014-09-26 14:04:30 +02:00
Ludwig Ortmann
289c4c0ee4
doc: add license headers to some .h files
2014-09-18 17:45:11 +02:00
Martine Lenders
1cc82b6aa7
core: priority_queue: simplify inheritance
2014-09-05 18:17:12 +02:00
Ludwig Ortmann
b7992922ce
fix license headers in non-.c files
2014-08-23 16:16:26 +02:00
003dd1969c
Merge pull request #1566 from Kijewski/undef_is_null
...
core: let PIDs begin with 1
2014-08-22 00:43:04 +02:00
René Kijewski
a5c9d4572d
core: clist without explicit thread
...
Right now the core component `clist` is a generic cyclic doubly-linked list.
In the core it is used in `tcb_t::rq_entry`.
Further it is used `net_if.c`.
This commit removes the member `clist_node_t::data` which stored the
pointer to the `tcb_t` instance of which the clist is already a member.
The needless member added `sizeof (int)` bytes to every instance of
`tcb_t`.
In `net_if.c` the clist was used in a type-punned way, so that the
change won't affect it.
2014-08-21 21:10:04 +02:00
8538670e12
Merge pull request #1583 from Kijewski/issue-1399
...
core: SCHED_PRIO_LEVELS==16 for every board
2014-08-21 20:04:57 +02:00
René Kijewski
b4f105f178
core: SCHED_PRIO_LEVELS==16 for every board
...
Closes #1399 .
> Using a different value for SCHED_PRIO_LEVELS for 16 and 32 bit
platforms hurts portability, one thing that we heavily advertise about
RIOT. if you want to write a portable application, then you have to
assume the lower value.
This PR defaults `SCHED_PRIO_LEVELS` to 16 for every board.
2014-08-18 10:43:41 +02:00
René Kijewski
2cb4166c3e
all over the place: use sched_active_pid
...
In many places we needlessly use `sched_active_thread->pid` whilst we
already have `sched_active_pid` with the same value, and one less
indirection.
`thread_getpid()` is made `static inline` so that there is no penalty in
using this function over accessing `sched_active_pid` directly.
2014-08-17 21:04:25 +02:00
René Kijewski
427a5fbaef
core: let valid PIDs start with 1
2014-08-17 19:51:03 +02:00
René Kijewski
b31e5a8675
core: introduce KERNEL_PID_FIRST and KERNEL_PID_LAST
2014-08-17 19:50:34 +02:00
René Kijewski
a7e5157fd9
core: add thread_get()
...
Remove PID check duplication in `thread_getstatus()` and
`thread_getname()`.
2014-08-15 01:16:13 +02:00
Oleg Hahm
c2b0423918
core: renamed KERNEL_PID_NULL to KERNEL_PID_UNDEF
...
As @authmillenon pointed out the "null" in the old name is somewhat
misleading, since the actual value is -1.
2014-08-07 16:31:27 +02:00
Oleg Hahm
0836cd0b18
core: moved definition of KERNEL_PID_NULL
...
kernel_pid_t is defined in kernel_types.h, thus it makes sense to move
the macro for an invalid kernel pid there, too.
2014-08-07 16:31:27 +02:00
René Kijewski
a5fe9078c8
Merge pull request #1293 from Kijewski/issue-1287
...
core: only store the stack size for DEVELHELP (implementation)
2014-08-05 18:56:29 +02:00
Ludwig Ortmann
1efdf99dfe
core/priority_queue: add dynamic initializers
...
- priority_queue_init
- priority_queue_node_init
2014-08-05 17:57:45 +02:00
Ludwig Ortmann
c2b2e4554b
core/queue: queue -> priority_queue
...
Rename queue to priority queue, because that's what it is.
2014-08-05 17:57:45 +02:00
Ludwig Ortmann
2e190d21ed
doc: fix spelling in core/include
2014-08-05 17:08:53 +02:00
René Kijewski
f7bdc7e4fe
core: thread_measure_stack_free() is only useful for DEVELHELP
2014-08-02 00:35:41 +02:00
René Kijewski
9e3830a72b
core: only store the stack size for DEVELHELP
...
`tcp_t::stack_size` is only examined by the shell command `ps` and
`DEBUG_PRINT`. For the latter one only if `DEVELHELP` was enabled.
This PR guards the member `tcp_t::stack_size` in `#ifdef DEVELHELP`.
Only if DEVELHELP was activated its value get printed by `ps`.
Closes #1287 .
2014-08-02 00:35:41 +02:00
Ludwig Ortmann
c216d2870f
doc: add detailed scheduler documentation
2014-08-01 18:57:31 +02:00
Oleg Hahm
983d056c75
core: harmonizes the data type for the process ID
...
Instead of using differing integer types use kernel_pid_t for process
identifier. This type is introduced in a new header file to avoid
circular dependencies.
2014-08-01 12:02:54 +02:00