STRUCT IOSM_DEVLINK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so this is a page from the Kernel API Manual, and the star of the show is struct iosm_devlink β€” literally the IOSM devlink structure itself, no cap. it's giving "backstage pass to the whole devlink situation" and i'm obsessed. let's get into it 🫢


✨ NAME ✨

struct iosm_devlink β€” the IOSM Devlink structure. that's her. that's the whole vibe. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

bestie. look at this. it's a struct, so it's basically the friend group roster β€” every field is a member of the squad:

struct iosm_devlink {
    struct iosm_devlink_sio devlink_sio;
    struct iosm_pcie *pcie;
    struct device *dev;
    struct devlink *devlink_ctx;
    struct iosm_flash_params param;
    struct iosm_ebl_ctx_data ebl_ctx;
    struct iosm_coredump_file_info *cd_file_info;
    struct devlink_region_ops
iosm_devlink_mdm_coredump[IOSM_NOF_CD_REGION];
    struct devlink_region *cd_regions[IOSM_NOF_CD_REGION];
 };

(and yes, that struct devlink_region_ops line wraps down onto iosm_devlink_mdm_coredump[IOSM_NOF_CD_REGION]; β€” that's just how she's written, don't come for her πŸ’€)


πŸŽ€ Members πŸŽ€

okay so every single field, one by one, no skipping, we're doing the full tour 🧚

  • devlink_sio β€” the SIO instance that handles read/write functionality. she does the reading and the writing, highkey multi-talented. πŸ“–βœοΈ
  • pcie β€” a pointer to the PCIe component. just pointing at it, living its life. πŸ‘‰βœ¨
  • dev β€” a pointer to the device struct. classic. iconic. we love a device pointer. πŸŽ€
  • devlink_ctx β€” a pointer to the devlink context. the context is right there, bestie. 🫢
  • param β€” the params required for flashing. important stuff, put some respect on it. πŸ”₯
  • ebl_ctx β€” the data to be read and written to the Modem. modem says hi. πŸ“‘
  • cd_file_info β€” coredump file info. cd here is coredump, not a change directory moment, iykyk. πŸ’€
  • iosm_devlink_mdm_coredump β€” the region ops for coredump collection. it's an array, sized IOSM_NOF_CD_REGION, and it does the collecting. πŸ—‚οΈ
  • cd_regions β€” the coredump regions themselves, also an array of size IOSM_NOF_CD_REGION. matching set, slay. ✨

🌈 SEE ALSO 🌈

go read these next, bestie, they're all in the kernel file ./drivers/net/wwan/iosm/iosm_ipc_devlink.h and the family is large:

  • enum iosm_devlink_param_id(9)
  • enum iosm_rpsi_cmd_code(9)
  • enum iosm_flash_comp_type(9)
  • struct iosm_devlink_sio(9)
  • struct iosm_flash_params(9)
  • struct iosm_devlink_image(9)
  • struct iosm_ebl_ctx_data(9)
  • struct iosm_coredump_file_info(9)
  • union iosm_rpsi_param_u(9)
  • struct iosm_rpsi_cmd(9)
πŸ“Œ also flagged up top as a see-also: the kernel file ./drivers/net/wwan/iosm/iosm_ipc_devlink.h enum β€” that's where this whole situationship lives.

and that's the page, bestie!! πŸŽ€ it lives over in ./drivers/net/wwan/iosm, it's dated October 2026, and it goes by struct iosm_devlink(9). go off, king. πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from