STRUCT FSL_MC_IO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct fsl_mc_io(9) β€” the MC I/O bestie struct

okay so this page is from the Kernel API Manual, and it's all about the MC I/O object you pass into mc_send_command(). literally the little struct bestie that makes command calls happen. πŸ’…


✨ NAME ✨

struct fsl_mc_io β€” MC I/O object to be passed-in to mc_send_command() 🫢


πŸŽ€ SYNOPSIS πŸŽ€

       struct fsl_mc_io {
           struct device *dev;
           u16 flags;
           u32 portal_size;
           phys_addr_t portal_phys_addr;
           void __iomem *portal_virt_addr;
           struct fsl_mc_device *dpmcp_dev;
           union {
             struct mutex mutex;
             raw_spinlock_t spinlock;
           };
        };

no cap, that's the whole struct layout. 🌟


πŸ’… Members πŸ’…

  • dev β€” device associated with this Mc I/O object.
  • flags β€” flags for mc_send_command.
  • portal_size β€” MC command portal size in bytes.
  • portal_phys_addr β€” MC command portal physical address.
  • portal_virt_addr β€” MC command portal virtual address.
  • dpmcp_dev β€” pointer to the DPMCP device associated with the MC portal.
  • {unnamed_union} β€” anonymous.
  • mutex β€” Mutex to serialize mc_send_command calls that use the same MC portal, if the fsl_mc_io object was created with the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag off. mc_send_command calls for this fsl_mc_io object must be made only from non-atomic context.
  • spinlock β€” Spinlock to serialize mc_send_command calls that use the same MC portal, if the fsl_mc_io object was created with the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag on. mc_send_command calls for this fsl_mc_io object can be made from atomic or non-atomic context.

πŸ’œ Description πŸ’œ

bestie, the original page has these two lines back-to-back, colons and all, with no extra list items after them:

  • Fields are only meaningful if the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is not set:
  • Fields are only meaningful if the FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is set:

yes, both are literally there. iconic formatting choices, honestly. 😭


πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./include/linux/fsl/mc.h
  • struct fsl_mc_driver(9)
  • enum fsl_mc_pool_type(9)
  • struct fsl_mc_resource(9)
  • struct fsl_mc_device_irq(9)
  • struct fsl_mc_obj_desc(9)
  • struct fsl_mc_device(9)
  • struct fsl_mc_version(9)
  • struct dpbp_attr(9)
  • struct dpcon_attr(9)
  • struct dpcon_notification_cfg(9)

🫢 that's the wrap, bestie β€” source/version vibes: ./include/linux/fsl, dated October 2026. πŸ’–

πŸ“¦ where this page comes from