27#if defined(MICRO_OS_PLUS_INCLUDE_CONFIG_H)
28#include <micro-os-plus/config.h>
32#include <micro-os-plus/diag/trace.h>
37#pragma GCC diagnostic push
39#pragma GCC diagnostic ignored "-Waggregate-return"
41#pragma clang diagnostic ignored "-Wc++98-compat"
63 assert (
next_ ==
nullptr);
103#if defined(MICRO_OS_PLUS_TRACE_UTILS_LISTS)
104 trace::printf (
"%s() link %p after %p\n", __func__, node,
this);
106 assert (
next_ !=
nullptr);
107 assert (
next_->previous_ !=
nullptr);
113 next_->previous_ = node;
127#if defined(MICRO_OS_PLUS_TRACE_UTILS_LISTS)
128 trace::printf (
"%s() link %p before %p\n", __func__, node,
this);
130 assert (
next_ !=
nullptr);
131 assert (
next_->previous_ !=
nullptr);
152#if defined(MICRO_OS_PLUS_TRACE_UTILS_LISTS)
153 trace::printf (
"%s() %p \n", __func__,
this);
177 assert (
next_ ==
this);
190#if defined(__GNUC__) && !defined(__clang__)
193 __attribute__ ((noinline, noipa))
206#pragma GCC diagnostic pop
double_list_links_base * previous_
Pointer to the previous node.
void initialize_once(void)
Initialize the list only at first run.
constexpr double_list_links_base()
Construct an uninitialised list node.
void link_next(double_list_links_base *node)
Link the new node as next.
bool linked(void) const
Check if the node is linked to a double list.
void link_previous(double_list_links_base *node)
Link the new node as previous.
bool uninitialized(void) const
Check if the node is uninitialised.
double_list_links_base * next_
Pointer to the next node.
constexpr void initialize(void)
Initialise the node links.
void unlink(void)
Remove this node from the list.
void nullify(void)
Reset the two pointers to nullptr.
The file with the declarations of the µOS++ lists classes.
The µOS++ utilities definitions.