Circular double linked list of nodes. More...
#include <cmsis-plus/utils/lists.h>
Inheritance diagram for os::utils::double_list:Public Member Functions | |
Constructors & Destructor | |
| double_list () | |
| Construct a list. | |
| ~double_list () | |
| Destruct the list. | |
Public Member Functions | |
| bool | uninitialized (void) const |
| Check if the list is uninitialised. | |
| void | clear (void) |
| Clear the list. | |
| bool | empty (void) const |
| Check if the list is empty. | |
| volatile static_double_list_links * | head (void) const |
| Get the list head. | |
| volatile static_double_list_links * | tail (void) const |
| Get the list tail. | |
Protected Member Functions | |
Private Member Functions | |
| void | insert_after (static_double_list_links &node, static_double_list_links *after) |
| Insert a new node after existing node. | |
Protected Attributes | |
Private Member Variables | |
| static_double_list_links | head_ |
| A list node used to point to head and tail. | |
| os::utils::double_list::double_list | ( | ) |
The initial list status is empty.
Definition at line 153 of file lists.cpp.
References os::utils::static_double_list::clear(), and os::trace::printf().
| os::utils::double_list::~double_list | ( | ) |
There must be no nodes in the list.
Definition at line 166 of file lists.cpp.
References os::utils::static_double_list::empty(), and os::trace::printf().
|
inherited |
Initialise the mandatory node with links to itself.
Definition at line 108 of file lists.cpp.
References os::utils::static_double_list::head_, os::utils::static_double_list_links::next(), and os::utils::static_double_list_links::prev().
Referenced by double_list(), os::rtos::internal::ready_threads_list::link(), and os::rtos::internal::terminated_threads_list::link().
|
inlineinherited |
| true | The list has no nodes. |
| false | The list has at least one node. |
Definition at line 1001 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::next().
Referenced by ~double_list(), os::rtos::internal::clock_timestamps_list::check_timestamp(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::waiting_threads_list::resume_one(), and os::rtos::internal::ready_threads_list::unlink_head().
|
inlineinherited |
Definition at line 1008 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::next().
|
protectedinherited |
| node | Reference to node to insert. |
| after | Reference to existing node. |
Definition at line 121 of file lists.cpp.
References os::utils::static_double_list_links::next(), os::utils::static_double_list_links::prev(), and os::trace::printf().
Referenced by os::rtos::internal::thread_children_list::link(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), and os::rtos::internal::terminated_threads_list::link().
|
inlineinherited |
Definition at line 1014 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::prev().
Referenced by os::rtos::internal::thread_children_list::link(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), and os::rtos::internal::terminated_threads_list::link().
|
inlineinherited |
| true | The list was not initialised. |
| false | The list was initialised. |
Definition at line 994 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::prev().
|
protectedinherited |
To simplify processing, the list always has a node.
Definition at line 473 of file lists.h.
Referenced by os::rtos::internal::waiting_threads_list::begin(), os::rtos::internal::clock_timestamps_list::check_timestamp(), os::utils::static_double_list::clear(), os::utils::static_double_list::empty(), os::rtos::internal::waiting_threads_list::end(), os::utils::static_double_list::head(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::terminated_threads_list::link(), os::utils::static_double_list::tail(), and os::utils::static_double_list::uninitialized().