cppi5_hdesc_init(9)
π cppi5_hdesc_init β a Kernel API Manual moment β¨
okay so bestie, welcome to the glow-up of cppi5_hdesc_init(9) from the Kernel API Manual β this is the little guy that sets up the size of a Host Packet Descriptor, and honestly? she's lowkey iconic. let's get into it π
β¨ NAME β¨
cppi5_hdesc_init β Init Host Packet Descriptor size π¦
πΈ SYNOPSIS πΈ
void cppi5_hdesc_init (struct cppi5_host_desc_t *desc , u32 flags , u32
psdata_size );
that's the whole vibe check right there, no cap π
π ARGUMENTS π
descβ the Host packet descriptor, your main character πflagsβ the supported values areCPPI5_INFO0_HDESC_EPIB_PRESENTandCPPI5_INFO0_HDESC_PSINFO_LOCATION, pick your fighters π«Άpsdata_sizeβ the PSDATA size, periodt β¨
π₯ DESCRIPTION π₯
so here's the tea: you get back the required Host Packet Descriptor size, and that's 0 β zero, nada, the whole thing β if PSDATA > CPPI5_INFO0_HDESC_PSDATA_MAX_SIZE. the way that max size is literally the line you do not cross π
fr fr, clock that 0 return β it's giving "too much PSDATA, bestie" and it is not a drill π
π¦ SEE ALSO π¦
It's all in the Kernel file ./include/linux/dma/ti-cppi5.h, and the whole friend group is here:
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_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_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)
like, that's the entire group chat and they all ate π π
okayyy that's the page π this gem lives in ./include/linux/dma, and the version stamp is October 2026 β so jot that down, bestie, and go init some descriptors πβ¨πΈ
π¦ 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