12#if defined(OS_USE_OS_APP_CONFIG_H)
13#include <cmsis-plus/os-app-config.h>
23#pragma clang diagnostic ignored "-Wc++98-compat"
24#elif defined(__GNUC__)
25#pragma GCC diagnostic ignored "-Wmissing-include-dirs"
64 assert (
prev_ ==
nullptr);
65#if defined(OS_TRACE_UTILS_LISTS)
71#if defined(OS_TRACE_UTILS_LISTS)
110#pragma GCC diagnostic push
111#if defined(__clang__)
112#elif defined(__GNUC__)
113#pragma GCC diagnostic ignored "-Wuseless-cast"
117#pragma GCC diagnostic pop
124#if defined(OS_TRACE_UTILS_LISTS)
125 trace::printf (
"%s() n=%p after %p\n", __func__, &node, after);
131 assert (node.
prev () ==
nullptr);
132 assert (node.
next () ==
nullptr);
136 assert (after->
next () !=
nullptr);
155#if defined(OS_TRACE_UTILS_LISTS_CONSTRUCT) || defined(OS_TRACE_UTILS_LISTS)
168#if defined(OS_TRACE_UTILS_LISTS_CONSTRUCT) || defined(OS_TRACE_UTILS_LISTS)
double_list()
Construct a list.
~double_list()
Destruct the list.
Statically allocated core of a double linked list, pointers to next, previous.
bool unlinked(void)
Check if the node is unlinked.
static_double_list_links * prev_
Pointer to previous node.
static_double_list_links * next(void) const
static_double_list_links * next_
Pointer to next node.
static_double_list_links * prev(void) const
void unlink(void)
Remove the node from the list.
static_double_list_links head_
A list node used to point to head and tail.
void insert_after(static_double_list_links &node, static_double_list_links *after)
Insert a new node after existing node.
bool empty(void) const
Check if the list is empty.
void clear(void)
Clear the list.
int printf(const char *format,...)
Write a formatted string to the trace device.