STRUCT IPC_MEM_CHANNEL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ipc_mem_channel(9)

okay so bestie, welcome to the Kernel API Manual, section 9 β€” we're talking about struct ipc_mem_channel, no cap.


✨ NAME ✨

struct ipc_mem_channel β€” literally the Structure for Channel. that's it. that's the vibe. πŸŽ€


🌸 SYNOPSIS 🌸

struct ipc_mem_channel {
    int channel_id;
    enum ipc_ctype ctype;
    int index;
    struct ipc_pipe ul_pipe;
    struct ipc_pipe dl_pipe;
    int if_id;
    u32 net_err_count;
    enum ipc_channel_state state;
    struct completion ul_sem;
    struct sk_buff_head ul_list;
 };

like, copy it exactly, don't be weird about it 🫢


πŸ‘‘ Members πŸ‘‘

here's the whole cast, main character energy only:

  • channel_id β€” the instance of the channel list, and it gets returned to the user at the end of the open operation. so like, it's literally the little receipt you get handed back. 🧾
  • ctype β€” control or netif channel. that's the whole field, she's simple and she slays.
  • index β€” a unique index per ctype. not shared, not communal, per ctype. iykyk.
  • ul_pipe β€” pipe objects πŸ’–
  • dl_pipe β€” pipe objects πŸ’– (yes, again β€” they're a matching set, it's giving ✨coordinated✨)
  • if_id β€” the Interface ID.
  • net_err_count β€” number of downlink errors returned by the ipc_wwan_receive interface at the entry point of the IP stack. like a little tally of oopses, kept right at the door where packets walk in 😭
  • state β€” free, reserved or busy (in use). a whole mood ring for the channel, honestly.
  • ul_sem β€” needed for the blocking write or uplink transfer. she makes things wait, politely. 🧚
  • ul_list β€” the uplink accumulator, which is filled by the uplink char app or the IP stack. the socket buffer pointer are added to the descriptor list in the kthread context. so basically a lil collection basket that the thread context keeps topping up πŸ“
ngl bestie, if you're poking at ul_list and ul_sem at the same time, you better know what you're doing β€” this is kernel land, not a group chat πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, linked below β€” kernel file ./drivers/net/wwan/iosm/iosm_ipc_imem.h and:


and that's the whole page, bestie πŸ’œ this came from ./drivers/net/wwan/iosm, and it's the October 2026 era of the manual β€” so if you're reading this in a different kernel, vibe check your own copy first. periodt. πŸ”₯πŸ‘‘

πŸ“¦ where this page comes from