Skip to content

Commit 906db71

Browse files
nashifjhedberg
authored andcommitted
tracing: ctf: add poll
Add hooks for poll object. Signed-off-by: Anas Nashif <[email protected]>
1 parent ba453c1 commit 906db71

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)
@@ -584,6 +591,15 @@ void sys_trace_k_work_poll_submit_exit(struct k_work_poll *work, k_timeout_t tim
584591
void sys_trace_k_work_poll_cancel_enter(struct k_work_poll *work);
585592
void sys_trace_k_work_poll_cancel_exit(struct k_work_poll *work, int ret);
586593

594+
/* Poll API */
595+
void sys_trace_k_poll_api_event_init(struct k_poll_event *event);
596+
void sys_trace_k_poll_api_poll_enter(struct k_poll_event *events);
597+
void sys_trace_k_poll_api_poll_exit(struct k_poll_event *events, int ret);
598+
void sys_trace_k_poll_api_signal_init(struct k_poll_signal *signal);
599+
void sys_trace_k_poll_api_signal_reset(struct k_poll_signal *signal);
600+
void sys_trace_k_poll_api_signal_check(struct k_poll_signal *signal);
601+
void sys_trace_k_poll_api_signal_raise(struct k_poll_signal *signal, int ret);
602+
587603
/* Semaphore */
588604
void sys_trace_k_sem_init(struct k_sem *sem, int ret);
589605
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
@@ -1770,3 +1770,62 @@ event {
17701770
int32_t ret;
17711771
};
17721772
};
1773+
1774+
/* Poll API */
1775+
event {
1776+
name = poll_event_init;
1777+
id = 0xCE;
1778+
fields := struct {
1779+
uint32_t event_id;
1780+
};
1781+
};
1782+
1783+
event {
1784+
name = poll_enter;
1785+
id = 0xCF;
1786+
fields := struct {
1787+
uint32_t events_id;
1788+
};
1789+
};
1790+
1791+
event {
1792+
name = poll_exit;
1793+
id = 0xD0;
1794+
fields := struct {
1795+
uint32_t events_id;
1796+
int32_t ret;
1797+
};
1798+
};
1799+
1800+
event {
1801+
name = poll_signal_init;
1802+
id = 0xD1;
1803+
fields := struct {
1804+
uint32_t signal_id;
1805+
};
1806+
};
1807+
1808+
event {
1809+
name = poll_signal_reset;
1810+
id = 0xD2;
1811+
fields := struct {
1812+
uint32_t signal_id;
1813+
};
1814+
};
1815+
1816+
event {
1817+
name = poll_signal_check;
1818+
id = 0xD3;
1819+
fields := struct {
1820+
uint32_t signal_id;
1821+
};
1822+
};
1823+
1824+
event {
1825+
name = poll_signal_raise;
1826+
id = 0xD4;
1827+
fields := struct {
1828+
uint32_t signal_id;
1829+
int32_t ret;
1830+
};
1831+
};

0 commit comments

Comments
 (0)