As discussed in #2725, this commit renames a number of stacksize constants to
better convey their intended usage. In addition, constants for thread priority
are given a `THREAD_` prefix. Changes are:
* KERNEL_CONF_STACKSIZE_PRINTF renamed to THREAD_EXTRA_STACKSIZE_PRINTF
* KERNEL_CONF_STACKSIZE_DEFAULT renamed to THREAD_STACKSIZE_DEFAULT
* KERNEL_CONF_STACKSIZE_IDLE renamed to THREAD_STACKSIZE_IDLE
* KERNEL_CONF_STACKSIZE_MAIN renamed to THREAD_STACKSIZE_MAIN
* Move thread stacksizes from kernel.h to thread.h, since the prefix changed
* PRIORITY_MIN renamed to THREAD_PRIORITY_MIN
* PRIORITY_IDLE renamed to THREAD_PRIORITY_IDLE
* PRIORITY_MAIN renamed to THREAD_PRIORITY_MAIN
* Move thread priorities from kernel.h to thread.h since the prefix has changed
* MINIMUM_STACK_SIZE renamed to THREAD_STACKSIZE_MINIMUM for consistency
This patch fixes ipv6_net_if_get_best_src_addr,
the function seems not to be finished.
The patch also adds a filter for the prefixes,
it is necessary because the prefixes are stored
in the same list as the addresses.
*((uint16_t)*dest) results in a ldrh (load halfword) instruction
on an address that seems to not be halfword-aligned (?),
causing a hard-fault on the samr21-xpro board (cortex-m0
architecture). The issue seems to be very similar to
the one described in http://stackoverflow.com/a/21661366/124257
10: 16 bits. The first 112 bits of the address are elided.
The value of the first 64 bits is the link-local prefix padded with zeros.
The following 64 bits are 0000:00ff:fe00:XXXX, where XXXX are the 16 bits carried in-line.
See https://tools.ietf.org/html/rfc6282
When setting the `ENABLE_DEBUG` flag to *1* in ip.c,
the **rpl_udp** example won't compile, because the variable `addr_str`
is also defined in **rpl_udp.h** as extern.
Prefixing `addr_str` with `static` in ip.c solves this problem.
This PR proposes an approach to reduce the thread count of RPL.
The current RPL/Trickle stack needs about 5 threads to handle tasks
like updating the trickle timer, routing entries and the transmission of
DAOs.
This PR modifies RPL to use only one thread with a looped `msg_recv()` call.
The message is then multiplexed to the right task.
Currently, when using vtimer_set_msg the corresponding msg_t is filled
with the MSG_TIMER ("12345") type.
This approach makes it difficult to differentiate between incoming
messages via vtimer_set_msg.
In this PR I introduce another parameter for the vtimer_set_msg
function to specify a custom msg_t type.