Skip to content

Commit 16fce35

Browse files
committed
tracing: ctf: add poll
Add hooks for poll object. Signed-off-by: Anas Nashif <[email protected]>
1 parent e0dcf19 commit 16fce35

File tree

4 files changed

+179
-7
lines changed

4 files changed

+179
-7
lines changed

subsys/tracing/ctf/ctf_top.c

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,58 @@ void sys_trace_k_work_poll_cancel_exit(struct k_work_poll *work, int ret)
843843
);
844844
}
845845

846+
/* Poll API */
847+
void sys_trace_k_poll_api_event_init(struct k_poll_event *event)
848+
{
849+
ctf_top_poll_event_init(
850+
(uint32_t)(uintptr_t)event
851+
);
852+
}
853+
854+
void sys_trace_k_poll_api_poll_enter(struct k_poll_event *events)
855+
{
856+
ctf_top_poll_enter(
857+
(uint32_t)(uintptr_t)events
858+
);
859+
}
860+
861+
void sys_trace_k_poll_api_poll_exit(struct k_poll_event *events, int ret)
862+
{
863+
ctf_top_poll_exit(
864+
(uint32_t)(uintptr_t)events,
865+
(int32_t)ret
866+
);
867+
}
868+
869+
void sys_trace_k_poll_api_signal_init(struct k_poll_signal *signal)
870+
{
871+
ctf_top_poll_signal_init(
872+
(uint32_t)(uintptr_t)signal
873+
);
874+
}
875+
876+
void sys_trace_k_poll_api_signal_reset(struct k_poll_signal *signal)
877+
{
878+
ctf_top_poll_signal_reset(
879+
(uint32_t)(uintptr_t)signal
880+
);
881+
}
882+
883+
void sys_trace_k_poll_api_signal_check(struct k_poll_signal *signal)
884+
{
885+
ctf_top_poll_signal_check(
886+
(uint32_t)(uintptr_t)signal
887+
);
888+
}
889+
890+
void sys_trace_k_poll_api_signal_raise(struct k_poll_signal *signal, int ret)
891+
{
892+
ctf_top_poll_signal_raise(
893+
(uint32_t)(uintptr_t)signal,
894+
(int32_t)ret
895+
);
896+
}
897+
846898

847899
/* Semaphore */
848900
void sys_trace_k_sem_init(struct k_sem *sem, int ret)

subsys/tracing/ctf/ctf_top.h

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,15 @@ typedef enum {
281281
CTF_EVENT_WORK_POLL_CANCEL_ENTER = 0xCC,
282282
CTF_EVENT_WORK_POLL_CANCEL_EXIT = 0xCD,
283283

284+
/* Poll API */
285+
CTF_EVENT_POLL_EVENT_INIT = 0xCE,
286+
CTF_EVENT_POLL_ENTER = 0xCF,
287+
CTF_EVENT_POLL_EXIT = 0xD0,
288+
CTF_EVENT_POLL_SIGNAL_INIT = 0xD1,
289+
CTF_EVENT_POLL_SIGNAL_RESET = 0xD2,
290+
CTF_EVENT_POLL_SIGNAL_CHECK = 0xD3,
291+
CTF_EVENT_POLL_SIGNAL_RAISE = 0xD4,
292+
284293
} ctf_event_t;
285294

286295
typedef struct {
@@ -801,6 +810,42 @@ static inline void ctf_top_work_poll_cancel_exit(uint32_t work_id, int32_t ret)
801810
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_WORK_POLL_CANCEL_EXIT), work_id, ret);
802811
}
803812

813+
/* Poll API */
814+
static inline void ctf_top_poll_event_init(uint32_t event_id)
815+
{
816+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_EVENT_INIT), event_id);
817+
}
818+
819+
static inline void ctf_top_poll_enter(uint32_t events_id)
820+
{
821+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_ENTER), events_id);
822+
}
823+
824+
static inline void ctf_top_poll_exit(uint32_t events_id, int32_t ret)
825+
{
826+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_EXIT), events_id, ret);
827+
}
828+
829+
static inline void ctf_top_poll_signal_init(uint32_t signal_id)
830+
{
831+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_SIGNAL_INIT), signal_id);
832+
}
833+
834+
static inline void ctf_top_poll_signal_reset(uint32_t signal_id)
835+
{
836+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_SIGNAL_RESET), signal_id);
837+
}
838+
839+
static inline void ctf_top_poll_signal_check(uint32_t signal_id)
840+
{
841+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_SIGNAL_CHECK), signal_id);
842+
}
843+
844+
static inline void ctf_top_poll_signal_raise(uint32_t signal_id, int32_t ret)
845+
{
846+
CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_POLL_SIGNAL_RAISE), signal_id, ret);
847+
}
848+
804849
/* Semaphore */
805850
static inline void ctf_top_semaphore_init(uint32_t sem_id,
806851
int32_t ret)

subsys/tracing/ctf/tracing_ctf.h

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,20 @@ extern "C" {
180180
#define sys_port_trace_k_work_poll_cancel_exit(work, ret) \
181181
sys_trace_k_work_poll_cancel_exit(work, ret)
182182

183-
#define sys_port_trace_k_poll_api_event_init(event)
184-
#define sys_port_trace_k_poll_api_poll_enter(events)
185-
#define sys_port_trace_k_poll_api_poll_exit(events, ret)
186-
#define sys_port_trace_k_poll_api_signal_init(signal)
187-
#define sys_port_trace_k_poll_api_signal_reset(signal)
188-
#define sys_port_trace_k_poll_api_signal_check(signal)
189-
#define sys_port_trace_k_poll_api_signal_raise(signal, ret)
183+
#define sys_port_trace_k_poll_api_event_init(event) \
184+
sys_trace_k_poll_api_event_init(event)
185+
#define sys_port_trace_k_poll_api_poll_enter(events) \
186+
sys_trace_k_poll_api_poll_enter(events)
187+
#define sys_port_trace_k_poll_api_poll_exit(events, ret) \
188+
sys_trace_k_poll_api_poll_exit(events, ret)
189+
#define sys_port_trace_k_poll_api_signal_init(signal) \
190+
sys_trace_k_poll_api_signal_init(signal)
191+
#define sys_port_trace_k_poll_api_signal_reset(signal) \
192+
sys_trace_k_poll_api_signal_reset(signal)
193+
#define sys_port_trace_k_poll_api_signal_check(signal) \
194+
sys_trace_k_poll_api_signal_check(signal)
195+
#define sys_port_trace_k_poll_api_signal_raise(signal, ret) \
196+
sys_trace_k_poll_api_signal_raise(signal, ret)
190197

191198
#define sys_port_trace_k_sem_init(sem, ret) \
192199
sys_trace_k_sem_init(sem, ret)
@@ -599,6 +606,15 @@ void sys_trace_k_work_poll_submit_exit(struct k_work_poll *work, k_timeout_t tim
599606
void sys_trace_k_work_poll_cancel_enter(struct k_work_poll *work);
600607
void sys_trace_k_work_poll_cancel_exit(struct k_work_poll *work, int ret);
601608

609+
/* Poll API */
610+
void sys_trace_k_poll_api_event_init(struct k_poll_event *event);
611+
void sys_trace_k_poll_api_poll_enter(struct k_poll_event *events);
612+
void sys_trace_k_poll_api_poll_exit(struct k_poll_event *events, int ret);
613+
void sys_trace_k_poll_api_signal_init(struct k_poll_signal *signal);
614+
void sys_trace_k_poll_api_signal_reset(struct k_poll_signal *signal);
615+
void sys_trace_k_poll_api_signal_check(struct k_poll_signal *signal);
616+
void sys_trace_k_poll_api_signal_raise(struct k_poll_signal *signal, int ret);
617+
602618
/* Semaphore */
603619
void sys_trace_k_sem_init(struct k_sem *sem, int ret);
604620
void sys_trace_k_sem_give_enter(struct k_sem *sem);

subsys/tracing/ctf/tsdl/metadata

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1765,3 +1765,62 @@ event {
17651765
int32_t ret;
17661766
};
17671767
};
1768+
1769+
/* Poll API */
1770+
event {
1771+
name = poll_event_init;
1772+
id = 0xCE;
1773+
fields := struct {
1774+
uint32_t event_id;
1775+
};
1776+
};
1777+
1778+
event {
1779+
name = poll_enter;
1780+
id = 0xCF;
1781+
fields := struct {
1782+
uint32_t events_id;
1783+
};
1784+
};
1785+
1786+
event {
1787+
name = poll_exit;
1788+
id = 0xD0;
1789+
fields := struct {
1790+
uint32_t events_id;
1791+
int32_t ret;
1792+
};
1793+
};
1794+
1795+
event {
1796+
name = poll_signal_init;
1797+
id = 0xD1;
1798+
fields := struct {
1799+
uint32_t signal_id;
1800+
};
1801+
};
1802+
1803+
event {
1804+
name = poll_signal_reset;
1805+
id = 0xD2;
1806+
fields := struct {
1807+
uint32_t signal_id;
1808+
};
1809+
};
1810+
1811+
event {
1812+
name = poll_signal_check;
1813+
id = 0xD3;
1814+
fields := struct {
1815+
uint32_t signal_id;
1816+
};
1817+
};
1818+
1819+
event {
1820+
name = poll_signal_raise;
1821+
id = 0xD4;
1822+
fields := struct {
1823+
uint32_t signal_id;
1824+
int32_t ret;
1825+
};
1826+
};

0 commit comments

Comments
 (0)