143 lines
4.9 KiB
C
143 lines
4.9 KiB
C
|
/*
|
||
|
* Copyright (c) 2021 Intel Corporation
|
||
|
*
|
||
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
*/
|
||
|
#ifndef ZEPHYR_INCLUDE_TRACING_TRACKING_H_
|
||
|
#define ZEPHYR_INCLUDE_TRACING_TRACKING_H_
|
||
|
|
||
|
#include <kernel.h>
|
||
|
#include <kernel_structs.h>
|
||
|
|
||
|
#if defined(CONFIG_TRACING_OBJECT_TRACKING) || defined(__DOXYGEN__)
|
||
|
|
||
|
/**
|
||
|
* @brief Object tracking
|
||
|
*
|
||
|
* Object tracking provides lists to kernel objects, so their
|
||
|
* existence and current status can be tracked.
|
||
|
*
|
||
|
* The following global variables are the heads of available lists:
|
||
|
* - _track_list_k_timer
|
||
|
* - _track_list_k_mem_slab
|
||
|
* - _track_list_k_sem
|
||
|
* - _track_list_k_mutex
|
||
|
* - _track_list_k_stack
|
||
|
* - _track_list_k_msgq
|
||
|
* - _track_list_k_mbox
|
||
|
* - _track_list_k_pipe
|
||
|
* - _track_list_k_queue
|
||
|
*
|
||
|
* @defgroup subsys_tracing_object_tracking Object tracking
|
||
|
* @ingroup subsys_tracing
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
extern struct k_timer *_track_list_k_timer;
|
||
|
extern struct k_mem_slab *_track_list_k_mem_slab;
|
||
|
extern struct k_sem *_track_list_k_sem;
|
||
|
extern struct k_mutex *_track_list_k_mutex;
|
||
|
extern struct k_stack *_track_list_k_stack;
|
||
|
extern struct k_msgq *_track_list_k_msgq;
|
||
|
extern struct k_mbox *_track_list_k_mbox;
|
||
|
extern struct k_pipe *_track_list_k_pipe;
|
||
|
extern struct k_queue *_track_list_k_queue;
|
||
|
|
||
|
/**
|
||
|
* @brief Gets node's next element in a object tracking list.
|
||
|
*
|
||
|
* @param list Node to get next element from.
|
||
|
*/
|
||
|
#define SYS_PORT_TRACK_NEXT(list)((list)->_obj_track_next)
|
||
|
|
||
|
/** @cond INTERNAL_HIDDEN */
|
||
|
|
||
|
#define sys_port_track_k_thread_start(thread)
|
||
|
#define sys_port_track_k_thread_create(new_thread)
|
||
|
#define sys_port_track_k_thread_sched_ready(thread)
|
||
|
#define sys_port_track_k_thread_wakeup(thread)
|
||
|
#define sys_port_track_k_thread_sched_priority_set(thread, prio)
|
||
|
#define sys_port_track_k_work_delayable_init(dwork)
|
||
|
#define sys_port_track_k_work_queue_init(queue)
|
||
|
#define sys_port_track_k_work_init(work)
|
||
|
#define sys_port_track_k_mutex_init(mutex, ret) \
|
||
|
sys_track_k_mutex_init(mutex)
|
||
|
#define sys_port_track_k_timer_stop(timer)
|
||
|
#define sys_port_track_k_timer_start(timer)
|
||
|
#define sys_port_track_k_timer_init(timer) \
|
||
|
sys_track_k_timer_init(timer)
|
||
|
#define sys_port_track_k_queue_peek_tail(queue, ret)
|
||
|
#define sys_port_track_k_queue_peek_head(queue, ret)
|
||
|
#define sys_port_track_k_queue_cancel_wait(queue)
|
||
|
#define sys_port_track_k_queue_init(queue) \
|
||
|
sys_track_k_queue_init(queue)
|
||
|
#define sys_port_track_k_pipe_init(pipe) \
|
||
|
sys_track_k_pipe_init(pipe)
|
||
|
#define sys_port_track_k_condvar_init(condvar, ret)
|
||
|
#define sys_port_track_k_stack_init(stack) \
|
||
|
sys_track_k_stack_init(stack)
|
||
|
#define sys_port_track_k_thread_name_set(thread, ret)
|
||
|
#define sys_port_track_k_sem_reset(sem)
|
||
|
#define sys_port_track_k_sem_init(sem, ret) \
|
||
|
sys_track_k_sem_init(sem)
|
||
|
#define sys_port_track_k_msgq_purge(msgq)
|
||
|
#define sys_port_track_k_msgq_peek(msgq, ret)
|
||
|
#define sys_port_track_k_msgq_init(msgq) \
|
||
|
sys_track_k_msgq_init(msgq)
|
||
|
#define sys_port_track_k_mbox_init(mbox) \
|
||
|
sys_track_k_mbox_init(mbox)
|
||
|
#define sys_port_track_k_mem_slab_init(slab, rc) \
|
||
|
sys_track_k_mem_slab_init(slab)
|
||
|
#define sys_port_track_k_heap_free(h)
|
||
|
#define sys_port_track_k_heap_init(h)
|
||
|
|
||
|
void sys_track_k_timer_init(struct k_timer *timer);
|
||
|
void sys_track_k_mem_slab_init(struct k_mem_slab *slab);
|
||
|
void sys_track_k_sem_init(struct k_sem *sem);
|
||
|
void sys_track_k_mutex_init(struct k_mutex *mutex);
|
||
|
void sys_track_k_stack_init(struct k_stack *stack);
|
||
|
void sys_track_k_msgq_init(struct k_msgq *msgq);
|
||
|
void sys_track_k_mbox_init(struct k_mbox *mbox);
|
||
|
void sys_track_k_pipe_init(struct k_pipe *pipe);
|
||
|
void sys_track_k_queue_init(struct k_queue *queue);
|
||
|
|
||
|
/** @endcond */
|
||
|
|
||
|
/** @} */ /* end of subsys_tracing_object_tracking */
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define sys_port_track_k_thread_start(thread)
|
||
|
#define sys_port_track_k_thread_create(new_thread)
|
||
|
#define sys_port_track_k_thread_sched_ready(thread)
|
||
|
#define sys_port_track_k_thread_wakeup(thread)
|
||
|
#define sys_port_track_k_thread_sched_priority_set(thread, prio)
|
||
|
#define sys_port_track_k_work_delayable_init(dwork)
|
||
|
#define sys_port_track_k_work_queue_init(queue)
|
||
|
#define sys_port_track_k_work_init(work)
|
||
|
#define sys_port_track_k_mutex_init(mutex, ret)
|
||
|
#define sys_port_track_k_timer_stop(timer)
|
||
|
#define sys_port_track_k_timer_start(timer)
|
||
|
#define sys_port_track_k_timer_init(timer)
|
||
|
#define sys_port_track_k_queue_peek_tail(queue, ret)
|
||
|
#define sys_port_track_k_queue_peek_head(queue, ret)
|
||
|
#define sys_port_track_k_queue_cancel_wait(queue)
|
||
|
#define sys_port_track_k_queue_init(queue)
|
||
|
#define sys_port_track_k_pipe_init(pipe)
|
||
|
#define sys_port_track_k_condvar_init(condvar, ret)
|
||
|
#define sys_port_track_k_stack_init(stack)
|
||
|
#define sys_port_track_k_thread_name_set(thread, ret)
|
||
|
#define sys_port_track_k_sem_reset(sem)
|
||
|
#define sys_port_track_k_sem_init(sem, ret)
|
||
|
#define sys_port_track_k_msgq_purge(msgq)
|
||
|
#define sys_port_track_k_msgq_peek(msgq, ret)
|
||
|
#define sys_port_track_k_msgq_init(msgq)
|
||
|
#define sys_port_track_k_mbox_init(mbox)
|
||
|
#define sys_port_track_k_mem_slab_init(slab, rc)
|
||
|
#define sys_port_track_k_heap_free(h)
|
||
|
#define sys_port_track_k_heap_init(h)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#endif /* ZEPHYR_INCLUDE_TRACING_TRACKING_H_ */
|