STRUCT RIO_MPORT(9)
๐ struct rio_mport(9) ๐
Hey bestie!! Okay so welcome to the Kernel API Manual โ yes, that manual โ and today's main character is struct rio_mport, which is literally the RIO master port info struct. She's a big one, she's got range, and we're gonna go through every single field together because I refuse to let you skip any of them ๐
โจ NAME โจ
struct rio_mport โ RIO master port info. That's it, that's the vibe. It's the master port's whole little info package ๐ธ
๐ฆ SYNOPSIS ๐ฆ
Bestie, here's the shape of her. Every single line, exactly as it lives in the header. No editorials in here, just vibes:
struct rio_mport {
struct list_head dbells;
struct list_head pwrites;
struct list_head node;
struct list_head nnode;
struct rio_net *net;
struct mutex lock;
struct resource iores;
struct resource riores[RIO_MAX_MPORT_RESOURCES];
struct rio_msg inb_msg[RIO_MAX_MBOX];
struct rio_msg outb_msg[RIO_MAX_MBOX];
int host_deviceid;
struct rio_ops *ops;
unsigned char id;
unsigned char index;
unsigned int sys_size;
u32 phys_efptr;
u32 phys_rmap;
unsigned char name[RIO_MAX_MPORT_NAME];
struct device dev;
void *priv;
#ifdef CONFIG_RAPIDIO_DMA_ENGINE;
struct dma_device dma;
#endif;
struct rio_scan *nscan;
atomic_t state;
unsigned int pwe_refcnt;
};
๐ Quick head's up: thatdmafield only shows up whenCONFIG_RAPIDIO_DMA_ENGINE;is defined. So if you're not seeing her, that's why, no cap.
๐ Members ๐
Okay now the fun part โ the full member-by-member breakdown. Grab a snack ๐
dbellsโ List of doorbell events ๐๏ธpwritesโ List of portwrite events โ๏ธnodeโ Her node in the global list of master ports ๐nnodeโ Her node in the network list of master ports ๐netโ The RIO net this mport is attached to ๐ซถlockโ The lock that synchronizes list manipulations ๐ (respect the lock, fr fr)ioresโ I/O mem resource that this master port interface owns ๐ฆrioresโ The RIO resources that this master port interface owns ๐งบinb_msgโ RIO inbound message event descriptors ๐ฅoutb_msgโ RIO outbound message event descriptors ๐คhost_deviceidโ Host device ID associated with this master port ๐ชชopsโ configuration space functions โ๏ธidโ Port ID, unique among all ports ๐indexโ Port index, unique among all port interfaces of the same type ๐ขsys_sizeโ RapidIO common transport system size ๐phys_efptrโ RIO port extended features pointer ๐งญphys_rmapโ LP-Serial EFB Register Mapping type (1or2). ๐บ๏ธnameโ Port name string ๐ท๏ธdevโ device structure associated with an mport ๐ปprivโ Master port private data ๐dmaโ DMA device associated with mport ๐nscanโ RapidIO network enumeration/discovery operations ๐stateโ mport device state ๐ฆpwe_refcntโ port-write enable ref counter, there to track enable/disable requests ๐งฎ
๐ SEE ALSO ๐
Sister structs and friends, all living in the kernel file ./include/linux/rio.h:
struct rio_switch(9)struct rio_switch_ops(9)struct rio_dev(9)struct rio_msg(9)struct rio_dbell(9)struct rio_net(9)struct rio_mport_attr(9)struct rio_ops(9)struct rio_driver(9)struct rio_scan(9)struct rio_scan_node(9)
And that's the whole page, bestie!! โจ Signing off from ./include/linux, dated October 2026 โ stay slay, stay documented, and remember: every field matters ๐๐ฆ๐
๐ฆ 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