/* * Userspace HS timing trace (EG 3.0.1.6) — buffered in uartd, flushed to JSONL. * Independent of POG422_HW_DEBUG (does not change burst-on-fall capture). * * Enable: POG422_TIMING_TRACE=1 * Path: POG422_TIMING_TRACE_PATH (default data/hs_timing.jsonl) */ #ifndef POG422_TIMING_TRACE_H #define POG422_TIMING_TRACE_H #include #define POG422_TIMING_TRACE_VERSION 1u #define POG422_TIMING_US_RING_MAX 4096u /* Userspace / merged event type strings written as JSON "type" field. */ #define POG422_TT_HDR "hdr" #define POG422_TT_KERNEL_GPIO "k_gpio_int" #define POG422_TT_KERNEL_RX "k_rx_urb" #define POG422_TT_GPIO_STAT_RTT "us_gpio_stat_rtt" #define POG422_TT_POLL_WAKE "us_poll_wake" #define POG422_TT_HS_OBS "us_hs_obs" #define POG422_TT_CAP_BEGIN "us_cap_begin" #define POG422_TT_CAP_END "us_cap_end" #define POG422_TT_INJECT_START "us_inject_start" #define POG422_TT_DE_OFF "us_de_off" #define POG422_TT_POST_DE "us_post_de" #define POG422_TT_X1_SEEN "us_x1_seen" #define POG422_TT_AUTO_CLOSE_START "us_auto_close_start" #define POG422_TT_AUTO_CLOSE_DONE "us_auto_close_done" #define POG422_TT_INJECT_DONE "us_inject_done" #define POG422_TT_DROP "us_drop" typedef struct { uint64_t mono_ns; uint32_t type_id; /* internal enum below */ uint32_t a; uint32_t b; uint64_t c; } pog422_tt_rec_t; enum { POG422_TT_ID_GPIO_STAT_RTT = 1, POG422_TT_ID_POLL_WAKE = 2, POG422_TT_ID_HS_OBS = 3, POG422_TT_ID_CAP_BEGIN = 4, POG422_TT_ID_CAP_END = 5, POG422_TT_ID_INJECT_START = 6, POG422_TT_ID_DE_OFF = 7, POG422_TT_ID_POST_DE = 8, POG422_TT_ID_X1_SEEN = 9, POG422_TT_ID_AUTO_CLOSE_START = 10, POG422_TT_ID_AUTO_CLOSE_DONE = 11, POG422_TT_ID_INJECT_DONE = 12, POG422_TT_ID_KERNEL_GPIO = 13, POG422_TT_ID_KERNEL_RX = 14, POG422_TT_ID_DROP = 15, }; #endif /* POG422_TIMING_TRACE_H */