Scroll to navigation

STRUCT RIO_OPS(9) Internals STRUCT RIO_OPS(9)

NAME

struct_rio_ops - Low-level RIO configuration space operations

SYNOPSIS

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

int (*) (struct rio_mport *mport, int index, u32 offset, int len,u32 *data) lcread

Callback to perform local (master port) read of config space.

int (*) (struct rio_mport *mport, int index, u32 offset, int len,u32 data) lcwrite

Callback to perform local (master port) write of config space.

int (*) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 *data) cread

Callback to perform network read of config space.

int (*) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 data) cwrite

Callback to perform network write of config space.

int (*) (struct rio_mport *mport, int index, u16 destid, u16 data) dsend

Callback to send a doorbell message.

int (*) (struct rio_mport *mport, int enable) pwenable

Callback to enable/disable port-write message handling.

int (*)(struct rio_mport *mport, void *dev_id,int mbox, int entries) open_outb_mbox

Callback to initialize outbound mailbox.

void (*)(struct rio_mport *mport, int mbox) close_outb_mbox

Callback to shut down outbound mailbox.

int (*)(struct rio_mport *mport, void *dev_id,int mbox, int entries) open_inb_mbox

Callback to initialize inbound mailbox.

void (*)(struct rio_mport *mport, int mbox) close_inb_mbox

Callback to shut down inbound mailbox.

int (*)(struct rio_mport *mport, struct rio_dev *rdev,int mbox, void *buffer, size_t len) add_outb_message

Callback to add a message to an outbound mailbox queue.

int (*)(struct rio_mport *mport, int mbox, void *buf) add_inb_buffer

Callback to add a buffer to an inbound mailbox queue.

void *(*)(struct rio_mport *mport, int mbox) get_inb_message

Callback to get a message from an inbound mailbox queue.

int (*)(struct rio_mport *mport, dma_addr_t lstart,u64 rstart, u64 size, u32 flags) map_inb

Callback to map RapidIO address region into local memory space.

void (*)(struct rio_mport *mport, dma_addr_t lstart) unmap_inb

Callback to unmap RapidIO address region mapped with map_inb.

int (*)(struct rio_mport *mport,struct rio_mport_attr *attr) query_mport

Callback to query mport device attributes.

int (*)(struct rio_mport *mport, u16 destid, u64 rstart,u32 size, u32 flags, dma_addr_t *laddr) map_outb

Callback to map outbound address region into local memory space.

void (*)(struct rio_mport *mport, u16 destid, u64 rstart) unmap_outb

Callback to unmap outbound RapidIO address region.

AUTHOR

Matt Porter <mporter@kernel.crashing.org>, <mporter@mvista.com>

Author.

COPYRIGHT

June 2017 Kernel Hackers Manual 4.11