File: group__rtdm.html

package info (click to toggle)
xenomai 2.5.4-3squeeze1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 36,140 kB
  • ctags: 35,509
  • sloc: ansic: 109,084; sh: 11,745; makefile: 2,205; xml: 1,356; asm: 613; php: 316; perl: 155
file content (156 lines) | stat: -rw-r--r-- 8,875 bytes parent folder | download
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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gdd2020d36782ebb916b065d6554f2631">RTDM_API_VER</a>&nbsp;&nbsp;&nbsp;8</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#g29d0fb2c233815a4a1d99f6a19f50b97">RTDM_API_MIN_COMPAT_VER</a>&nbsp;&nbsp;&nbsp;6</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gbdd7dfed8d8c38213f7edff5dc8b85a9">RTDM_TIMEOUT_INFINITE</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Block forever.  <a href="#gbdd7dfed8d8c38213f7edff5dc8b85a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#g9d1d1557083c4b10226f360bea137fde">RTDM_TIMEOUT_NONE</a>&nbsp;&nbsp;&nbsp;(-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gd3b24c25feabadba465f8797d8c7fe27">nanosecs_abs_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rtdm.html#gededf91e760e3268235351dcc9d9dcda">nanosecs_rel_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;&nbsp;&nbsp;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&nbsp;&nbsp;&nbsp;(-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&nbsp;
<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>