zephyr/kernel
Benjamin Walsh d8994f69be nanokernel: add nano_fifo_put_list() APIs
Introduce the family of nano_fifo_put_list and nano_fifo_put_slist APIs,
which allow queuing a list of elements on a nanokernel fifo in one
shot. When called from an ISR or a fiber, the behaviour is not really
different than calling nano_fifo_put for each element to enqueue.
However, when called from a task, it allows the task to enqueue the full
list without yielding to fibers that were waiting on the fifo.

All fibers currently waiting on the fifo will be awakened and given an
element from the list in their order of priority. When some elements are
not matched with a receiver, they are queued normally.

There are two ways of passing a list: with either an ad-hoc queue, by
passing the head and the tail elements, or with a sys_slist_t object.
For the latter, the object must be reinitialized afterwards.

Change-Id: I6ac077f556dc39995191e9149c4a047a3433826f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-06-13 20:24:41 +00:00
..
configs kconfig: use zephyr as the binary name globally 2016-02-05 20:24:22 -05:00
microkernel Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
nanokernel nanokernel: add nano_fifo_put_list() APIs 2016-06-13 20:24:41 +00:00
Kconfig Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
Makefile Kbuild: adapt Makefile/Kconfig to kernel/common/ removal 2016-02-05 20:14:06 -05:00