1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Xenomai API: Real-Time Driver Model</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1>Real-Time Driver Model</h1>
<p>
<div class="dynheader">
Collaboration diagram for Real-Time Driver Model:</div>
<div class="dynsection">
<center><table><tr><td><img src="group__rtdm.png" border="0" alt="" usemap="#group____rtdm_map">
<map name="group____rtdm_map">
<area shape="rect" href="group__profiles.html" title="Device Profiles" alt="" coords="251,5,365,32"><area shape="rect" href="group__userapi.html" title="User API" alt="" coords="271,56,345,83"><area shape="rect" href="group__driverapi.html" title="Driver Development API" alt="" coords="221,107,395,133"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The Real-Time Driver Model (RTDM) provides a unified interface to both users and developers of real-time device drivers. Specifically, it addresses the constraints of mixed RT/non-RT systems like Xenomai. RTDM conforms to POSIX semantics (IEEE Std 1003.1) where available and applicable.<p>
<b>API</b> <b>Revision:</b> 8
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__userapi.html">User API</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__driverapi.html">Driver Development API</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__profiles.html">Device Profiles</a></td></tr>
<tr><td colspan="2"><br><h2>API Versioning</h2></td></tr>
<tr><td colspan="2"><a class="anchor" name="api_versioning"></a> <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd2020d36782ebb916b065d6554f2631"></a><!-- doxytag: member="rtdm::RTDM_API_VER" ref="gdd2020d36782ebb916b065d6554f2631" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gdd2020d36782ebb916b065d6554f2631">RTDM_API_VER</a> 8</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Common user and driver API version. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g29d0fb2c233815a4a1d99f6a19f50b97"></a><!-- doxytag: member="rtdm::RTDM_API_MIN_COMPAT_VER" ref="g29d0fb2c233815a4a1d99f6a19f50b97" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#g29d0fb2c233815a4a1d99f6a19f50b97">RTDM_API_MIN_COMPAT_VER</a> 6</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Minimum API revision compatible with the current release. <br></td></tr>
<tr><td colspan="2"><br><h2>RTDM_TIMEOUT_xxx</h2></td></tr>
<tr><td colspan="2"><a class="anchor" name="RTDM_TIMEOUT_xxx"></a> Special timeout values <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gbdd7dfed8d8c38213f7edff5dc8b85a9">RTDM_TIMEOUT_INFINITE</a> 0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Block forever. <a href="#gbdd7dfed8d8c38213f7edff5dc8b85a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#g9d1d1557083c4b10226f360bea137fde">RTDM_TIMEOUT_NONE</a> (-1)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Any negative timeout means non-blocking. <a href="#g9d1d1557083c4b10226f360bea137fde"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gd3b24c25feabadba465f8797d8c7fe27">nanosecs_abs_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">RTDM type for representing absolute dates. <a href="#gd3b24c25feabadba465f8797d8c7fe27"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gededf91e760e3268235351dcc9d9dcda">nanosecs_rel_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">RTDM type for representing relative intervals. <a href="#gededf91e760e3268235351dcc9d9dcda"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="gbdd7dfed8d8c38213f7edff5dc8b85a9"></a><!-- doxytag: member="rtdm.h::RTDM_TIMEOUT_INFINITE" ref="gbdd7dfed8d8c38213f7edff5dc8b85a9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RTDM_TIMEOUT_INFINITE 0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Block forever.
<p>
</div>
</div><p>
<a class="anchor" name="g9d1d1557083c4b10226f360bea137fde"></a><!-- doxytag: member="rtdm.h::RTDM_TIMEOUT_NONE" ref="g9d1d1557083c4b10226f360bea137fde" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RTDM_TIMEOUT_NONE (-1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Any negative timeout means non-blocking.
<p>
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd3b24c25feabadba465f8797d8c7fe27"></a><!-- doxytag: member="rtdm.h::nanosecs_abs_t" ref="gd3b24c25feabadba465f8797d8c7fe27" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint64_t <a class="el" href="group__rtdm.html#gd3b24c25feabadba465f8797d8c7fe27">nanosecs_abs_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
RTDM type for representing absolute dates.
<p>
Its base type is a 64 bit unsigned integer. The unit is 1 nanosecond. <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="rtcanrecv_8c-example.html#a6">rtcanrecv.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="gededf91e760e3268235351dcc9d9dcda"></a><!-- doxytag: member="rtdm.h::nanosecs_rel_t" ref="gededf91e760e3268235351dcc9d9dcda" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int64_t <a class="el" href="group__rtdm.html#gededf91e760e3268235351dcc9d9dcda">nanosecs_rel_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
RTDM type for representing relative intervals.
<p>
Its base type is a 64 bit signed integer. The unit is 1 nanosecond. Relative intervals can also encode the special timeouts "infinite" and "non-blocking", see <a class="el" href="group__rtdm.html#RTDM_TIMEOUT_xxx">RTDM_TIMEOUT_xxx</a>. <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="rtcanrecv_8c-example.html#a0">rtcanrecv.c</a>, and <a class="el" href="rtcansend_8c-example.html#a0">rtcansend.c</a>.</dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Aug 2 12:48:38 2010 for Xenomai API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
|