13#if defined(OS_USE_OS_APP_CONFIG_H)
14#include <cmsis-plus/os-app-config.h>
24#pragma clang diagnostic ignored "-Wc++98-compat"
62 assert(
prev_ ==
nullptr);
63#if defined(OS_TRACE_UTILS_LISTS)
69#if defined(OS_TRACE_UTILS_LISTS)
107#pragma GCC diagnostic push
108#if defined(__clang__)
109#elif defined(__GNUC__)
110#pragma GCC diagnostic ignored "-Wuseless-cast"
114#pragma GCC diagnostic pop
121#if defined(OS_TRACE_UTILS_LISTS)
122 trace::printf (
"%s() n=%p after %p\n", __func__, &node, after);
128 assert(node.
prev () ==
nullptr);
129 assert(node.
next () ==
nullptr);
133 assert(after->
next () !=
nullptr);
152#if defined(OS_TRACE_UTILS_LISTS_CONSTRUCT) || defined(OS_TRACE_UTILS_LISTS)
165#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.