Tracing: FIFO Tracing
Add FIFO tracing hook, default hooks, and documentation. Signed-off-by: Torbjörn Leksell <torbjorn.leksell@percepio.com>
This commit is contained in:
parent
f984823e0d
commit
83ae27bb88
2 changed files with 187 additions and 9 deletions
|
@ -2055,7 +2055,11 @@ struct k_fifo {
|
|||
* @return N/A
|
||||
*/
|
||||
#define k_fifo_init(fifo) \
|
||||
k_queue_init(&(fifo)->_queue)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, init, fifo); \
|
||||
k_queue_init(&(fifo)->_queue); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, init, fifo); \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Cancel waiting on a FIFO queue.
|
||||
|
@ -2071,7 +2075,11 @@ struct k_fifo {
|
|||
* @return N/A
|
||||
*/
|
||||
#define k_fifo_cancel_wait(fifo) \
|
||||
k_queue_cancel_wait(&(fifo)->_queue)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, cancel_wait, fifo); \
|
||||
k_queue_cancel_wait(&(fifo)->_queue); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, cancel_wait, fifo); \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Add an element to a FIFO queue.
|
||||
|
@ -2088,7 +2096,11 @@ struct k_fifo {
|
|||
* @return N/A
|
||||
*/
|
||||
#define k_fifo_put(fifo, data) \
|
||||
k_queue_append(&(fifo)->_queue, data)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, put, fifo, data); \
|
||||
k_queue_append(&(fifo)->_queue, data); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, put, fifo, data); \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Add an element to a FIFO queue.
|
||||
|
@ -2107,7 +2119,12 @@ struct k_fifo {
|
|||
* @retval -ENOMEM if there isn't sufficient RAM in the caller's resource pool
|
||||
*/
|
||||
#define k_fifo_alloc_put(fifo, data) \
|
||||
k_queue_alloc_append(&(fifo)->_queue, data)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, alloc_put, fifo, data); \
|
||||
int ret = k_queue_alloc_append(&(fifo)->_queue, data); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, alloc_put, fifo, data, ret); \
|
||||
ret; \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Atomically add a list of elements to a FIFO.
|
||||
|
@ -2126,7 +2143,11 @@ struct k_fifo {
|
|||
* @return N/A
|
||||
*/
|
||||
#define k_fifo_put_list(fifo, head, tail) \
|
||||
k_queue_append_list(&(fifo)->_queue, head, tail)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, put_list, fifo, head, tail); \
|
||||
k_queue_append_list(&(fifo)->_queue, head, tail); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, put_list, fifo, head, tail); \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Atomically add a list of elements to a FIFO queue.
|
||||
|
@ -2144,7 +2165,11 @@ struct k_fifo {
|
|||
* @return N/A
|
||||
*/
|
||||
#define k_fifo_put_slist(fifo, list) \
|
||||
k_queue_merge_slist(&(fifo)->_queue, list)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, put_slist, fifo, list); \
|
||||
k_queue_merge_slist(&(fifo)->_queue, list); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, put_slist, fifo, list); \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Get an element from a FIFO queue.
|
||||
|
@ -2164,7 +2189,12 @@ struct k_fifo {
|
|||
* without waiting, or waiting period timed out.
|
||||
*/
|
||||
#define k_fifo_get(fifo, timeout) \
|
||||
k_queue_get(&(fifo)->_queue, timeout)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, get, fifo, timeout); \
|
||||
void *ret = k_queue_get(&(fifo)->_queue, timeout); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, get, fifo, timeout, ret); \
|
||||
ret; \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Query a FIFO queue to see if it has data available.
|
||||
|
@ -2196,7 +2226,12 @@ struct k_fifo {
|
|||
* @return Head element, or NULL if the FIFO queue is empty.
|
||||
*/
|
||||
#define k_fifo_peek_head(fifo) \
|
||||
k_queue_peek_head(&(fifo)->_queue)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, peek_head, fifo); \
|
||||
void *ret = k_queue_peek_head(&(fifo)->_queue); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, peek_head, fifo, ret); \
|
||||
ret; \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Peek element at the tail of FIFO queue.
|
||||
|
@ -2210,7 +2245,12 @@ struct k_fifo {
|
|||
* @return Tail element, or NULL if a FIFO queue is empty.
|
||||
*/
|
||||
#define k_fifo_peek_tail(fifo) \
|
||||
k_queue_peek_tail(&(fifo)->_queue)
|
||||
({ \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_fifo, peek_tail, fifo); \
|
||||
void *ret = k_queue_peek_tail(&(fifo)->_queue); \
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_fifo, peek_tail, fifo, ret); \
|
||||
ret; \
|
||||
})
|
||||
|
||||
/**
|
||||
* @brief Statically define and initialize a FIFO queue.
|
||||
|
|
|
@ -701,6 +701,144 @@
|
|||
*/ /* end of queue_tracing_apis */
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief FIFO Tracing APIs
|
||||
* @defgroup fifo_tracing_apis FIFO Tracing APIs
|
||||
* @ingroup tracing_apis
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Trace initialization of FIFO Queue entry
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_init_enter(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace initialization of FIFO Queue exit
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_init_exit(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue cancel wait entry
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_cancel_wait_enter(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue cancel wait exit
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_cancel_wait_exit(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put entry
|
||||
* @param fifo FIFO object
|
||||
* @param data Data item
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_put_enter(fifo, data)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put exit
|
||||
* @param fifo FIFO object
|
||||
* @param data Data item
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_put_exit(fifo, data)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue alloc put entry
|
||||
* @param fifo FIFO object
|
||||
* @param data Data item
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_enter(fifo, data)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue alloc put exit
|
||||
* @param fifo FIFO object
|
||||
* @param data Data item
|
||||
* @param ret Return value
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_exit(fifo, data, ret)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put list entry
|
||||
* @param fifo FIFO object
|
||||
* @param head First ll-node
|
||||
* @param tail Last ll-node
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_list_enter(fifo, head, tail)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put list exit
|
||||
* @param fifo FIFO object
|
||||
* @param head First ll-node
|
||||
* @param tail Last ll-node
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_list_exit(fifo, head, tail)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put slist entry
|
||||
* @param fifo FIFO object
|
||||
* @param list Syslist object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_slist_enter(fifo, list)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue put slist exit
|
||||
* @param fifo FIFO object
|
||||
* @param list Syslist object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_alloc_put_slist_exit(fifo, list)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue get entry
|
||||
* @param fifo FIFO object
|
||||
* @param timeout Timeout period
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_get_enter(fifo, timeout)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue get exit
|
||||
* @param fifo FIFO object
|
||||
* @param timeout Timeout period
|
||||
* @param ret Return value
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_get_exit(fifo, timeout, ret)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue peek head entry
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_peek_head_entry(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue peek head exit
|
||||
* @param fifo FIFO object
|
||||
* @param ret Return value
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_peek_head_exit(fifo, ret)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue peek tail entry
|
||||
* @param fifo FIFO object
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_peek_tail_entry(fifo)
|
||||
|
||||
/**
|
||||
* @brief Trace FIFO Queue peek tail exit
|
||||
* @param fifo FIFO object
|
||||
* @param ret Return value
|
||||
*/
|
||||
#define sys_port_trace_k_fifo_peek_tail_exit(fifo, ret)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/ /* end of fifo_tracing_apis */
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue