STRUCT RIO_OPS(9)
π NAME π
okay bestie, welcome to the struct rio_ops(9) page from the Kernel API Manual β this is all about low-level RIO configuration space operations, and itβs lowkey the blueprint for how the kernel talks to RapidIO hardware β¨
π SYNOPSIS π
hereβs the whole struct, copied exactly so nobody comes for me:
struct rio_ops {
int (*lcread) (struct rio_mport *mport, int index, u32 offset, int
len, u32 *data);
int (*lcwrite) (struct rio_mport *mport, int index, u32 offset, int
len, u32 data);
int (*cread) (struct rio_mport *mport, int index, u16 destid, u8
hopcount, u32 offset, int len, u32 *data);
int (*cwrite) (struct rio_mport *mport, int index, u16 destid, u8
hopcount, u32 offset, int len, u32 data);
int (*dsend) (struct rio_mport *mport, int index, u16 destid, u16
data);
int (*pwenable) (struct rio_mport *mport, int enable);
int (*open_outb_mbox)(struct rio_mport *mport, void *dev_id, int
mbox, int entries);
void (*close_outb_mbox)(struct rio_mport *mport, int mbox);
int (*open_inb_mbox)(struct rio_mport *mport, void *dev_id, int
mbox, int entries);
void (*close_inb_mbox)(struct rio_mport *mport, int mbox);
int (*add_outb_message)(struct rio_mport *mport, struct rio_dev
*rdev, int mbox, void *buffer, size_t len);
int (*add_inb_buffer)(struct rio_mport *mport, int mbox, void *buf);
void *(*get_inb_message)(struct rio_mport *mport, int mbox);
int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart, u64
rstart, u64 size, u32 flags);
void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
int (*query_mport)(struct rio_mport *mport, struct rio_mport_attr
*attr);
int (*map_outb)(struct rio_mport *mport, u16 destid, u64 rstart, u32
size, u32 flags, dma_addr_t *laddr);
void (*unmap_outb)(struct rio_mport *mport, u16 destid, u64 rstart);
};
πΈ Members πΈ
lcreadβ callback to perform local (master port) read of config space. local queen behavior, no cap πlcwriteβ callback to perform local (master port) write of config space. yes bestie, write it β¨creadβ callback to perform network read of config space. reaching across the network like itβs nothing π¦cwriteβ callback to perform network write of config space. network write main character energy π₯dsendβ callback to send a doorbell message. ding dong, the doorbell callback is here ποΈpwenableβ callback to enable/disable port-write message handling. flip the switch, bestie ποΈopen_outb_mboxβ callback to initialize outbound mailbox. setting up the outbound mailbox, slay π¬close_outb_mboxβ callback to shut down outbound mailbox. outbound mailbox said bye πopen_inb_mboxβ callback to initialize inbound mailbox. inbound mailbox is waking up πclose_inb_mboxβ callback to shut down inbound mailbox. inbound mailbox is logging off πadd_outb_messageβ callback to add a message to an outbound mailbox queue. queue it up, bestie πadd_inb_bufferβ callback to add a buffer to an inbound mailbox queue. buffer added, we love to see it π«Άget_inb_messageβ callback to get a message from an inbound mailbox queue. grabbing that message like itβs the last iced coffee π§map_inbβ callback to map RapidIO address region into local memory space. mapping era π«unmap_inbβ callback to unmap RapidIO address region mapped withmap_inb. cleanup icon behavior π§Ήquery_mportβ callback to query mport device attributes. asking the mport device for its whole vibe check πmap_outbβ callback to map outbound address region into local memory space. outbound mapping, periodt πΊοΈunmap_outbβ callback to unmap outbound RapidIO address region. and unmap it right back, iconic π¦
β SEE ALSO β
Kernel file ./include/linux/rio.h β then go stan the whole related squad: struct rio_switch(9), struct rio_switch_ops(9), struct rio_dev(9), struct rio_msg(9), struct rio_dbell(9), struct rio_mport(9), struct rio_net(9), struct rio_mport_attr(9), struct rio_driver(9), struct rio_scan(9), struct rio_scan_node(9) π
mwah π cute little sign-off time: this page came from ./include/linux, dated October 2026, and it is literally the struct rio_ops(9) page β periodt π
π¦ 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