doc: Edit microkernel_fifos for consistent .rst style and formatting.

Making all the files in this section consistent with :dfn: in the intro
paragraph, API headings, present-tense verbs in APIs, parallel wording.

Change-Id: I5259c443076b1ac6602352dab42d35d5aca6e5b5
Signed-off-by: L.S. Cook <leonax.cook@intel.com>
This commit is contained in:
L.S. Cook 2016-02-29 11:26:53 -08:00 committed by Gerrit Code Review
commit 9b1bd225ec

View file

@ -6,27 +6,29 @@ FIFOs
Concepts
********
The microkernel's FIFO object type is an implementation of a traditional
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.
Each FIFO has an associated ring buffer for holding data items that have been
Each FIFO has an associated ring buffer used to hold data items that have been
sent but not yet received.
Any number of FIFOs can be defined in a microkernel system. Each FIFO has a
name that uniquely identifies it. In addition, a FIFO defines the size of
the data items it handles and the maximum number of data items that can be
queued in its ring buffer, both of which must be greater than zero.
Any number of FIFOs can be defined in a microkernel system. Each FIFO needs:
* A **name** that uniquely identifies it.
* A **maximum quantity** of data items that can be queued in its ring buffer.
* The **data item size**, measured in bytes, of each data item it can handle.
A task sends a data item by specifying a pointer to an area containing the data
to be sent; the size of the data area must equal the FIFO's data item size.
The data is given directly to a receiving task (if one is waiting) or copied
to the FIFO's ring buffer (if space is available). When a FIFO is full
the sending task may choose to wait for space to become available.
The data is either given directly to a receiving task (if one is waiting), or
copied to the FIFO's ring buffer (if space is available). When a FIFO is full,
the sending task can wait for space to become available.
Any number of tasks may wait on a full FIFO simultaneously; when space for
a data item becomes available it is given to the highest priority task that
has waited the longest.
a data item becomes available, that space is given to the highest-priority
task that has waited the longest.
A task receives a data item by specifying a pointer to an area to receive
the data; the size of the receiving area must equal the FIFO's data item size.
@ -50,7 +52,7 @@ anonymous manner.
copying the data. The microkernel's memory map and memory pool object
types can be helpful for data transfers of this sort.
A synchronous transfer can be achieved using the microkernel's mailbox
A synchronous transfer can be achieved by using the microkernel's mailbox
object type.
A non-anonymous transfer can be achieved by having the sending task
@ -81,7 +83,8 @@ The following parameters must be defined:
Public FIFO
-----------
Define the FIFO in the application's .MDEF file using the following syntax:
Define the FIFO in the application's :file:`.MDEF` file with the
following syntax:
.. code-block:: console
@ -114,7 +117,7 @@ For example, the following code defines a private FIFO named ``PRIV_FIFO``.
DEFINE_FIFO(PRIV_FIFO, 10, 12);
To utilize this FIFO from a different source file use the following syntax:
To access this FIFO from a different source file, use the following syntax:
.. code-block:: c
@ -150,8 +153,8 @@ can't keep up, throw away all existing data so newer data can be saved.
Example: Reading from a FIFO
============================
This code uses a FIFO to process data items from generated by
one or more producing tasks.
This code uses a FIFO to process data items generated by one or more
producing tasks.
.. code-block:: c
@ -171,18 +174,20 @@ one or more producing tasks.
APIs
****
The following APIs for a microkernel FIFO are provided by
:file:`microkernel.h`:
FIFO APIs provided by :file:`microkernel.h`
===========================================
:c:func:`task_fifo_put()`
Writes item to a FIFO, or wait for a specified time period if it is full.
Write item to a FIFO, or wait for a specified time period if the FIFO is
full.
:c:func:`task_fifo_get()`
Reads item from a FIFO, or wait for a specified time period if it is empty.
Read item from a FIFO, or wait for a specified time period if the FIFO is
empty.
:c:func:`task_fifo_purge()`
Discards all items in a FIFO and unblock any tasks
waiting to read or write an item.
Discard all items in a FIFO and unblock any tasks waiting to read or write
an item.
:c:func:`task_fifo_size_get()`
Reads the number of items currently in a FIFO.
Read the number of items currently in a FIFO.