Lines Matching full:a

6 A :dfn:`FIFO` is a kernel object that implements a traditional
20 A FIFO has the following key properties:
22 * A **queue** of data items that have been added but not yet removed.
23 The queue is implemented as a simple linked list.
25 A FIFO must be initialized before it can be used. This sets its queue to empty.
27 FIFO data items must be aligned on a word boundary, as the kernel reserves
28 the first word of an item for use as a pointer to the next data item in
29 the queue. Consequently, a data item that holds N bytes of application
37 data queues. Any attempt to re-add a FIFO data item to a queue before
41 A data item may be **added** to a FIFO by a thread or an ISR.
42 The item is given directly to a waiting thread, if one exists;
46 A data item may be **removed** from a FIFO by a thread. If the FIFO's queue
47 is empty a thread may choose to wait for a data item to be given.
49 When a data item is added, it is given to the highest priority thread
53 The kernel does allow an ISR to remove an item from a FIFO, however
56 If desired, **multiple data items** can be added to a FIFO in a single operation
57 if they are chained together into a singly-linked list. This capability can be
60 items. Adding multiple data items to a FIFO is also more efficient than adding
61 them one at a time, and can be used to guarantee that anyone who removes
62 the first data item in a set will be able to remove the remaining data items
68 Defining a FIFO
71 A FIFO is defined using a variable of type :c:struct:`k_fifo`.
91 Writing to a FIFO
94 A data item is added to a FIFO by calling :c:func:`k_fifo_put`.
121 Additionally, a singly-linked list of data items can be added to a FIFO
124 Finally, a data item can be added to a FIFO with :c:func:`k_fifo_alloc_put`.
129 Reading from a FIFO
132 A data item is removed from a FIFO by calling :c:func:`k_fifo_get`.
135 to obtain data items from a producer thread,
155 Use a FIFO to asynchronously transfer data items of arbitrary size
156 in a "first in, first out" manner.