STRUCT I3C_CCC_CMD(9)
π struct i3c_ccc_cmd(9) β like, the CCC command struct, bestie
Okay so this page is from the Kernel API Manual, and it's literally all about struct i3c_ccc_cmd β the lil' container that holds one CCC command. Think of it as the main character of an I3C CCC transmission. No cap, it's giving "packet header but make it a struct." π
β¨ NAME β¨
struct i3c_ccc_cmd β CCC command. That's it, that's the whole name. Short, iconic, to the point. π
πΈ SYNOPSIS πΈ
struct i3c_ccc_cmd {
u8 rnw;
u8 id;
unsigned int ndests;
unsigned int retries;
struct i3c_ccc_cmd_dest *dests;
enum i3c_error_code err;
};
Look at her. Six members, all business, zero filler. π¦
π Members π
Okay so here's the breakdown, member by member, no skips:
rnwβ true if the CCC should retrieve data from the device. π«Ά Big important caveat though: this is only valid for unicast commands. Broadcast? Sorry bestie,rnwdoesn't apply there, periodt.idβ the CCC command id. The vibe check of "which command even is this."ndestsβ number of destinations. And listen, for broadcast commands this should always be one. One. That's the whole rule. Don't be out here withndests = 4on a broadcast, I'm begging πretriesβ number of times to retry a failed Direct GET CCC (seeI3C_CCC_RETRIES). Persistence! She tries again! β¨destsβ array of destinations and associated payload for this CCC. Most of the time, only one destination is provided β lowkey the common case fr fr.errβ the I3C error code.enum i3c_error_codeenergy. If something goes sideways, this is where the tea gets spilled π
π¦ SEE ALSO π¦
Kernel file ./include/linux/i3c/ccc.h β go read it, it's the source of truth, iykyk. Then all these siblings/cousins of the struct:
struct i3c_ccc_events(9)struct i3c_ccc_mwl(9)struct i3c_ccc_mrl(9)struct i3c_ccc_dev_desc(9)struct i3c_ccc_defslvs(9)enum i3c_ccc_test_mode(9)struct i3c_ccc_enttm(9)struct i3c_ccc_setda(9)struct i3c_ccc_getpid(9)struct i3c_ccc_getbcr(9)struct i3c_ccc_getdcr(9)struct i3c_ccc_getstatus(9)struct i3c_ccc_getaccmst(9)struct i3c_ccc_bridged_slave_desc(9)struct i3c_ccc_setbrgtgt(9)enum i3c_sdr_max_data_rate(9)enum i3c_tsco(9)struct i3c_ccc_getmxds(9)struct i3c_ccc_gethdrcap(9)enum i3c_ccc_setxtime_subcmd(9)struct i3c_ccc_setxtime(9)struct i3c_ccc_getxtime(9)struct i3c_ccc_cmd_payload(9)struct i3c_ccc_cmd_dest(9)
That's the whole friend group, and honestly? Every single one of them ate. π₯
π Real talk though: this page is from the kernel tree at ./include/linux/i3c, and it's dated October 2026. So like, mark your calendars bestie, that's the version we're all living in. ποΈ
Go forth and send your CCCs correctly, queen. πβπ
π¦ 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