Lines Matching full:a
6 A :dfn:`LIFO` is a kernel object that implements a traditional
20 A LIFO 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 LIFO must be initialized before it can be used. This sets its queue to empty.
27 LIFO 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 the
29 queue. Consequently, a data item that holds N bytes of application data
37 data queues. Any attempt to re-add a LIFO data item to a queue before
41 A data item may be **added** to a LIFO 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 LIFO by a thread. If the LIFO'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 LIFO, however
59 Defining a LIFO
62 A LIFO is defined using a variable of type :c:struct:`k_lifo`.
82 Writing to a LIFO
85 A data item is added to a LIFO by calling :c:func:`k_lifo_put`.
112 A data item can be added to a LIFO with :c:func:`k_lifo_alloc_put`.
117 Reading from a LIFO
120 A data item is removed from a LIFO by calling :c:func:`k_lifo_get`.
123 to obtain data items from a producer thread,
143 Use a LIFO to asynchronously transfer data items of arbitrary size
144 in a "last in, first out" manner.