Lines Matching full:and
9 constant-time access to the first (head) and last (tail) elements of
10 the list, insertion before the head and after the tail of the list and
12 requires access to the "previous" pointer and thus can only be
18 before use. Its interior fields are opaque and should not be accessed
22 :c:func:`sys_slist_peek_head` and :c:func:`sys_slist_peek_tail`, which will
31 containing struct and the field name of the node. Internally, the
36 :c:func:`sys_slist_prepend` and :c:func:`sys_slist_append`. They may also
45 subset of an existing list in constant time. And
47 for a given node and remove it if present.
55 extra scratch variable for storage and allows the user to delete the
57 in a "container" variant (:c:macro:`SYS_SLIST_FOR_EACH_CONTAINER` and
59 variable of a type that matches the user's container struct and not
60 the node struct, performing the required offsets internally. And
62 node and all its successors only, without inspecting the earlier part
68 The slist code is designed to be minimal and conventional.
70 "head" and "tail" pointer fields. And a :c:type:`sys_snode_t` stores only a
89 fields from arbitrary structures and emits an arbitrarily named set of
93 primitive operations only: an "init" step for each struct, and a "get"
94 and "set" primitives for each of head, tail and next pointers on their
106 of "slist") and the additional API described next, it operates in all
110 "flags" with each list node. These can be accessed and modified with
111 :c:func:`sys_sfnode_flags_get` and :c:func:`sys_sfnode_flags_set`.
113 next pointer and incur no SRAM storage overhead when compared with the