1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct rio_ops</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="RapidIO Subsystem Guide"><link rel="up" href="internals.html#Structures" title="Structures"><link rel="prev" href="API-struct-rio-net.html" title="struct rio_net"><link rel="next" href="API-struct-rio-driver.html" title="struct rio_driver"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct rio_ops</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-rio-net.html">Prev</a>&#160;</td><th width="60%" align="center">Structures</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-struct-rio-driver.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-rio-ops"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct rio_ops &#8212; 
2     Low-level RIO configuration space operations
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct rio_ops {
5  int (* lcread) (struct rio_mport *mport, int index, u32 offset, int len,u32 *data);
6  int (* lcwrite) (struct rio_mport *mport, int index, u32 offset, int len,u32 data);
7  int (* cread) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 *data);
8  int (* cwrite) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 data);
9  int (* dsend) (struct rio_mport *mport, int index, u16 destid, u16 data);
10  int (* pwenable) (struct rio_mport *mport, int enable);
11  int (* open_outb_mbox) (struct rio_mport *mport, void *dev_id,int mbox, int entries);
12  void (* close_outb_mbox) (struct rio_mport *mport, int mbox);
13  int (* open_inb_mbox) (struct rio_mport *mport, void *dev_id,int mbox, int entries);
14  void (* close_inb_mbox) (struct rio_mport *mport, int mbox);
15  int (* add_outb_message) (struct rio_mport *mport, struct rio_dev *rdev,int mbox, void *buffer, size_t len);
16  int (* add_inb_buffer) (struct rio_mport *mport, int mbox, void *buf);
17  void *(* get_inb_message) (struct rio_mport *mport, int mbox);
18  int (* map_inb) (struct rio_mport *mport, dma_addr_t lstart,u64 rstart, u32 size, u32 flags);
19  void (* unmap_inb) (struct rio_mport *mport, dma_addr_t lstart);
20};  </pre></div><div class="refsect1"><a name="idp1109775748"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">lcread</span></dt><dd><p>
21   Callback to perform local (master port) read of config space.
22      </p></dd><dt><span class="term">lcwrite</span></dt><dd><p>
23   Callback to perform local (master port) write of config space.
24      </p></dd><dt><span class="term">cread</span></dt><dd><p>
25   Callback to perform network read of config space.
26      </p></dd><dt><span class="term">cwrite</span></dt><dd><p>
27   Callback to perform network write of config space.
28      </p></dd><dt><span class="term">dsend</span></dt><dd><p>
29   Callback to send a doorbell message.
30      </p></dd><dt><span class="term">pwenable</span></dt><dd><p>
31   Callback to enable/disable port-write message handling.
32      </p></dd><dt><span class="term">open_outb_mbox</span></dt><dd><p>
33   Callback to initialize outbound mailbox.
34      </p></dd><dt><span class="term">close_outb_mbox</span></dt><dd><p>
35   Callback to shut down outbound mailbox.
36      </p></dd><dt><span class="term">open_inb_mbox</span></dt><dd><p>
37   Callback to initialize inbound mailbox.
38      </p></dd><dt><span class="term">close_inb_mbox</span></dt><dd><p>
39   Callback to	shut down inbound mailbox.
40      </p></dd><dt><span class="term">add_outb_message</span></dt><dd><p>
41   Callback to add a message to an outbound mailbox queue.
42      </p></dd><dt><span class="term">add_inb_buffer</span></dt><dd><p>
43   Callback to	add a buffer to an inbound mailbox queue.
44      </p></dd><dt><span class="term">get_inb_message</span></dt><dd><p>
45   Callback to get a message from an inbound mailbox queue.
46      </p></dd><dt><span class="term">map_inb</span></dt><dd><p>
47   Callback to map RapidIO address region into local memory space.
48      </p></dd><dt><span class="term">unmap_inb</span></dt><dd><p>
49   Callback to unmap RapidIO address region mapped with <code class="function">map_inb</code>.
50      </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-rio-net.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="internals.html#Structures">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-struct-rio-driver.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct rio_net</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">struct rio_driver</span></td></tr></table></div></body></html>
51