|
CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
|
Convenience wrapper for a sentinel cons cell, encapsulating some common patterns. More...
#include <linked_list.h>

Public Types | |
| using | Cell = CellTemplateArg |
Public Member Functions | |
| void | reset () |
| bool | is_empty () |
| void | append (Cell *elem) |
| void | append_emplace (Cell *elem) |
| void | prepend (Cell *elem) |
| Cell * | first () |
| Cell * | last () |
| Cell * | unsafe_take_first () |
| Cell * | take_all () |
| template<typename F> | |
| bool | search (F f) |
Public Attributes | |
| Cell | sentinel = {} |
| The sentinel node itself. | |
Convenience wrapper for a sentinel cons cell, encapsulating some common patterns.
Definition at line 362 of file linked_list.h.
| using ds::linked_list::Sentinel< CellTemplateArg >::Cell = CellTemplateArg |
Definition at line 364 of file linked_list.h.
|
inline |
Definition at line 389 of file linked_list.h.
|
inline |
Definition at line 394 of file linked_list.h.
|
inline |
Definition at line 404 of file linked_list.h.
|
inline |
Definition at line 384 of file linked_list.h.
|
inline |
Definition at line 409 of file linked_list.h.
|
inline |
Definition at line 399 of file linked_list.h.
|
inline |
Definition at line 379 of file linked_list.h.
|
inline |
Definition at line 429 of file linked_list.h.
|
inline |
Definition at line 421 of file linked_list.h.
|
inline |
Definition at line 414 of file linked_list.h.
| Cell ds::linked_list::Sentinel< CellTemplateArg >::sentinel = {} |
The sentinel node itself.
Viewing the ring as a list, this effectively serves as pointers to the head (next) and to the tail (prev) of the list. Unlike more traditional nullptr-terminated lists, though, here, the sentinel participates in the ring.
This is marked cheri_no_subobject_bounds because some of our cons cell implementations use pointer proxies that rely on the bounds provided by this (which, in turn, is likely to be cheri_no_subobject_bounds)
Definition at line 377 of file linked_list.h.