UNION IPC_MEM_MSG_ENTRY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 union ipc_mem_msg_entry(9) β€” from the Kernel API Manual, bestie πŸ’…

Okay so picture this: you're deep in the kernel, in the iosm driver corner of the WWAN world, and there's this one union that's basically the group chat of every message that can possibly show up. That's union ipc_mem_msg_entry β€” a union with all possible messages. ✨ Every variant, one address, zero drama about which one you're holding. Iconic behavior, honestly.


✨ SYNOPSIS ✨

union ipc_mem_msg_entry {
    struct ipc_mem_msg_open_pipe open_pipe;
    struct ipc_mem_msg_close_pipe close_pipe;
    struct ipc_mem_msg_abort_pipe abort_pipe;
    struct ipc_mem_msg_host_sleep host_sleep;
    struct ipc_mem_msg_feature_set feature_set;
    struct ipc_mem_msg_common common;
 };

No cap, that's the whole shape of it. Six structs sharing one vibe (and one memory address, because it's a union, iykyk πŸ’€).


πŸŽ€ Members πŸŽ€

  • open_pipe β€” the open pipe message struct 🫢 like, "hey bestie, let's open a pipe."
  • close_pipe β€” the close pipe message struct; the goodbye text, but make it protocol.
  • abort_pipe β€” the abort pipe message struct. It's giving "nvm, we're out" 😭
  • host_sleep β€” the host sleep message struct. Nap time, main character style πŸŒ™
  • feature_set β€” the featuer set message struct ✨ (yes, "featuer" is literally how it's written in the source β€” not my typo, I would never πŸ’…) β€” the feature-set message.
  • common β€” the shared one πŸ”₯ used to access msg_type and to set the completion status. Lowkey the most important member in the whole union, fr fr.
Heads up bestie: it's a union, so every member lives at the same address β€” it is not six fields at once, it's one field with six possible outfits. Read the right one or the whole thing is a vibe check you'll fail πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

So, so much homework, but it's all lore and it all connects back here, I promise:

Kernel file ./drivers/net/wwan/iosm/iosm_ipc_protocol_ops.h 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), enum ipc_mem_msg(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), 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)


🫢 that's the whole page, go read the header file, it's literally right there in ./drivers/net/wwan/iosm

And that's a wrap, bestie! πŸŽ€ This little love letter lives in ./drivers/net/wwan/iosm, it's stamped October 2026, and its whole entire name is union ipc_mem_msg_entry(9) β€” go off, you now know the union better than the person who wrote it. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from