Commit Graph

636 Commits (a188d7670b0a133c8fd15483d510e7247f7f12a6)

Author SHA1 Message Date
benpicco 37d8cabbe8 Merge pull request #1883 from kaspar030/hwtimer_new_irq_api
core: hwtimer: use disable/restoreIRQ
9 years ago
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.
9 years ago
Oleg Hahm 6f53cd484d core: make sched_runqueue public
Reverting b604832, because thread_yield() needs to access this
information.
9 years ago
Kaspar Schleiser cbab2efe7e core: hwtimer: use disable/restoreIRQ 9 years ago
Ludwig Ortmann eceb656c49 core,sys: fix storage types for irq API usage
* should not have any effect as long as `unsigned` and `int` are compatible
* also fix two cosmetic `unsigned int` -> `unsigned` for consistency
9 years ago
Oleg Hahm c33e1b5dad Merge pull request #1844 from OlegHahm/doxygen_cleanup
Doxygen cleanup
9 years ago
Oleg Hahm 9b819c4dd6 Merge pull request #1836 from Kijewski/yield-less
core: introduce sched_yield(), yield less
9 years ago
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.
9 years ago
René Kijewski c0ce346a12 cppcheck: don't needlessly assign sched_active_pid 9 years ago
Oleg Hahm 206b75933e doc: fixed remaining doxygen warnings in core
Only one warning remains and will be fixed in a separate commit.
9 years ago
Oleg Hahm db8f3d2650 cpu: use typed function pointer for thread_arch_init 9 years ago
Oleg Hahm 18381661dc doc: fix documentation for hwtimer
@verbatim was used incorrectly and a closing html tag was missing
9 years ago
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`.
9 years ago
Kaspar Schleiser 5146c66786 core: adapt to msg_try_send 9 years ago
Kaspar Schleiser bdcac07faa core: msg: introduce msg_try_send 9 years ago
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
9 years ago
Martine Lenders a7ed27130d byteorder: silence warnings in clang 9 years ago
BytesGalore 74161f0f2d core: moved `#include`s outside the `extern "C"` guards 9 years ago
René Kijewski 862000b715 core: align stack on a 32bit boundary
Fixes #1267.
9 years ago
Ludwig Ortmann cd3dff3f2e core/msg: add DEVELHELP checks for valid pid 9 years ago
Ludwig Ortmann ab418faa34 core: add doxygen header for kernel_types 9 years ago
Ludwig Ortmann 2fe2a39602 core: refactor check for valid pid
move into header and remove redundant condition
9 years ago
Martine Lenders 42f96b0d60 Merge pull request #1699 from Kijewski/issue-1586
core: Provide functions for different byte orders
9 years ago
Pham Huu Dang Nhat 2ded32dee7 c++: core: add extern C in header files 9 years ago
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.
9 years ago
Ludwig Ortmann f677f70836 core/hwtimer: add HWTIMER_WAIT_OVERHEAD 9 years ago
Ludwig Ortmann 0a8be81526 core/hwtimer: clean up header
- break/shorten overlong lines
- improve grammar
9 years ago
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.
9 years ago
René Kijewski 749db8d0dd core: Provide functions for different byte orders
Rationale: see #1586.
9 years ago
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.
9 years ago
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.
9 years ago
Ludwig Ortmann 289c4c0ee4 doc: add license headers to some .h files 9 years ago
Martine Lenders 1cc82b6aa7 core: priority_queue: simplify inheritance 9 years ago
Kévin Roussel d1cf9c4bfd Ensure hwtimer_spin() won't wait for an unreachable stop counter value
without using a costly MOD operation
9 years ago
Ludwig Ortmann b7992922ce fix license headers in non-.c files 9 years ago
Kaspar Schleiser 003dd1969c Merge pull request #1566 from Kijewski/undef_is_null
core: let PIDs begin with 1
9 years ago
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.
9 years ago
René Kijewski 27e393621a core: clist is a cyclic list 9 years ago
Kaspar Schleiser 8538670e12 Merge pull request #1583 from Kijewski/issue-1399
core: SCHED_PRIO_LEVELS==16 for every board
9 years ago
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.
9 years ago
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.
9 years ago
René Kijewski 427a5fbaef core: let valid PIDs start with 1 9 years ago
René Kijewski b31e5a8675 core: introduce KERNEL_PID_FIRST and KERNEL_PID_LAST 9 years ago
René Kijewski a7e5157fd9 core: add `thread_get()`
Remove PID check duplication in `thread_getstatus()` and
`thread_getname()`.
9 years ago
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`.
9 years ago
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.
9 years ago
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.
9 years ago
René Kijewski a5fe9078c8 Merge pull request #1293 from Kijewski/issue-1287
core: only store the stack size for DEVELHELP (implementation)
9 years ago
Ludwig Ortmann 1efdf99dfe core/priority_queue: add dynamic initializers
- priority_queue_init
- priority_queue_node_init
9 years ago
Ludwig Ortmann c2b2e4554b core/queue: queue -> priority_queue
Rename queue to priority queue, because that's what it is.
9 years ago
Ludwig Ortmann 2e190d21ed doc: fix spelling in core/include 9 years ago
René Kijewski f7bdc7e4fe core: thread_measure_stack_free() is only useful for DEVELHELP 9 years ago
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.
9 years ago
Ludwig Ortmann c216d2870f doc: add detailed scheduler documentation 9 years ago
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.
9 years ago
Ludwig Ortmann 3ca4f18479 doc: use lgplv2.1-short license header instead of lgpl-short-riot 9 years ago
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.
9 years ago
René Kijewski 4032a22719 queue: add queue_t root type 9 years ago
René Kijewski 4c6a6ee4b3 queue: remove unused generic functions
Closes #1153.
9 years ago
René Kijewski 7035ae0051 queue: remove inttypes clutter from core header 9 years ago
René Kijewski dacbc0043e core:queue: remove ancient example 9 years ago
Ludwig Ortmann b3b6cff587 doc: some more author fixes
fix all occurences of INRIA as an author
correct Oliver Hahms authorship and indentation
9 years ago
Ludwig Ortmann b6846e31fc doc: fix most occurences of FU as an author
.. but only if there are other authors as well
9 years ago
Ludwig Ortmann ce4aaa6970 doc: little mutex.h fixes
- a university is not an author
- move internal tags to the right place
9 years ago
René Kijewski 6fae042a60 core: remove unneeded calls to mutex_init() 9 years ago
René Kijewski e03e20b7f6 core: simplify mutex initializer 9 years ago
René Kijewski e5d6142823 core: simplify mutex signatures 9 years ago
Ludwig Ortmann a585eaf752 core/sched: remove MODULE_NSS helpers (API CHANGE)
remove thread_getlastpid and last_pid from the API, it is unused
9 years ago
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
9 years ago
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`
9 years ago
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.
9 years ago
Oleg Hahm b78a1b32d0 Merge pull request #1387 from LudwigOrtmann/msg_fixup
core/msg: clean up after #1285
9 years ago
Hauke Petersen 9001e0c2fb core: removed duplicated hwtimer_arch.h 9 years ago
Ludwig Ortmann 5ebdf6e745 core/thread: remove thread_create_arg from header
It's just a leftover from #856
9 years ago
René Kijewski ba1a15535b core: remove extra thread_create_arg() function 9 years ago
René Kijewski 867246a09f Add argument to thread_create 9 years ago
Ludwig Ortmann 2a859c78cd SQUASHME: do it right 9 years ago
Ludwig Ortmann d8a5ee1ec8 core/msg: set m->sender_pid before it is used
fixes `msg_send_to_self` condition
9 years ago
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
9 years ago
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
9 years ago
Martine Lenders 6d1365c5d8 Merge pull request #1324 from Kijewski/make-automatic-module-name
make: much less clutter for "standard layout" modules
9 years ago
Ludwig Ortmann 564f980cf4 Merge pull request #1306 from Kijewski/issue-19
core: remove unnecessary tests in sched.c
9 years ago
Thomas Eichinger 8637fe107e Merge pull request #975 from Kijewski/issue-974
core: change in bitarithm implementation
9 years ago
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.
9 years ago
René Kijewski 3c5f8b0f9e Merge pull request #1308 from N8Fear/fix-typo-and-whitespaces
core/include/arch/irq_arch.h: fix typo and trailing whitespaces
9 years ago
Hinnerk van Bruinehsen 6da0c31265 core/include/arch/irq_arch.h: fix typo and trailing whitespaces 9 years ago
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.
9 years ago
René Kijewski b6dc5c9b76 core/cortex-m: add missing NORETURNs to thread_arch 9 years ago
René Kijewski ed7e233876 core: faster bitarithm_msb 9 years ago
Oleg Hahm c679a051d9 core: fix variable name for sched_pidlist 9 years ago
René Kijewski aab2311205 Merge pull request #1248 from thomaseichinger/debug_h_doc_fix
core:debug: documentation for `DEBUG_PRINT` was confusing and wrong
9 years ago
René Kijewski 05a4bf7f04 Merge pull request #1057 from Kijewski/sched_switch-current_prio
core: imply current_prio in `sched_switch()`
9 years ago
Thomas Eichinger cf93dc6590 core:debug: documentation for `DEBUG_PRINT` was confusing and wrong 9 years ago
Martin Lenders 2362623490 Fix trailing whitespaces
Fixes #1138
9 years ago
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.
9 years ago
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.
9 years ago
Thomas Eichinger 5808662d05 Merge pull request #1193 from LudwigOrtmann/issue-924
core/hwtimer: disable interrupts in hwtimer_remove
9 years ago
Christian Mehlis 67428b5814 core: kernel: improved doxygen documentation
also added param[in] to irq.h and fix order of doxygen endguards
9 years ago
Oleg Hahm ef5ec344fd core: prefix API functions correctly
Also changed names for bitarithm functions and rename thread_pid to sched_active_pid.
9 years ago
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
9 years ago
Oleg Hahm 5d7f7dd686 Merge pull request #1079 from BytesGalore/add_NORETURNs
core: and cpu: Added NORETURN to functions that should not return
9 years ago
Ludwig Ortmann 98bbb80571 documentation: append my email to my name everywhere 9 years ago
Ludwig Ortmann a0e9f3680b core/doc: complete io.h 9 years ago
Ludwig Ortmann c42a56181b core/doc: complete queue.h 9 years ago
Ludwig Ortmann 93647306d7 core/doc: complete hwtimer.h and hwtimer_arch.h 9 years ago
Hauke Petersen 7df411e7b7 core: improved doxygen documentation
improved files complient to issue #950
- thread.h
- flags.h
- debug.h
- crash.h
9 years ago
René Kijewski 8038e96d09 Merge pull request #1119 from Kijewski/error_old-style-definition
Exterminate old-style function definitions
9 years ago
Ludwig Ortmann 2314915ff2 license: fix license header grammar
insert missing "is"
9 years ago
Martin Lenders 71a632520b Fix documentation for mutex.h 9 years ago
Martin Lenders 24db4eee8c Fix documentation for msg.h 9 years ago
Martin Lenders c35a7555a3 Fix documentation for lpm.h 9 years ago
Martin Lenders 8048a57e53 Fix documentation for lifo.h 9 years ago
René Kijewski 9a9caf2c68 Exterminate old-style function definitions 9 years ago
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
9 years ago
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`
9 years ago
René Kijewski 6f3d0871aa core/cpu: put __builtin_unreachable() into one place 9 years ago
Hauke Petersen 7545eff784 core/cpu/board: moved F_CPU define to board 9 years ago
Oleg Hahm 13c615ac17 documentation: fixed doxygen for schedstats 9 years ago
Oleg Hahm 6e27e1cdbb bitarithm: remove unused macros 9 years ago
Oleg Hahm 81fe4b6afc documentation: extend description for CONST attribute 9 years ago
Oleg Hahm 5a63f3ab1c core: documentation: fixed typo in license header 9 years ago
Oleg Hahm 50c9d2da90 core: documentation: replaced task w/ thread 9 years ago
Oleg Hahm 2d338feac4 core: documentation: fixed bitarithm documentation 9 years ago
Oleg Hahm 25a2122f83 core: documentation: updated, improved, and completed doxygen comments 9 years ago
Oleg Hahm d8c8583d9b Merge pull request #1058 from Kijewski/issue-726
core: Remove `STATUS_TIMER_WAITING`
9 years ago
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.
9 years ago
Kévin Roussel f763cb9ec2 Make implementation of hwtimer_spin() easier to read and understand 9 years ago
Christian Mehlis 67d7d1fa96 core: improved doxygen documentation 9 years ago
Christian Mehlis 7b91ea9349 core: fix warning about discarding volatile 9 years ago
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
9 years ago
Thomas Eichinger d566ae9a28 fix doxygen documentation for clist.h, config.h, tcb.h and cib.h 9 years ago
Kévin Roussel 24f5cfafbb Add the ability to send a message to the current thread's message queue
(without raising an error)
9 years ago
Martin Lenders 8d1537a99c Remove duplicate function definition in queue.h 9 years ago
Hauke Petersen 8a937e1a1c hwtimer: clean up of interfaces to board/cpu 9 years ago
Oleg Hahm 85bd8cae17 check for existence of active_thread 9 years ago
Oleg Hahm 20b5230466 additional debug macro 9 years ago
Oleg Hahm 2ef9b78ccf add stacksize checker for DEBUG macro 9 years ago
Oleg Hahm 58aa0da315 added missing ENABLE_DEBUG define in mutex.c 9 years ago
René Kijewski e6d8c6bb99 Merge pull request #859 from Kijewski/mutex-trylock-error
core:mutex: allow idle thread to use mutexes
9 years ago
Ludwig Ortmann e688efdfcf core: kernel_init: call config_load in kernel_init 9 years ago
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.
9 years ago
René Kijewski 83988b2d03 Merge pull request #725 from kaspar030/optimize_thread_status_usage
core: sched: thread: optimize thread status field usage
9 years ago
René Kijewski 114eedd764 core:mutex: allow idle thread to use mutexes 9 years ago
René Kijewski 3c65b38881 core:mutex: remove refactor remnant 9 years ago
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
9 years ago
Martin 35106e3391 add test for mutex_unlock_and_sleep() 9 years ago
Martin 05f085d51a add mutex_unlock_and_sleep() 9 years ago
Kaspar Schleiser 402fae5bbe Merge pull request #698 from Kijewski/thread_wakeup-dint
Changes to `thread_wakeup`
9 years ago
Ludwig Ortmann 470bd7f17f Fixup for #685
- use DEVELHELP for native as well
- fix function name in documentation
- improve documentation language/spelling
9 years ago
Oleg Hahm 0c14597ec2 Merge pull request #685 from rousselk/panic
Panic
9 years ago
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.
9 years ago
Kaspar Schleiser cc0de63289 Merge pull request #713 from OlegHahm/sched_switch_simplification
core: move inISR check into sched_switch
9 years ago
Kévin Roussel d007207f3e Add a mechanism for handling fatal errors (and reboots) 9 years ago
Oleg Hahm 32f918abe8 simplified sched_switch
sched_switch can check ISR itself.
9 years ago
Oleg Hahm 24f5ec929c removed duplicate inISR prototype 9 years ago
Oleg Hahm 93e32953b3 always build and initialize hwtimer
Eliminates special treatment of the hwtimer module and makes it a
mandatory part of the kernel.
9 years ago
Christian Mehlis 6501707bcb core: lifo: added the right author 9 years ago
Christian Mehlis 0309fecc19 fix warning: invalid suffix on literal
C++11 requires a space between
literal and identifier [-Wliteral-suffix]
9 years ago
Oleg Hahm 7235f9e92c Merge pull request #729 from BytesGalore/remove_unnecessary_includes
core:mutex removed unnecessary includes
9 years ago
Martin ff36df6847 migrated tcb.h include to .c file 9 years ago
Martin 88c7c47c46 removed unnecessary includes 9 years ago
Kaspar Schleiser 36981c95b9 core: sched: thread: optimize thread status field usage
see PR #716 for discussion
9 years ago
Kévin Roussel dc6f920f33 Merge remote-tracking branch 'origin/reboot' into reboot 9 years ago
Christian Mehlis 3dce0cbb97 Merge pull request #662 from Kijewski/remove-sched_init
Do not zero out sched_threads needlessly
9 years ago
Kévin Roussel ca6db02530 Function attributes are now defined elsewhere ("attributes.h") 9 years ago
Kaspar Schleiser 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...
9 years ago
Kaspar Schleiser 8d07b131db core: msg: add some debug statements 9 years ago
Kaspar Schleiser 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.
9 years ago
Kévin Roussel e7d19fd2be Add a reboot() function to kernel.h definitions. 9 years ago
Kévin Roussel 8ca607bd70 Portable definition of function attributes 9 years ago
Ludwig Ortmann 2525920426 remove trailing whitespace and newlines 9 years ago
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.
9 years ago
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
9 years ago
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
9 years ago
Kaspar Schleiser 56ee585c81 update Kaspar's email address
kaspar.schleiser@fu-berlin.de is obsolete.
(2nd try, first try was overwritten by some overzealous documenter)
9 years ago
Oleg Hahm d5fd29a658 created doxygen link to STATUS_STOPPED 9 years ago
Oleg Hahm 2cc01bab3f added documentation for scheduler statuses 9 years ago
Ludwig Ortmann bcbe6bf5c8 thread_measure_stack_ usage -> free
Rename the function as its name suggests the opposite of what it does.
9 years ago
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)
9 years ago
Ludwig Ortmann c42aa8993f fix regression from #251
remove thread_measure_stack_usage from kernel_internal.h again
9 years ago
Oleg Hahm 9eebc532ef Merge pull request #459 from rousselk/msp430-lpm-freq
Msp430 lpm freq
9 years ago
Kévin Roussel e6d4a0b73a Added the LPM_UNKNOWN constant to the enum 'lpm_mode'
for respresenting unknown/unavailable LPM-related status.
9 years ago
Oleg Hahm c7d985d371 removed redundant include pathes from Makefiles 9 years ago
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
9 years ago
Ludwig Ortmann 2fb884a5af refine DEVELHELP section
more efficient to be better suited for ISR
made testcase more clear
9 years ago
Ludwig Ortmann 13bb8df91b fix typo, improve doc 9 years ago
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
9 years ago
Ludwig Ortmann eac60d666f make reset of freed slots optional
addresses https://github.com/RIOT-OS/RIOT/pull/433#discussion_r8472602
9 years ago
Ludwig Ortmann 1a99a44e01 macro consistency and more DEBUG
addresses https://github.com/RIOT-OS/RIOT/pull/433#discussion_r8437084
add missing debug statement
9 years ago
Ludwig Ortmann 6021b9f36a reset unused lifo slots 9 years ago
Ludwig Ortmann 1dac115c68 add debug statements to lifo 9 years ago
Oleg Hahm 903ec54a43 making include directives consistent 9 years ago
Ludwig Ortmann 8dd9db3c45 add some documentation to lpm.h 9 years ago
Oleg Hahm 9eb1daf31e added thread.h include (necessary since 227c847135) 9 years ago
Oleg Hahm 227c847135 put prototype for thread_yield() in core/include 9 years ago
Oleg Hahm 891eebd361 Merge pull request #427 from mehlis/hwtimer-debug
added some debug output
9 years ago
Hauke Petersen 2df82017a8 Fixed doxygen inconsistensies in sys 9 years ago
Hauke Petersen edcabf7cb6 Fixed a lot of comments by removing tabs and correcting format. 9 years ago
Hauke Petersen 3785fe956b Fixed doxygen comments, focused on file headers and group definitions 9 years ago
Christian Mehlis 2527d3d636 added some debug output 9 years ago
Oleg Hahm 07da7b2d45 reverted 18e97f6dd5 9 years ago
Kaspar Schleiser aaf325c290 Merge pull request #400 from kaspar030/msg_cleanup
msg.c cleanup
9 years ago
Kaspar Schleiser 23ecbde1a3 core: msg: whitespace fixes 9 years ago
Kaspar Schleiser 94283789a7 core: msg: rename "n" to something more expressive ("queue_index") 9 years ago
Kaspar Schleiser af542058ee core: msg: whitespace fixes 9 years ago
Kaspar Schleiser f85adf608f change my email address
kaspar.schleiser@fu-berlin.de will be obsoleted soon. Replace it with
kaspar@schleiser.de, which will (hopefully) stay.
9 years ago
Thomas Eichinger dfdfb448f4 enforce KERNEL_CONF_STACKSIZE_PRINTF in kernel.h 9 years ago
Christian Mehlis 863c0a7e14 Merge pull request #378 from OlegHahm/version_string
include version string
9 years ago
Christian Mehlis 05c05661e6 Merge pull request #337 from LudwigOrtmann/hwtimer_cleanup
hwtimer.h remove cruft, document, rearrange
9 years ago
Oleg Hahm 529f3fb278 include version string 9 years ago
Ludwig Ortmann d6c213fb47 fix grammar in license header 9 years ago
Ludwig Ortmann ed0d108da6 hwtimer.h remove cruft, document, rearrange
remove unsused hwtimer_t0* declarations
document hwtimer_now
move hwtimer_now outside the internal section
9 years ago
Oleg Hahm 7c979751e5 Merge pull request #368 from mehlis/findings
(non critical) findings
9 years ago
Christian Mehlis a83a6f2b49 fix some defines in tcb.h 9 years ago
Christian Mehlis f5d412bf9f removed unnecessary stdlib.h include 9 years ago
Ludwig Ortmann d06e0d8717 rename runtime to reflect the unit of measurement 9 years ago
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()
9 years ago
Ludwig Ortmann 05431e9e86 improve comments, rename variable 10 years ago
Ludwig Ortmann 2d419e6648 save one long 10 years ago
Ludwig Ortmann e8a03a8287 improve fix and comment 10 years ago
Ludwig Ortmann 1ef31b3813 fix race condition in hwtimer_spin 10 years ago
Oleg Hahm cc45909ffc Merge pull request #236 from OlegHahm/telosb
Telosb
10 years ago
Oleg Hahm 5fea3af233 Merge pull request #294 from authmillenon/rewrite_bitarithm
Use GCC/Clang builtins for bit arithmetics
10 years ago
Oleg Hahm e44412d0c1 added debug information to msg_send (similar to msg_send_int) 10 years ago
authmillenon 18e97f6dd5 Use GCC/Clang builtins for bit arithmetics 10 years ago
Ludwig Ortmann 4b02701ad0 document msg_init_queue return values 10 years ago
Ludwig Ortmann 37c9b8ebfd fix spelling in msg.h 10 years ago
Ludwig Ortmann f1b89df8d8 explain the "brainfuck condition" 10 years ago
Ludwig Ortmann 5e6cc92291 harmonize msg.c DEBUG statements
Use same order (function: [thread_name:] message) throughout msg.c.
Begin message with a capital letter.
10 years ago
Ludwig Ortmann 2d1303763e fix spelling in msg.c 10 years ago
Ludwig Ortmann 089a15c110 merge thread_measure_stack_usage declarations 10 years ago
Christian Mehlis 495246d2d4 add thread_getname function 10 years ago
Christian Mehlis 9c70e4501c only include debug functions if needed 10 years ago
Kévin Roussel d2535f3841 Added missing definition of 'PRIu32' in some RIOT include files
to avoid a bug in mspgcc's standard library
10 years ago
Christian Mehlis 9ace6b4807 add missing inttypes include for PRI macros 10 years ago
Christian Mehlis 21ffebc197 add check for a not existing thread 10 years ago
Christian Mehlis 6da0375197 fix macros in the hwtimer 10 years ago
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
10 years ago
Oleg Hahm 4d2de87724 Merge pull request #135 from OlegHahm/sched_fixes
Improving sched.h documentation
10 years ago
Oleg Hahm 2981fe0844 Improving sched.h documentation 10 years ago
Oleg Hahm 9fac7c3f5f Merge pull request #134 from OlegHahm/sched_fixes
Scheduler callback
10 years ago
Oleg Hahm 1709fa600c re-added the scheduler callback (the actual call was missing) 10 years ago
Oleg Hahm 7dbb97e376 added documentation for sched.h 10 years ago
Oleg Hahm 932c626c6b moved prototype for sched_register_cb() from C file to header 10 years ago
Oleg Hahm 570c0e717d removed unused (and ambiguous) definitions of active_thread and sched_threads in kernel_init.c 10 years ago
Oleg Hahm b6fe284331 fix priority comparison in sched_switch 10 years ago
Christian Mehlis 735c41786d remove unused static function 10 years ago
Christian Mehlis 6428bd5546 use std include style 10 years ago
Christian Mehlis 00d618634c add missing include for mutex 10 years ago
Christian Mehlis a1ce242ffe Merge pull request #113 from mehlis/oneway-calloc
add oneway calloc
10 years ago
Martin Lenders 78db093d09 Merge pull request #105 from OlegHahm/hwtimer_wait
fix for #25 by using mutexes for hwtimer_wait
10 years ago
Christian Mehlis 764e0027f1 add oneway calloc 10 years ago
Martin 63146190b3 fix changed prototype parameter 1 of thread_stack_init from void* to void(*)(void) 10 years ago
Oleg Hahm 3f95d72828 fix for #25 by using mutexes for hwtimer_wait 10 years ago
Oleg Hahm 88d2357295 fix warnings from #62 10 years ago
LudwigOrtmann 07c7e8ccd3 Merge pull request #90 from OlegHahm/milestone_1_0_fixes
Milestone 1 0 fixes
10 years ago
Oleg Hahm 39a4dc684e fixes for #62: eliminate unused parameter warnings
NOTE: this commit introduces a kernel API change for mutex_unlock
10 years ago
Oleg Hahm 836ae0d291 fix #11: initialize queue_node_t n.next in msg_send() 10 years ago
Christian Mehlis 62994314aa in msg_send_receive: return result from msg_send 10 years ago
Oleg Hahm f7ecc704a4 fixed includes and include pathes 10 years ago
Oleg Hahm 0bd81f14a4 remove header guard from debug.h and repaired debugging on a per file base 10 years ago
Oleg Hahm ca75d3c36c fixed some includes 10 years ago
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
10 years ago
Oleg Hahm 37467de0d2 fixed printf formatter 10 years ago
Christian Mehlis 837bad38eb rename kernel_intern.h
german "intern" to english "internal"
10 years ago
Christian Mehlis b8176f4488 fixed printf patterns 10 years ago
Christian Mehlis c5e62e238b add missing include 10 years ago
Christian Mehlis 69c526f44d removed redefined ENABLE_DEBUG 10 years ago
Christian Mehlis 190e24116d use int explicitly 10 years ago
Christian Mehlis 96cbf4019e make internal function static 10 years ago
Ludwig Ortmann 7dd9ac6be0 Add msg_try_receive 10 years ago
Christian Mehlis 9549c29ccb fix missing includes 10 years ago
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
10 years ago
Oliver Hahm c8bee9e554 fixed coding style (space after most keywords) 10 years ago
Oliver Hahm 5bae4f841d added one-time-initialization guard to transceiver 10 years ago
Oliver Hahm f359453083 fixed doxygen value 10 years ago
Oliver Hahm ffeb6f8523 fixed coding conventions (correctly this time) 10 years ago
Oliver Hahm 0d6d8390c0 * updated copyright and license headers in various files 10 years ago
Oliver Hahm d640cf4298 fixed missing include 10 years ago
Oliver Hahm fdd1d21e8d Merge branch 'master' into wsn430 10 years ago
Christian Mehlis a57c25499b remove recursive include 10 years ago
Oliver Hahm 40edc25022 * cast main function in kernel_init to match prototype 10 years ago
Christian Mehlis 8f74612762 main should always return int
this fixes some compiler warnings
10 years ago
Christian Mehlis b41fd19216 prevent double include of debug.h 10 years ago
Christian Mehlis 42063530c0 clarify: while loop without body is correct here 10 years ago
Milan Babel df13d9e0fc Merge branch 'master' of github.com:overflowed/RIOT
Conflicts:
	drivers/cc110x_ng/Makefile
10 years ago
Milan Babel edb34b73c0 fixes for the wsn430
fixed vtimer for the msp430
added spi module for the wsn430 v1.3b
changed some variables to uintXX_t, fixes overflow on msp430
10 years ago
Ludwig Ortmann b36ddd7fd7 Merge remote-tracking branch 'upstream/master' 10 years ago
Ludwig Ortmann c6553f6492 interrupt handling rewrite
(including uart0 integration, rt-extension removal)
10 years ago
Oliver Hahm e69da952de * forbid the usage of '0' as an parameter for number_of_the_lowest_bit() 10 years ago
Martin Lenders 07e8ac9c19 Remove swtimer
see #4
10 years ago
Oleg Hahm 349bec1f0f * added documentation to kernel_intern.h 10 years ago
Oleg Hahm e8af0c42c3 * created prototype for cpu_switch_context_exit() 10 years ago
Oliver Hahm e6177e811a * moved cpu and board specific parts to corresponding Makefiles
* introduced variable for cpu folder
10 years ago
Ludwig Ortmann f8973bb007 Merge remote-tracking branch 'upstream/master' 10 years ago
Oliver Hahm 0d06e1bc18 Merge branch 'master' of github.com:RIOT-OS/RIOT 10 years ago
Oliver Hahm 7a4dec1830 * replaced new Makefile name in Makefiles 10 years ago
Oliver Hahm 5ffe5a9c27 * renamed makefiles to Makefile 10 years ago
Oleg Hahm 2ed63bd5c6 * removed outdated (and probably confusing) FeuerWhere project as an author 10 years ago
Oleg Hahm 2277b366b2 * removed outdated occurrences of (u|µ)kleos and FeuerWare 10 years ago