@@ -52,6 +52,81 @@ extern struct k_event *_track_list_k_event;
5252 */
5353#define SYS_PORT_TRACK_NEXT (list )((list)->_obj_track_next)
5454
55+ /**
56+ * @brief Gets node's next element in a object tracking list.
57+ *
58+ * Example:
59+ * SYS_PORT_TRACK_FOREACH(k_mutex, m) {
60+ * ...
61+ * }
62+ *
63+ * @param object Type of tracking object to iterate over.
64+ * @param var Temporary variable used during iteration.
65+ */
66+ #define SYS_PORT_TRACK_FOR_EACH (object , var ) \
67+ for (struct object *var = _track_list_##object \
68+ ; var != NULL; var++)
69+
70+ /**
71+ * @brief Gets node's next element in a k_timer tracking list.
72+ */
73+ #define SYS_PORT_TRACK_K_TIMER_NEXT () \
74+ SYS_PORT_TRACK_NEXT(_track_list_k_timer)
75+
76+ /**
77+ * @brief Gets node's next element in a k_mem_slab tracking list.
78+ */
79+ #define SYS_PORT_TRACK_K_MEM_SLAB_NEXT () \
80+ SYS_PORT_TRACK_NEXT(_track_list_k_mem_slab)
81+
82+ /**
83+ * @brief Gets node's next element in a k_sem tracking list.
84+ */
85+ #define SYS_PORT_TRACK_K_SEM_NEXT () \
86+ SYS_PORT_TRACK_NEXT(_track_list_k_sem)
87+
88+ /**
89+ * @brief Gets node's next element in a k_mutex tracking list.
90+ */
91+ #define SYS_PORT_TRACK_K_MUTEX_NEXT () \
92+ SYS_PORT_TRACK_NEXT(_track_list_k_mutex)
93+
94+ /**
95+ * @brief Gets node's next element in a k_stack tracking list.
96+ */
97+ #define SYS_PORT_TRACK_K_STACK_NEXT () \
98+ SYS_PORT_TRACK_NEXT(_track_list_k_stack)
99+
100+ /**
101+ * @brief Gets node's next element in a k_msgq tracking list.
102+ */
103+ #define SYS_PORT_TRACK_K_MSGQ_NEXT () \
104+ SYS_PORT_TRACK_NEXT(_track_list_k_msgq)
105+
106+ /**
107+ * @brief Gets node's next element in a k_mbox tracking list.
108+ */
109+ #define SYS_PORT_TRACK_K_MBOX_NEXT () \
110+ SYS_PORT_TRACK_NEXT(_track_list_k_mbox)
111+
112+ /**
113+ * @brief Gets node's next element in a k_pipe tracking list.
114+ */
115+ #define SYS_PORT_TRACK_K_PIPE_NEXT () \
116+ SYS_PORT_TRACK_NEXT(_track_list_k_pipe)
117+
118+ /**
119+ * @brief Gets node's next element in a k_queue tracking list.
120+ */
121+ #define SYS_PORT_TRACK_K_QUEUE_NEXT () \
122+ SYS_PORT_TRACK_NEXT(_track_list_k_queue)
123+
124+ /**
125+ * @brief Gets node's next element in a k_event tracking list.
126+ */
127+ #define SYS_PORT_TRACK_K_EVENT_NEXT () \
128+ SYS_PORT_TRACK_NEXT(_track_list_k_event)
129+
55130/** @cond INTERNAL_HIDDEN */
56131
57132#define sys_port_track_k_thread_start (thread )
0 commit comments