STRUCT IOSM_PROTOCOL(9)
π¦ 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 tostruct iosm_pm. that's the power-management moment, we love her.pcieβ Pointer tostruct iosm_pcie. PCIe representation, slay πimemβ Pointer tostruct 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, thedevπ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:
- Kernel file
./drivers/net/wwan/iosm/iosm_ipc_protocol.hstruct ipc_protocol_context_info(9)struct ipc_protocol_device_info(9)struct ipc_protocol_ap_shm(9)struct ipc_call_msg_send_args(9)ipc_protocol_tq_msg_send(9)ipc_protocol_msg_send(9)ipc_protocol_suspend(9)ipc_protocol_s2idle_sleep(9)ipc_protocol_resume(9)ipc_protocol_pm_dev_sleep_handle(9)ipc_protocol_doorbell_trigger(9)ipc_protocol_sleep_notification_string(9)ipc_protocol_init(9)ipc_protocol_deinit(9)
ngl if you're here you probably needipc_protocol_init(9)first, andipc_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
- 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