STRUCT CPPI5_TR_TYPE15_T(9)
π struct cppi5_tr_type15_t(9) β Kernel API Manual vibes
okay bestie, pull up a chair, because this is the struct cppi5_tr_type15_t(9) page from the Kernel API Manual and honestly? she's a big one. Type 15 β aka Four Dimensional Block Copy with Repacking and Indirection Support β and she's a 64 byte TR. yes, sixty-four. no cap. π
β¨ NAME β¨
struct cppi5_tr_type15_t β the Type 15 (Four Dimensional Block Copy with Repacking and Indirection Support) TR, and she is 64 byte. iconic behavior honestly π
πΈ SYNOPSIS πΈ
like, here's the whole struct, exactly as she is, no edits, we don't do that here:
struct cppi5_tr_type15_t {
cppi5_tr_flags_t flags;
u16 icnt0;
u16 icnt1;
u64 addr;
s32 dim1;
u16 icnt2;
u16 icnt3;
s32 dim2;
s32 dim3;
u32 _reserved;
s32 ddim1;
u64 daddr;
s32 ddim2;
s32 ddim3;
u16 dicnt0;
u16 dicnt1;
u16 dicnt2;
u16 dicnt3;
};
π¦ Members π¦
okay so member by member, because every single one matters and we are NOT skipping any:
π the source side
flagsβ the TR flags, bestie: type, triggers, event, configuration. she's giving main character energy at the top of the struct β¨icnt0β total loop iteration count for level 0 (innermost) for sourceicnt1β total loop iteration count for level 1 for sourceaddrβ starting address for the source datadim1β signed dimension for loop level 1 for sourceicnt2β total loop iteration count for level 2 for sourceicnt3β total loop iteration count for level 3 (outermost) for sourcedim2β signed dimension for loop level 2 for sourcedim3β signed dimension for loop level 3 for source
π§ the little gap
_reservedβ not used. that's it. that's the whole vibe. she's just sitting there π«Ά
π the destination side (yes, she has a whole second personality)
ddim1β signed dimension for loop level 1 for destinationdaddrβ starting address for the destination dataddim2β signed dimension for loop level 2 for destinationddim3β signed dimension for loop level 3 for destinationdicnt0β total loop iteration count for level 0 (innermost) for destinationdicnt1β total loop iteration count for level 1 for destinationdicnt2β total loop iteration count for level 2 for destinationdicnt3β total loop iteration count for level 3 (outermost) for destination
ngl the pattern here is lowkey everything comes in a source flavor and a destination flavor. source lives withi/dim/addr, destination has the extradprefix βddim,daddr,dicnt. once you clock that, the whole struct eats. π₯
π SEE ALSO π
the full squad, all of them, because leaving one out would be so rude:
Kernel file ./include/linux/dma/ti-cppi5.h
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)enum cppi5_tr_trigger_type(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_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)
and that's the page, bestie! π shoutout to the source, ./include/linux/dma, dated October 2026, and we're closing out on struct cppi5_tr_type15_t(9) β go be a 64-byte icon, ily ππβ¨
π¦ 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