STRUCT IOSM_PROTOCOL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct iosm_protocol β€” Structure for IPC protocol πŸ¦‹

okay bestie, so this one's from the Kernel API Manual, section 9, and it's literally the main character of the IOSM IPC world. It's giving "glue struct that holds the whole vibe together." Let's get into it πŸ’…


✨ NAME ✨

struct iosm_protocol β€” Structure for IPC protocol. That's it, that's the whole name, no cap.


🌸 SYNOPSIS 🌸

bestie look at this gorgeous little thing, copy it exactly, don't touch anything:

struct iosm_protocol {
    struct ipc_protocol_ap_shm *p_ap_shm;
    struct iosm_pm pm;
    struct iosm_pcie *pcie;
    struct iosm_imem *imem;
    struct ipc_rsp *rsp_ring[IPC_MEM_MSG_ENTRIES];
    struct device *dev;
    dma_addr_t phy_ap_shm;
    u32 old_msg_tail;
 };

like… the field alignment? iconic. the semicolons? ate. periodt. πŸŽ€


πŸ’– Members πŸ’–

every single one of them, no skipping, we're doing a vibe check on the whole roster:

  • p_ap_shm β€” Pointer to Protocol Shared Memory Structure. yeah, the shared-memory bestie 🫢
  • pm β€” Instance to struct iosm_pm. that's the power-management moment, we love her.
  • pcie β€” Pointer to struct iosm_pcie. PCIe representation, slay πŸ’…
  • imem β€” Pointer to struct iosm_imem. the imem pointer, present and accounted for ⭐
  • rsp_ring β€” Array of OS completion objects to be triggered once CP acknowledges a request in the message ring. like a little row of "you got it, bestie" notifications waiting to go off πŸ”₯
  • dev β€” Pointer to device structure. the classic, the dependable, the dev 🌈
  • phy_ap_shm β€” Physical/Mapped representation of the shared memory info. two moods in one field, honestly relatable πŸ™ˆ
  • old_msg_tail β€” Old msg tail ptr, until AP has handled ACK's from CP. it literally just chills there holding the old tail until the AP deals with the CP's ACK's, iykyk πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, bestie, they're all part of the same friend group:

ngl if you're here you probably need ipc_protocol_init(9) first, and ipc_protocol_deinit(9) when you're done. clean up after yourself, that's the rule 🧚

and that's the whole page, bestie!! this masterpiece lives in ./drivers/net/wwan/iosm, it's dated October 2026, it's struct iosm_protocol(9) from the Kernel API Manual, and honestly? she's serving. mwah πŸ’‹βœ¨πŸ“

πŸ“¦ where this page comes from