zephyr/doc/kernel/nanokernel/nanokernel_data.rst
Andrew Boie f18f102feb nanokernel: add optional ring buffer data type
This patch is based on some code contributed by Dirk Brandewie.

This is a generic data structure for queuing data in a FIFO ring
buffer. Any given data enqueued is annotated with an app-specific
type identifier, and small integral value. Use of a data pointer
is optional if the necessary information can be conveyed in the
annotations. We want all the metadata to fit in a single DWORD.
The ring buffer always contains at least one free dword in the
buffer to correctly distinguish between full and empty queues.

Concurrency control is almost nonexistent; depending on usage,
apps may want to introduce the usage of semaphores and/or mutexes
to preserve the integrity of the ring buffer or provide notifications
when data is available.

Change-Id: I860262d2afc96db4476d4c695a92f7da355ab732
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:15:34 -05:00

16 lines
284 B
ReStructuredText

.. _nanokernel_data:
Data Passing Services
#####################
This section contains the information about all data passing services
provided by the nanokernel.
.. toctree::
:maxdepth: 2
nanokernel_fifos
nanokernel_lifos
nanokernel_stacks
nanokernel_ring_buffers