1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

560 Commits

Author SHA1 Message Date
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
René Kijewski
1df0b5644a core: sched_switch only switch for higher priority
sched_switch() is called by some library functions when a call unblocks
another thread. Then it needs to be tested if the current thread should
be preempted for the newly runnable thread.

A non-volutarily yield should only happen if the unblocked thread has a
_higher_ priority than the current thread. The current implementation,
which tests if the other thread has the same or a higher priority, does
not fit the documentation.
2014-09-25 10:16:33 +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
Kévin Roussel
d1cf9c4bfd Ensure hwtimer_spin() won't wait for an unreachable stop counter value
without using a costly MOD operation
2014-08-28 15:01:58 +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
René Kijewski
27e393621a core: clist is a cyclic list 2014-08-21 21:10:03 +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
René Kijewski
bf6548ca30 core: shadowing in priority_queue_print
The variable `node` shadows the parameter `node`. The access of
`node->first` would not compile, because there is no member `first` in
`priority_queue_t`.
2014-08-11 18:42:25 +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
Ludwig Ortmann
3ca4f18479 doc: use lgplv2.1-short license header instead of lgpl-short-riot 2014-07-31 22:57:20 +02:00
Cenk Gündoğan
5e8c0c9058 converting tabs to spaces in core (#1439)
This PR converts tabs to white spaces.
The statement I used for the conversion:
'''find . -name "*.[ch]" -exec zsh -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;'''
Afterwards, I had a quick overview of the converted files to prevent odd indentation.
2014-07-31 20:44:09 +02:00
René Kijewski
4032a22719 queue: add queue_t root type 2014-07-30 21:10:22 +02:00
René Kijewski
4c6a6ee4b3 queue: remove unused generic functions
Closes #1153.
2014-07-30 21:08:15 +02:00
René Kijewski
7035ae0051 queue: remove inttypes clutter from core header 2014-07-30 21:08:15 +02:00
René Kijewski
dacbc0043e core:queue: remove ancient example 2014-07-30 21:08:15 +02:00
Ludwig Ortmann
b3b6cff587 doc: some more author fixes
fix all occurences of INRIA as an author
correct Oliver Hahms authorship and indentation
2014-07-29 18:17:48 +02:00
Ludwig Ortmann
b6846e31fc doc: fix most occurences of FU as an author
.. but only if there are other authors as well
2014-07-29 17:23:11 +02:00
Ludwig Ortmann
ce4aaa6970 doc: little mutex.h fixes
- a university is not an author
- move internal tags to the right place
2014-07-29 14:37:41 +02:00
René Kijewski
6fae042a60 core: remove unneeded calls to mutex_init() 2014-07-29 09:33:24 +02:00
René Kijewski
e03e20b7f6 core: simplify mutex initializer 2014-07-29 09:33:23 +02:00
René Kijewski
e5d6142823 core: simplify mutex signatures 2014-07-29 09:32:16 +02:00
Ludwig Ortmann
a585eaf752 core/sched: remove MODULE_NSS helpers (API CHANGE)
remove thread_getlastpid and last_pid from the API, it is unused
2014-07-12 07:30:31 +02:00
Ludwig Ortmann
147c285365 core/sched: fix pid/tcb & refactor SCHEDSTATISTICS
pid and tcb_t were compared instead of pid and pid

SCHEDSTATISTICS:
- reduce hwtimer_now calls
- dont use thread_last_pid anymore
- increase readability
2014-07-12 07:29:52 +02:00
Ludwig Ortmann
9cabdb3043 core/sched: clean up
- remove stray spaces
- remove TODOs:
    - MODULE_HWTIMER is not a module anymore
    - checking for NULL is necessary, at least without API changes:
      `sched_task_exit` sets `sched_active_thread` to `NULL`, then exits,
      afterwards `cpu_switch_context_exit` calls `sched_run`
2014-07-12 06:51:51 +02:00
René Kijewski
919cddef19 make: rename VERSION into RIOT_VERSION
Building MSP boards gives an error, because `VERSION` is somewhere
defined in their toolchain as an integer.

This PR renames `VERSION` into `RIOT_VERSION`, because that's what it
is.
2014-07-10 21:48:22 +02:00
Oleg Hahm
b78a1b32d0 Merge pull request #1387 from LudwigOrtmann/msg_fixup
core/msg: clean up after #1285
2014-07-10 16:54:01 +02:00
Hauke Petersen
9001e0c2fb core: removed duplicated hwtimer_arch.h 2014-07-09 21:08:13 +02:00
Ludwig Ortmann
5ebdf6e745 core/thread: remove thread_create_arg from header
It's just a leftover from #856
2014-07-09 18:01:31 +02:00
René Kijewski
ba1a15535b core: remove extra thread_create_arg() function 2014-07-09 10:28:23 +02:00
René Kijewski
867246a09f Add argument to thread_create 2014-07-09 10:07:54 +02:00
Ludwig Ortmann
2a859c78cd SQUASHME: do it right 2014-07-08 18:00:54 +02:00
Ludwig Ortmann
d8a5ee1ec8 core/msg: set m->sender_pid before it is used
fixes `msg_send_to_self` condition
2014-07-08 17:49:16 +02:00
Ludwig Ortmann
b6f2426d16 core/msg: revert part of #1285
use m->sender_pid instead of sched_active_pid again
undoes the optimization intended by #1285
fixes uint/int warning
2014-07-08 17:26:25 +02:00
Ludwig Ortmann
5c9a975afb core/msg: fix, optimize and improve
fixes:
fix race conditions by reordering dINTs
prevent null pointer dereference by adding forgotten target check
add forgotten eINTs
replace printf with DEBUG
fix debug messages

optimizations:
optimize pid access
reorder msg_send switches

improvements:
add debug statements
add missing return value to msg_send_to_self documentation
2014-07-08 11:57:38 +02:00
Martine Lenders
6d1365c5d8 Merge pull request #1324 from Kijewski/make-automatic-module-name
make: much less clutter for "standard layout" modules
2014-06-18 23:52:49 +02:00
Ludwig Ortmann
564f980cf4 Merge pull request #1306 from Kijewski/issue-19
core: remove unnecessary tests in sched.c
2014-06-18 13:09:44 +02:00
Thomas Eichinger
8637fe107e Merge pull request #975 from Kijewski/issue-974
core: change in bitarithm implementation
2014-06-18 11:11:57 +02:00
René Kijewski
840c0f0a57 make: detect their module name automatically
For many modules the `Makefile` contains a line like
```
MODULE:=$(shell basename $(CURDIR))
```
This conclusively shows that we do not have to set the module name
manually.

This PR removes the need to set the module name manually, if it is the
same as the basename. E.g. for `…/sys/vtimer/Makefile` the variable
make `MODULE` will still be `vtimer`, because it is the basename of the
Makefile.
2014-06-17 15:49:32 +02:00
René Kijewski
3c5f8b0f9e Merge pull request #1308 from N8Fear/fix-typo-and-whitespaces
core/include/arch/irq_arch.h: fix typo and trailing whitespaces
2014-06-10 18:14:05 +02:00
Hinnerk van Bruinehsen
6da0c31265 core/include/arch/irq_arch.h: fix typo and trailing whitespaces 2014-06-10 18:07:41 +02:00
René Kijewski
a21c3f45bc core: remove unnecessary tests in sched.c
The scheduling gets activated by `kernel_init()` calling
`cpu_switch_context_exit()`. Before this `sched_run()` won't be called.
When it gets called, at least the main thread and the idle thread are
spawned. The idle thread won't die / get killed. So there always is at
least one thread in `runqueue_bitcache`.

Closes #19.
2014-06-10 17:04:39 +02:00
René Kijewski
b6dc5c9b76 core/cortex-m: add missing NORETURNs to thread_arch 2014-06-05 21:01:35 +02:00
René Kijewski
ed7e233876 core: faster bitarithm_msb 2014-06-05 20:19:10 +02:00
Oleg Hahm
c679a051d9 core: fix variable name for sched_pidlist 2014-06-04 02:13:06 +02:00
René Kijewski
aab2311205 Merge pull request #1248 from thomaseichinger/debug_h_doc_fix
core:debug: documentation for `DEBUG_PRINT` was confusing and wrong
2014-06-03 22:42:39 +02:00
René Kijewski
05a4bf7f04 Merge pull request #1057 from Kijewski/sched_switch-current_prio
core: imply current_prio in `sched_switch()`
2014-06-03 15:59:23 +02:00
Thomas Eichinger
cf93dc6590 core:debug: documentation for DEBUG_PRINT was confusing and wrong 2014-05-27 16:29:35 +02:00
Martin Lenders
2362623490 Fix trailing whitespaces
Fixes #1138
2014-05-26 14:54:23 +02:00
René Kijewski
a6fd5bff92 core: imply current_prio in sched_switch()
There is no need to supply the current priority to `sched_switch()`,
when this function can easily tell the value of
`active_thread->priority` itself.
2014-05-24 16:48:35 +02:00
René Kijewski
1b89f334e3 msp430: provide oneway-malloc implicitly
For MSP430 boards oneway-malloc is already used *if* `malloc.h` was
included. The problem is that `malloc.h` is not a standard header, even
though it is common. `stdlib.h` in the right place to look for
`malloc()` and friends.

This change removes this discrepancy. `malloc()` is just named like
that, without the leading underscore. The symbols now are weak, which
means that they won't override library functions if MSP's standard
library will provide these functions at some point. (Unlikely, since
using `malloc()` on tiny systems is less then optimal ...)

Closes #1061 and #863.
2014-05-22 15:40:25 +02:00
Thomas Eichinger
5808662d05 Merge pull request #1193 from LudwigOrtmann/issue-924
core/hwtimer: disable interrupts in hwtimer_remove
2014-05-20 14:51:08 +02:00
Christian Mehlis
67428b5814 core: kernel: improved doxygen documentation
also added param[in] to irq.h and fix order of doxygen endguards
2014-05-20 14:47:41 +02:00
Oleg Hahm
ef5ec344fd core: prefix API functions correctly
Also changed names for bitarithm functions and rename thread_pid to sched_active_pid.
2014-05-18 08:53:20 +02:00
Ludwig Ortmann
9d4a92003c core/hwtimer: disable interrupts in hwtimer_remove
Before only the hardware timer's own interrupt was being disabled.
This led to a race condition in the following scenario:

```
Thread1:
    hwtimer_remove()
    hwtimer_arch_disable_interrupt();

// INTERRUPT -> Thread2 (which has a higher priority than Thread1) gets scheduled

Thread2:
    ...
    hwtimer_remove()
    hwtimer_arch_disable_interrupt(); // hwtimer interrupt is already disabled
    ...
    hwtimer_arch_enable_interrupt();
    ...
   // yield | terminate -> Thread1 gets scheduled again

Thread1:
    ... // these instructions are being run with the hwtimer interrupt enabled
    hwtimer_arch_enable_interrupt(); // hwtimer interrupt is already enabled
```

Fixes #924
2014-05-16 15:48:48 +02:00
Oleg Hahm
5d7f7dd686 Merge pull request #1079 from BytesGalore/add_NORETURNs
core: and cpu: Added NORETURN to functions that should not return
2014-05-16 00:33:20 +02:00
Ludwig Ortmann
98bbb80571 documentation: append my email to my name everywhere 2014-05-15 18:07:17 +02:00
Ludwig Ortmann
a0e9f3680b core/doc: complete io.h 2014-05-15 13:48:56 +02:00
Ludwig Ortmann
c42a56181b core/doc: complete queue.h 2014-05-15 13:48:56 +02:00
Ludwig Ortmann
93647306d7 core/doc: complete hwtimer.h and hwtimer_arch.h 2014-05-15 13:48:55 +02:00
Hauke Petersen
7df411e7b7 core: improved doxygen documentation
improved files complient to issue #950
- thread.h
- flags.h
- debug.h
- crash.h
2014-05-15 10:52:34 +02:00
René Kijewski
8038e96d09 Merge pull request #1119 from Kijewski/error_old-style-definition
Exterminate old-style function definitions
2014-05-14 13:31:30 +02:00
Ludwig Ortmann
2314915ff2 license: fix license header grammar
insert missing "is"
2014-05-14 09:49:09 +02:00
Martin Lenders
71a632520b Fix documentation for mutex.h 2014-05-13 08:33:38 +02:00
Martin Lenders
24db4eee8c Fix documentation for msg.h 2014-05-13 08:33:38 +02:00
Martin Lenders
c35a7555a3 Fix documentation for lpm.h 2014-05-13 08:33:36 +02:00
Martin Lenders
8048a57e53 Fix documentation for lifo.h 2014-05-13 08:31:05 +02:00
René Kijewski
9a9caf2c68 Exterminate old-style function definitions 2014-05-12 21:57:09 +02:00
Hauke Petersen
608afc4777 Introduced a cleaned-up cpu/core interface
- Included a collection of cpu-dependent headers in core/include/arch
- Extracted all interfaces that need to be implemented for a cpu
- Created a mapping between those interfaces and the old ones
- added flag for disabling arch interface
- added missing state to lpm_arch interface
- added arch interface for reboot
- fixed newline issues that were pointed out
- documentation fixes to cpu-core interface
2014-05-09 16:01:13 +02:00
Martin
4e73169b38 added NORETURNs to functions that should not return
and added `UNREACHABLE();` to hint the compiler unreachable lines

added right signature for first parameter of `thread_stack_init()`
added `UNREACHABLE();` macro to `cpu/lpc1768/atom.c` and `cpu/msp430-common/cpu.c`
2014-05-08 06:25:25 +02:00
René Kijewski
6f3d0871aa core/cpu: put __builtin_unreachable() into one place 2014-05-07 19:24:55 +02:00
Hauke Petersen
7545eff784 core/cpu/board: moved F_CPU define to board 2014-05-06 10:36:09 +02:00
Oleg Hahm
13c615ac17 documentation: fixed doxygen for schedstats 2014-05-05 14:09:08 +02:00
Oleg Hahm
6e27e1cdbb bitarithm: remove unused macros 2014-05-05 14:09:08 +02:00
Oleg Hahm
81fe4b6afc documentation: extend description for CONST attribute 2014-05-05 14:09:08 +02:00
Oleg Hahm
5a63f3ab1c core: documentation: fixed typo in license header 2014-05-05 14:09:08 +02:00
Oleg Hahm
50c9d2da90 core: documentation: replaced task w/ thread 2014-05-05 14:09:08 +02:00
Oleg Hahm
2d338feac4 core: documentation: fixed bitarithm documentation 2014-05-05 14:09:08 +02:00
Oleg Hahm
25a2122f83 core: documentation: updated, improved, and completed doxygen comments 2014-05-05 14:09:01 +02:00
Oleg Hahm
d8c8583d9b Merge pull request #1058 from Kijewski/issue-726
core: Remove `STATUS_TIMER_WAITING`
2014-04-30 19:03:09 +02:00
René Kijewski
055053a4d7 core: Remove STATUS_TIMER_WAITING
Closes #726.

The thread state `STATUS_TIMER_WAITING` is not used anymore.
This PR removes the value.
The number in `STATUS_ON_RUNQUEUE` is replaced by a reference.
2014-04-30 18:30:22 +02:00
Kévin Roussel
f763cb9ec2 Make implementation of hwtimer_spin() easier to read and understand 2014-04-28 13:39:30 +02:00
Christian Mehlis
67d7d1fa96 core: improved doxygen documentation 2014-04-26 14:01:52 +02:00
Christian Mehlis
7b91ea9349 core: fix warning about discarding volatile 2014-04-18 12:11:05 +02:00
Thomas Eichinger
082a583ec6 Merge pull request #955 from thomaseichinger/fix_doc
core: documentation: fix doxygen documentation in cib.h clist.h config.h tcb.h
2014-04-17 11:51:48 +02:00
Thomas Eichinger
d566ae9a28 fix doxygen documentation for clist.h, config.h, tcb.h and cib.h 2014-04-17 11:50:52 +02:00
Kévin Roussel
24f5cfafbb Add the ability to send a message to the current thread's message queue
(without raising an error)
2014-04-11 10:43:11 +02:00
Martin Lenders
8d1537a99c Remove duplicate function definition in queue.h 2014-04-01 19:44:45 +02:00
Hauke Petersen
8a937e1a1c hwtimer: clean up of interfaces to board/cpu 2014-03-26 13:19:18 +01:00
Oleg Hahm
85bd8cae17 check for existence of active_thread 2014-03-19 16:27:54 +01:00
Oleg Hahm
20b5230466 additional debug macro 2014-03-19 16:27:49 +01:00
Oleg Hahm
2ef9b78ccf add stacksize checker for DEBUG macro 2014-03-19 16:26:52 +01:00
Oleg Hahm
58aa0da315 added missing ENABLE_DEBUG define in mutex.c 2014-03-19 16:19:08 +01:00
René Kijewski
e6d8c6bb99 Merge pull request #859 from Kijewski/mutex-trylock-error
core:mutex: allow idle thread to use mutexes
2014-03-19 15:18:15 +01:00
Ludwig Ortmann
e688efdfcf core: kernel_init: call config_load in kernel_init 2014-03-18 08:10:33 +01:00
Ludwig Ortmann
063a15ce9b Change reboot signature.
Change from `void reboot(void)` to `int reboot(int mode)`.
Move reboot definition to core, rename architecture implementations
from reboot to reboot_arch.
Declare reboot mode(s) in kernel.h, reboot_arch in kernel_internal.h
Currently only one reboot mode is handled, its use is enforced.

Rationale:
A reboot function is already defined in <unistd.h> on BSD systems.
(See: http://www.openbsd.org/cgi-bin/man.cgi?query=reboot&sektion=2)
This patch not only allows native to build sensibly on these systems
but also streamlines RIOTs compatability with existing software.
2014-03-10 11:14:27 +01:00
René Kijewski
83988b2d03 Merge pull request #725 from kaspar030/optimize_thread_status_usage
core: sched: thread: optimize thread status field usage
2014-03-05 17:30:31 +01:00
René Kijewski
114eedd764 core:mutex: allow idle thread to use mutexes 2014-03-05 16:46:42 +01:00
René Kijewski
3c65b38881 core:mutex: remove refactor remnant 2014-03-05 01:49:31 +01:00
René Kijewski
80263b2fc0 Merge pull request #728 from BytesGalore/add_unlock_mutex_and_sleep
core:mutex: enable atomic execution of unlock a mutex and sleep for a thread
2014-03-04 01:38:50 +01:00
Martin
35106e3391 add test for mutex_unlock_and_sleep() 2014-03-03 18:48:46 +01:00
Martin
05f085d51a add mutex_unlock_and_sleep() 2014-03-03 18:48:35 +01:00
402fae5bbe Merge pull request #698 from Kijewski/thread_wakeup-dint
Changes to `thread_wakeup`
2014-03-03 18:17:18 +01:00
Ludwig Ortmann
470bd7f17f Fixup for #685
- use DEVELHELP for native as well
- fix function name in documentation
- improve documentation language/spelling
2014-02-26 21:49:54 +01:00
Oleg Hahm
0c14597ec2 Merge pull request #685 from rousselk/panic
Panic
2014-02-26 16:26:27 +01:00
René Kijewski
791f1cb90f Changes to thread_wakeup
`thread_wakeup` did not check if target pid is invalid.

`thread_wakeup` used `dINT` and `eINT` directly.
It should use `disableIRQ` and `restoreIRQ` instead, because there might
be other (good) reasons why one might want to call `thread_wakeup` with
interrupts disabled.

`thread_wakeup` yielded even if the other thread had a lower priority
than the current thread.
2014-02-26 14:55:50 +01:00
cc0de63289 Merge pull request #713 from OlegHahm/sched_switch_simplification
core: move inISR check into sched_switch
2014-02-25 19:13:41 +01:00
Kévin Roussel
d007207f3e Add a mechanism for handling fatal errors (and reboots) 2014-02-25 10:49:57 +01:00
Oleg Hahm
32f918abe8 simplified sched_switch
sched_switch can check ISR itself.
2014-02-25 09:47:58 +01:00
Oleg Hahm
24f5ec929c removed duplicate inISR prototype 2014-02-24 18:42:13 +01:00
Oleg Hahm
93e32953b3 always build and initialize hwtimer
Eliminates special treatment of the hwtimer module and makes it a
mandatory part of the kernel.
2014-02-24 18:36:28 +01:00
Christian Mehlis
6501707bcb core: lifo: added the right author 2014-02-23 15:09:43 +01:00
Christian Mehlis
0309fecc19 fix warning: invalid suffix on literal
C++11 requires a space between
literal and identifier [-Wliteral-suffix]
2014-02-18 17:05:01 +01:00
Oleg Hahm
7235f9e92c Merge pull request #729 from BytesGalore/remove_unnecessary_includes
core:mutex removed unnecessary includes
2014-02-18 13:52:21 +01:00
Martin
ff36df6847 migrated tcb.h include to .c file 2014-02-18 12:50:30 +01:00
Martin
88c7c47c46 removed unnecessary includes 2014-02-18 10:54:34 +01:00
36981c95b9 core: sched: thread: optimize thread status field usage
see PR #716 for discussion
2014-02-17 12:28:54 +01:00
Kévin Roussel
dc6f920f33 Merge remote-tracking branch 'origin/reboot' into reboot 2014-02-17 12:00:19 +01:00
Christian Mehlis
3dce0cbb97 Merge pull request #662 from Kijewski/remove-sched_init
Do not zero out sched_threads needlessly
2014-02-16 11:37:05 +01:00
Kévin Roussel
ca6db02530 Function attributes are now defined elsewhere ("attributes.h") 2014-02-14 10:58:17 +01:00
622d473eb3 core: msg: yield after queueing of a message if REPLY_BLOCKED
When setting the running task reply_blocked, it is implicitly removed
from the runqueue. But if queueing of a msg is actually successful, the
thread exits msg_send without yielding, continuing to run even if it's
not supposed to.

Nice example of why multiple function exit points lead to weird
errors...
2014-02-13 11:33:18 +01:00
8d07b131db core: msg: add some debug statements 2014-02-12 19:16:42 +01:00
210a20b807 core: msg: don't wake up sender after receive if it's REPLY_BLOCKED
solves issue #100

If the sender is reply-blocked, waking it up after its message has been
delivered is wrong. It needs to stay reply-blocked until the reply has
been delivered.
2014-02-12 19:16:41 +01:00
Kévin Roussel
e7d19fd2be Add a reboot() function to kernel.h definitions. 2014-02-12 15:26:02 +01:00
Kévin Roussel
8ca607bd70 Portable definition of function attributes 2014-02-12 14:58:59 +01:00
Ludwig Ortmann
2525920426 remove trailing whitespace and newlines 2014-02-11 18:45:06 +01:00
René Kijewski
7e685d6b36 Do not zero out sched_threads needlessly
The function sched_init() zeroes out sched_threads needlessly. All
static variables can be assumed to be initialized with zero, anyways.
The C standard mandates it, and all at other places in the code it is
assumed.
2014-02-11 16:47:00 +01:00
Benjamin Valentin
bbe616f167 add name to sysconfig
there is still quite some space left on the persistent flash config area, make it possible to give nodes a name (e.g. hostname of the meshrouter) for nicer debugging
2014-02-06 18:13:48 +01:00
Christian Mehlis
8519dcceed added @author fields
authors found in:
https://github.com/RIOT-OS/RIOT/commits/master/core/cib.c
http://ukleos.org/projects/ukleos/repository/revisions/master/changes/core/cib.c
2014-02-02 22:48:51 +01:00
56ee585c81 update Kaspar's email address
kaspar.schleiser@fu-berlin.de is obsolete.
(2nd try, first try was overwritten by some overzealous documenter)
2014-01-28 11:53:19 +01:00
Oleg Hahm
d5fd29a658 created doxygen link to STATUS_STOPPED 2014-01-22 19:20:13 +01:00
Oleg Hahm
2cc01bab3f added documentation for scheduler statuses 2014-01-22 19:20:07 +01:00
Ludwig Ortmann
bcbe6bf5c8 thread_measure_stack_ usage -> free
Rename the function as its name suggests the opposite of what it does.
2014-01-20 10:46:20 +01:00
Ludwig Ortmann
81608bdab5 thread_measure_stack_usage documentation
fix documentation - the return value is the opposite of what it said
add and improve comments
renamed space to space_free (the name is documentation as well)
2014-01-20 10:42:59 +01:00
Ludwig Ortmann
c42aa8993f fix regression from #251
remove thread_measure_stack_usage from kernel_internal.h again
2014-01-20 10:34:06 +01:00
Oleg Hahm
9eebc532ef Merge pull request #459 from rousselk/msp430-lpm-freq
Msp430 lpm freq
2014-01-16 04:57:27 -08:00
Kévin Roussel
e6d4a0b73a Added the LPM_UNKNOWN constant to the enum 'lpm_mode'
for respresenting unknown/unavailable LPM-related status.
2014-01-08 09:56:51 +01:00
Oleg Hahm
c7d985d371 removed redundant include pathes from Makefiles 2014-01-05 16:11:08 +01:00
Oleg Hahm
593ee623b6 simplify and unify include pathes
additional:
* exporting include path in sys is mandatory for subfolders
* removed duplicate object file in linker call
2014-01-05 16:11:07 +01:00
Ludwig Ortmann
2fb884a5af refine DEVELHELP section
more efficient to be better suited for ISR
made testcase more clear
2013-12-20 11:51:52 +01:00
Ludwig Ortmann
13bb8df91b fix typo, improve doc 2013-12-20 00:27:46 +01:00
Ludwig Ortmann
6eb829c680 documentation, remove LIFO_DEBUG, break main
add documentation to lifo.h
remove LIFO_DEBUG and use DEVELHELP instead
make the main method which is included break
2013-12-20 00:00:29 +01:00
Ludwig Ortmann
eac60d666f make reset of freed slots optional
addresses https://github.com/RIOT-OS/RIOT/pull/433#discussion_r8472602
2013-12-19 18:53:06 +01:00
Ludwig Ortmann
1a99a44e01 macro consistency and more DEBUG
addresses https://github.com/RIOT-OS/RIOT/pull/433#discussion_r8437084
add missing debug statement
2013-12-19 18:53:06 +01:00
Ludwig Ortmann
6021b9f36a reset unused lifo slots 2013-12-19 18:53:06 +01:00
Ludwig Ortmann
1dac115c68 add debug statements to lifo 2013-12-19 18:53:04 +01:00
Oleg Hahm
903ec54a43 making include directives consistent 2013-12-19 15:31:37 +01:00
Ludwig Ortmann
8dd9db3c45 add some documentation to lpm.h 2013-12-19 13:04:08 +01:00
Oleg Hahm
9eb1daf31e added thread.h include (necessary since 227c847135) 2013-12-19 12:16:35 +01:00
Oleg Hahm
227c847135 put prototype for thread_yield() in core/include 2013-12-18 17:47:49 +01:00
Oleg Hahm
891eebd361 Merge pull request #427 from mehlis/hwtimer-debug
added some debug output
2013-12-16 08:31:03 -08:00
Hauke Petersen
2df82017a8 Fixed doxygen inconsistensies in sys 2013-12-16 15:09:18 +01:00
Hauke Petersen
edcabf7cb6 Fixed a lot of comments by removing tabs and correcting format. 2013-12-16 14:00:33 +01:00
Hauke Petersen
3785fe956b Fixed doxygen comments, focused on file headers and group definitions 2013-12-16 14:00:24 +01:00
Christian Mehlis
2527d3d636 added some debug output 2013-12-16 11:13:43 +01:00
Oleg Hahm
07da7b2d45 reverted 18e97f6dd5 2013-12-09 22:44:53 +01:00
aaf325c290 Merge pull request #400 from kaspar030/msg_cleanup
msg.c cleanup
2013-12-05 04:16:00 -08:00
23ecbde1a3 core: msg: whitespace fixes 2013-12-04 20:36:21 +01:00
94283789a7 core: msg: rename "n" to something more expressive ("queue_index") 2013-12-04 20:33:53 +01:00
af542058ee core: msg: whitespace fixes 2013-12-04 20:33:53 +01:00
f85adf608f change my email address
kaspar.schleiser@fu-berlin.de will be obsoleted soon. Replace it with
kaspar@schleiser.de, which will (hopefully) stay.
2013-12-04 15:09:56 +01:00
Thomas Eichinger
dfdfb448f4 enforce KERNEL_CONF_STACKSIZE_PRINTF in kernel.h 2013-12-03 22:19:09 +01:00
Christian Mehlis
863c0a7e14 Merge pull request #378 from OlegHahm/version_string
include version string
2013-12-03 02:54:02 -08:00
Christian Mehlis
05c05661e6 Merge pull request #337 from LudwigOrtmann/hwtimer_cleanup
hwtimer.h remove cruft, document, rearrange
2013-12-03 02:12:13 -08:00
Oleg Hahm
529f3fb278 include version string 2013-11-25 17:35:26 +01:00
Ludwig Ortmann
d6c213fb47 fix grammar in license header 2013-11-23 13:11:56 +01:00
Ludwig Ortmann
ed0d108da6 hwtimer.h remove cruft, document, rearrange
remove unsused hwtimer_t0* declarations
document hwtimer_now
move hwtimer_now outside the internal section
2013-11-23 11:25:42 +01:00
Oleg Hahm
7c979751e5 Merge pull request #368 from mehlis/findings
(non critical) findings
2013-11-22 18:52:13 -08:00
Christian Mehlis
a83a6f2b49 fix some defines in tcb.h 2013-11-21 21:38:02 +01:00
Christian Mehlis
f5d412bf9f removed unnecessary stdlib.h include 2013-11-21 00:26:13 +01:00
Ludwig Ortmann
d06e0d8717 rename runtime to reflect the unit of measurement 2013-11-18 12:14:43 +01:00
Ludwig Ortmann
ffd8088d1d proper inttype runtime, declare to import
define runtime long as hwtimer_now() uses long
import hwtimer.h instead of declaring hwtimer_now()
2013-11-16 19:26:02 +01:00
Ludwig Ortmann
05431e9e86 improve comments, rename variable 2013-11-14 12:06:53 +01:00
Ludwig Ortmann
2d419e6648 save one long 2013-11-14 12:06:52 +01:00
Ludwig Ortmann
e8a03a8287 improve fix and comment 2013-11-14 12:06:52 +01:00
Ludwig Ortmann
1ef31b3813 fix race condition in hwtimer_spin 2013-11-14 12:06:52 +01:00
Oleg Hahm
cc45909ffc Merge pull request #236 from OlegHahm/telosb
Telosb
2013-11-14 01:55:47 -08:00
Oleg Hahm
5fea3af233 Merge pull request #294 from authmillenon/rewrite_bitarithm
Use GCC/Clang builtins for bit arithmetics
2013-11-04 12:08:02 -08:00
Oleg Hahm
e44412d0c1 added debug information to msg_send (similar to msg_send_int) 2013-11-03 06:46:13 -08:00
authmillenon
18e97f6dd5 Use GCC/Clang builtins for bit arithmetics 2013-11-03 15:14:28 +01:00
Ludwig Ortmann
4b02701ad0 document msg_init_queue return values 2013-10-28 12:57:10 +01:00
Ludwig Ortmann
37c9b8ebfd fix spelling in msg.h 2013-10-28 12:57:05 +01:00
Ludwig Ortmann
f1b89df8d8 explain the "brainfuck condition" 2013-10-28 12:57:02 +01:00
Ludwig Ortmann
5e6cc92291 harmonize msg.c DEBUG statements
Use same order (function: [thread_name:] message) throughout msg.c.
Begin message with a capital letter.
2013-10-27 08:37:18 +01:00
Ludwig Ortmann
2d1303763e fix spelling in msg.c 2013-10-27 08:13:27 +01:00
Ludwig Ortmann
089a15c110 merge thread_measure_stack_usage declarations 2013-10-24 16:22:55 +02:00
Christian Mehlis
495246d2d4 add thread_getname function 2013-10-17 15:25:43 +02:00
Christian Mehlis
9c70e4501c only include debug functions if needed 2013-10-11 14:21:47 +02:00
Kévin Roussel
d2535f3841 Added missing definition of 'PRIu32' in some RIOT include files
to avoid a bug in mspgcc's standard library
2013-10-09 15:10:22 +02:00
Christian Mehlis
9ace6b4807 add missing inttypes include for PRI macros 2013-09-26 21:10:57 +02:00
Christian Mehlis
21ffebc197 add check for a not existing thread 2013-09-11 19:58:54 +02:00
Christian Mehlis
6da0375197 fix macros in the hwtimer 2013-08-26 21:36:34 +02:00
Oleg Hahm
3ad55cce8b changed default stacksize
* the default stacksize no longer set for a thread using printf
* the stacksize for the main thread therefore adds the necessary space
2013-08-14 18:04:25 +02:00
Oleg Hahm
4d2de87724 Merge pull request #135 from OlegHahm/sched_fixes
Improving sched.h documentation
2013-08-14 06:43:09 -07:00
Oleg Hahm
2981fe0844 Improving sched.h documentation 2013-08-14 14:39:09 +02:00
Oleg Hahm
9fac7c3f5f Merge pull request #134 from OlegHahm/sched_fixes
Scheduler callback
2013-08-14 04:55:27 -07:00
Oleg Hahm
1709fa600c re-added the scheduler callback (the actual call was missing) 2013-08-14 13:53:49 +02:00
Oleg Hahm
7dbb97e376 added documentation for sched.h 2013-08-14 13:53:43 +02:00
Oleg Hahm
932c626c6b moved prototype for sched_register_cb() from C file to header 2013-08-14 13:09:43 +02:00
Oleg Hahm
570c0e717d removed unused (and ambiguous) definitions of active_thread and sched_threads in kernel_init.c 2013-08-14 13:09:43 +02:00
Oleg Hahm
b6fe284331 fix priority comparison in sched_switch 2013-08-12 19:27:04 +02:00
Christian Mehlis
735c41786d remove unused static function 2013-08-12 11:25:07 +02:00
Christian Mehlis
6428bd5546 use std include style 2013-08-12 11:24:57 +02:00
Christian Mehlis
00d618634c add missing include for mutex 2013-08-12 11:24:48 +02:00
Christian Mehlis
a1ce242ffe Merge pull request #113 from mehlis/oneway-calloc
add oneway calloc
2013-08-12 00:55:53 -07:00
Martin Lenders
78db093d09 Merge pull request #105 from OlegHahm/hwtimer_wait
fix for #25 by using mutexes for hwtimer_wait
2013-08-11 11:55:08 -07:00
Christian Mehlis
764e0027f1 add oneway calloc 2013-08-10 11:21:25 +02:00
Martin
63146190b3 fix changed prototype parameter 1 of thread_stack_init from void* to void(*)(void) 2013-08-09 12:19:03 +02:00
Oleg Hahm
3f95d72828 fix for #25 by using mutexes for hwtimer_wait 2013-08-08 20:11:57 +02:00
Oleg Hahm
88d2357295 fix warnings from #62 2013-08-08 18:34:51 +02:00
LudwigOrtmann
07c7e8ccd3 Merge pull request #90 from OlegHahm/milestone_1_0_fixes
Milestone 1 0 fixes
2013-08-08 06:29:22 -07:00
Oleg Hahm
39a4dc684e fixes for #62: eliminate unused parameter warnings
NOTE: this commit introduces a kernel API change for mutex_unlock
2013-08-04 04:10:33 +02:00
Oleg Hahm
836ae0d291 fix #11: initialize queue_node_t n.next in msg_send() 2013-08-02 01:31:00 +02:00
Christian Mehlis
62994314aa in msg_send_receive: return result from msg_send 2013-08-01 22:03:55 +02:00
Oleg Hahm
f7ecc704a4 fixed includes and include pathes 2013-07-29 01:24:02 +02:00
Oleg Hahm
0bd81f14a4 remove header guard from debug.h and repaired debugging on a per file base 2013-07-25 21:56:37 +02:00
Oleg Hahm
ca75d3c36c fixed some includes 2013-07-24 00:44:28 +02:00
Oleg Hahm
599e266b55 Revert "removed redefined ENABLE_DEBUG"
This reverts commit 69c526f44d.

Instead of removing ENABLE_DEBUG, define it as zero and replacing the
ifdef preprocessor commands by a simple #if
2013-07-24 00:38:43 +02:00
Oleg Hahm
37467de0d2 fixed printf formatter 2013-07-23 13:39:50 +02:00
Christian Mehlis
837bad38eb rename kernel_intern.h
german "intern" to english "internal"
2013-07-16 16:36:37 +02:00
Christian Mehlis
b8176f4488 fixed printf patterns 2013-07-16 15:27:19 +02:00
Christian Mehlis
c5e62e238b add missing include 2013-07-16 15:27:19 +02:00
Christian Mehlis
69c526f44d removed redefined ENABLE_DEBUG 2013-07-16 15:27:19 +02:00
Christian Mehlis
190e24116d use int explicitly 2013-07-09 13:41:08 +02:00
Christian Mehlis
96cbf4019e make internal function static 2013-07-09 13:40:52 +02:00
Ludwig Ortmann
7dd9ac6be0 Add msg_try_receive 2013-07-05 23:32:07 +02:00
Christian Mehlis
9549c29ccb fix missing includes 2013-06-30 01:53:53 +02:00
Oliver Hahm
57cc002c67 Merge branch 'wsn430'
Conflicts:
	core/include/queue.h
	core/queue.c
	cpu/msp430-common/hwtimer_cpu.c
	cpu/msp430x16x/hwtimer_msp430.c
	sys/lib/hashtable.c
	sys/net/ieee802154/ieee802154_frame.c
	sys/shell/commands/sc_cc110x_ng.c
	sys/transceiver/transceiver.c
	sys/vtimer/vtimer.c
2013-06-25 15:33:40 +02:00
Oliver Hahm
c8bee9e554 fixed coding style (space after most keywords) 2013-06-24 22:37:35 +02:00
Oliver Hahm
5bae4f841d added one-time-initialization guard to transceiver 2013-06-24 22:12:57 +02:00
Oliver Hahm
f359453083 fixed doxygen value 2013-06-21 22:37:14 +02:00