API documentation wasn't linking to important conceptual overview material available in the primer documentation. This will need to be done over again when we work on the combined kernel documentation, but this will give us a peek at what that will look like. Jira: ZEP-746 Change-Id: Ib1142575272c72d93af8d409518d0d0a4304ef32 Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
156 lines
3.6 KiB
ReStructuredText
156 lines
3.6 KiB
ReStructuredText
.. microkernel_api:
|
|
|
|
Microkernel APIs
|
|
################
|
|
|
|
.. contents::
|
|
:depth: 1
|
|
:local:
|
|
:backlinks: top
|
|
|
|
Events
|
|
******
|
|
|
|
The microkernel's :dfn:`event` objects are an implementation of traditional
|
|
binary semaphores.
|
|
|
|
For an overview and important information about Events, see :ref:`microkernel_events`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_event
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
FIFOs
|
|
*****
|
|
|
|
The microkernel's :dfn:`FIFO` object type is an implementation of a traditional
|
|
first in, first out queue.
|
|
A FIFO allows tasks to asynchronously send and receive fixed-size data items.
|
|
|
|
For an overview and important information about FIFOs, see :ref:`microkernel_fifos`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_fifo
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Pipes
|
|
*****
|
|
|
|
The microkernel's :dfn:`pipe` object type is an implementation of a traditional
|
|
anonymous pipe. A pipe allows a task to send a byte stream to another task.
|
|
|
|
For an overview and important information about Pipes, see :ref:`microkernel_pipes`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_pipe
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Mailboxes
|
|
*********
|
|
|
|
The microkernel's :dfn:`mailbox` object type is an implementation of a
|
|
traditional message queue that allows tasks to exchange messages.
|
|
|
|
For an overview and important information about Mailboxes, see :ref:`microkernel_mailboxes`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_mailbox
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Memory Maps
|
|
***********
|
|
|
|
The microkernel's memory map objects provide dynamic allocation and
|
|
release of fixed-size memory blocks.
|
|
|
|
For an overview and important information about Memory Maps, see :ref:`microkernel_memory_maps`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_memorymap
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Memory Pools
|
|
************
|
|
|
|
The microkernel's :dfn:`memory pool` objects provide dynamic allocation and
|
|
release of variable-size memory blocks.
|
|
|
|
For an overview and important information about Memory Pools, see :ref:`microkernel_memory_pools`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_memorypool
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Mutexes
|
|
*******
|
|
|
|
The microkernel's :dfn:`mutex` objects provide reentrant mutex
|
|
capabilities with basic priority inheritance. A mutex allows
|
|
tasks to safely share a resource by ensuring mutual exclusivity
|
|
while the resource is being accessed by a task.
|
|
|
|
For an overview and important information about Mutexes, see :ref:`microkernel_mutexes`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_mutex
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Semaphores
|
|
**********
|
|
|
|
The microkernel's :dfn:`semaphore` objects are an implementation of traditional
|
|
counting semaphores.
|
|
|
|
For an overview and important information about Semaphores, see :ref:`microkernel_semaphores`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_semaphore
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Timers
|
|
******
|
|
|
|
A :dfn:`microkernel timer` allows a task to determine whether or not a
|
|
specified time limit has been reached while the task is busy performing
|
|
other work. The timer uses the kernel's system clock, measured in
|
|
ticks, to monitor the passage of time.
|
|
|
|
For an overview and important information about Timers, see :ref:`microkernel_timers`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_timer
|
|
:project: Zephyr
|
|
:content-only:
|
|
|
|
Tasks
|
|
*****
|
|
|
|
A task is a preemptible thread of execution that implements a portion of
|
|
an application's processing. It is normally used for processing that
|
|
is too lengthy or too complex to be performed by a fiber or an ISR.
|
|
|
|
For an overview and important information about Tasks, see :ref:`microkernel_tasks`.
|
|
|
|
------
|
|
|
|
.. doxygengroup:: microkernel_task
|
|
:project: Zephyr
|
|
:content-only:
|