ENUM IPC_MEM_MSG(9)
π
enum ipc_mem_msg(9) β the Kernel API Manual page, but make it make sense
okay so bestie, this is a page from the Kernel API Manual and it's all about one little enum that basically tells the modem firmware what kind of message it's looking at. it's giving "menu of message types" energy. let's get into it π«Ά
β¨ NAME β¨
enum ipc_mem_msg β the type-definition of the messages. that's it, that's the whole vibe check. it's the enum that says "which message is this?" π
πΈ SYNOPSIS πΈ
enum ipc_mem_msg {
IPC_MEM_MSG_OPEN_PIPE ,
IPC_MEM_MSG_CLOSE_PIPE ,
IPC_MEM_MSG_ABORT_PIPE ,
IPC_MEM_MSG_SLEEP ,
IPC_MEM_MSG_FEATURE_SET
};
literally just the five members, no cap. every single one is listed down below π
π Constants π
so these are the actual members of the enum, and each one comes with an AP ->CP: note β that means it's a message going from AP to CP (application processor to communication processor, iykyk). the descriptions are doing the most, so let's go one by one π
IPC_MEM_MSG_OPEN_PIPEβAP ->CP:open a pipe. that's the whole thing. iconic, brief, slay. π¦IPC_MEM_MSG_CLOSE_PIPEβAP ->CP:close a pipe. the matching energy to open, fr fr.IPC_MEM_MSG_ABORT_PIPEβAP ->CP:wait for completion of the running transfer and abort all pending IO-transfers for the pipe. okay so this one is a little more dramatic β it waits for the currently running transfer to finish, then kills off every pending IO-transfer on that pipe πIPC_MEM_MSG_SLEEPβAP ->CP:host enter or exit sleep. yes, it does both directions β sleep mode on, sleep mode off π€IPC_MEM_MSG_FEATURE_SETβAP ->CP:Intel feature configuration. this is the one carrying the Intel feature config. main character of the config world π
π₯ SEE ALSO π₯
okay bestie, buckle up, because this list is long β but every single one of these matters, so here we go, no skipping π
the kernel file itself lives at ./drivers/net/wwan/iosm/iosm_ipc_protocol_ops.h, and then you've got:
enum ipc_mem_td_cs(9)enum ipc_mem_msg_cs(9)struct ipc_msg_prep_args_pipe(9)struct ipc_msg_prep_args_sleep(9)struct ipc_msg_prep_feature_set(9)struct ipc_msg_prep_map(9)struct ipc_msg_prep_unmap(9)union ipc_msg_prep_args(9)enum ipc_msg_prep_type(9)struct ipc_rsp(9)struct ipc_mem_msg_open_pipe(9)struct ipc_mem_msg_close_pipe(9)struct ipc_mem_msg_abort_pipe(9)struct ipc_mem_msg_host_sleep(9)struct ipc_mem_msg_feature_set(9)struct ipc_mem_msg_common(9)union ipc_mem_msg_entry(9)ipc_protocol_msg_prep(9)ipc_protocol_msg_hp_update(9)ipc_protocol_msg_process(9)ipc_protocol_ul_td_send(9)ipc_protocol_ul_td_process(9)ipc_protocol_dl_td_prepare(9)ipc_protocol_dl_td_process(9)ipc_protocol_get_head_tail_index(9)ipc_protocol_get_ipc_status(9)ipc_protocol_pipe_cleanup(9)ipc_protocol_get_ap_exec_stage(9)ipc_protocol_pm_dev_get_sleep_notification(9)
like I said. long. but we read the whole thing, periodt. πβ¨
ngl, if you're deep in the iosm WWAN driver, this enum is your new bestie β it's the thing that labels every message so the protocol side knows what to do with it π
that's the page, bestie! π it shipped from ./drivers/net/wwan/iosm, dated October 2026, and it's enum ipc_mem_msg(9) in the Kernel API Manual. go forth and open some pipes ππ
π¦ 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