ENUM CPPI5_TR_TRIGGER_TYPE(9)
π enum cppi5_tr_trigger_type(9) π
okay bestie, welcome to the Kernel API Manual β¨ β yes we're in the kernel docs and yes it's lowkey iconic. this page is all about enum cppi5_tr_trigger_type, which is the little enum that says what the TRIGGERx_TYPE field in a TR actually means β like, what kind of data transfer gets unlocked when a trigger (as specified by TRIGGERx) shows up. it's giving "the trigger's whole personality". π
πΈ NAME πΈ
enum cppi5_tr_trigger_type β the TRIGGERx_TYPE field in the TR Flags specifies the type of data transfer that will be enabled by receiving a trigger as specified by TRIGGERx. no cap, that's literally its whole job. π
β¨ SYNOPSIS β¨
enum cppi5_tr_trigger_type {
CPPI5_TR_TRIGGER_TYPE_ICNT1_DEC ,
CPPI5_TR_TRIGGER_TYPE_ICNT2_DEC ,
CPPI5_TR_TRIGGER_TYPE_ICNT3_DEC ,
CPPI5_TR_TRIGGER_TYPE_ALL
};
look at her. four constants. zero notes. main character energy fr fr π¦
π Constants π
okay so here's the vibe check on each one β every single one matters, don't skip:
CPPI5_TR_TRIGGER_TYPE_ICNT1_DECβ the second inner most loop (ICNT1) will be decremented by 1. πCPPI5_TR_TRIGGER_TYPE_ICNT2_DECβ the third inner most loop (ICNT2) will be decremented by 1. β¨CPPI5_TR_TRIGGER_TYPE_ICNT3_DECβ the outer most loop (ICNT3) will be decremented by 1. π₯CPPI5_TR_TRIGGER_TYPE_ALLβ the entire TR will be allowed to complete. she said "all of it, periodt". π
ngl, the loop numbering is exactly what the original says β ICNT1 = second inner most, ICNT2 = third inner most, ICNT3 = outer most. not me double-checking, that's just how it is. π«Ά
π¦ SEE ALSO π¦
Kernel file ./include/linux/dma/ti-cppi5.h β then the whole squad, in order, no one left behind π:
struct cppi5_desc_hdr_t(9)struct cppi5_host_desc_t(9)struct cppi5_desc_epib_t(9)struct cppi5_monolithic_desc_t(9)cppi5_desc_is_tdcm(9)cppi5_desc_get_type(9)cppi5_desc_get_errflags(9)cppi5_desc_get_pktids(9)cppi5_desc_set_pktids(9)cppi5_desc_set_retpolicy(9)cppi5_desc_get_tags_ids(9)cppi5_desc_set_tags_ids(9)cppi5_hdesc_calc_size(9)cppi5_hdesc_init(9)cppi5_hdesc_update_flags(9)cppi5_hdesc_update_psdata_size(9)cppi5_hdesc_get_psdata_size(9)cppi5_hdesc_get_pktlen(9)cppi5_hdesc_set_pktlen(9)cppi5_hdesc_get_psflags(9)cppi5_hdesc_set_psflags(9)cppi5_hdesc_get_pkttype(9)cppi5_hdesc_set_pkttype(9)cppi5_hdesc_attach_buf(9)cppi5_hdesc_link_hbdesc(9)cppi5_hdesc_epib_present(9)cppi5_hdesc_get_psdata(9)cppi5_hdesc_get_swdata(9)enum cppi5_tr_types(9)enum cppi5_tr_event_size(9)enum cppi5_tr_trigger(9)struct cppi5_tr_type0_t(9)struct cppi5_tr_type1_t(9)struct cppi5_tr_type2_t(9)struct cppi5_tr_type3_t(9)struct cppi5_tr_type15_t(9)struct cppi5_tr_resp_t(9)enum cppi5_tr_resp_status_type(9)enum cppi5_tr_resp_status_submission(9)enum cppi5_tr_resp_status_unsupported(9)cppi5_trdesc_calc_size(9)cppi5_trdesc_init(9)cppi5_tr_init(9)cppi5_tr_set_trigger(9)cppi5_tr_csf_set(9)
that's the whole page bestie, go be smart with your triggers πβ¨πΈ
sign-off time π β this one lives in ./include/linux/dma, dated October 2026, and it's filed under enum cppi5_tr_trigger_type(9). iykyk π
π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms