File: rtdm_8h.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 (150 lines) | stat: -rw-r--r-- 15,767 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
<!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: include/rtdm/rtdm.h File Reference</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 class="current"><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>include/rtdm/rtdm.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Real-Time Driver Model for Xenomai, user API header. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Copyright (C) 2005, 2006 Jan Kiszka &lt;<a href="mailto:jan.kiszka@web.de">jan.kiszka@web.de</a>&gt; <p>
Copyright (C) 2005 Joerg Langenberg &lt;<a href="mailto:joerg.langenberg@gmx.net">joerg.langenberg@gmx.net</a>&gt;</dd></dl>
Xenomai is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.<p>
Xenomai is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.<p>
You should have received a copy of the GNU General Public License along with Xenomai; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
<p>

<p>
<div class="dynheader">
Include dependency graph for rtdm.h:</div>
<div class="dynsection">
<p><center><img src="rtdm_8h__incl.png" border="0" usemap="#include/rtdm/rtdm.h_map" alt=""></center>
</div>

<p>
<div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dynsection">
<p><center><img src="rtdm_8h__dep__incl.png" border="0" usemap="#include/rtdm/rtdm.hdep_map" alt=""></center>
<map name="include/rtdm/rtdm.hdep_map">
<area shape="rect" href="rtcan_8h.html" title="Real&#45;Time Driver Model for RT&#45;Socket&#45;CAN, CAN device profile header." alt="" coords="144,84,293,111"><area shape="rect" href="rtdm__driver_8h.html" title="Real&#45;Time Driver Model for Xenomai, driver API header." alt="" coords="317,84,507,111"><area shape="rect" href="rtipc_8h.html" title="This file is part of the Xenomai project." alt="" coords="531,84,675,111"><area shape="rect" href="rtserial_8h.html" title="Real&#45;Time Driver Model for Xenomai, serial device profile header." alt="" coords="699,84,859,111"><area shape="rect" href="rttesting_8h.html" title="Real&#45;Time Driver Model for Xenomai, testing device profile header." alt="" coords="883,84,1053,111"><area shape="rect" href="src_2drvlib_2analogy_2syscall_8h.html" title="Analogy for Linux, internal declarations." alt="" coords="1077,84,1267,111"><area shape="rect" href="rtdm_2internal_8h-source.html" title="ksrc/skins/rtdm/internal.h" alt="" coords="185,161,367,188"><area shape="rect" href="drvlib_8c.html" title="Real&#45;Time Driver Model for Xenomai, driver library." alt="" coords="391,161,559,188"><area shape="rect" href="ksrc_2skins_2rtdm_2core_8c.html" title="Real&#45;Time Driver Model for Xenomai, device operation multiplexing." alt="" coords="5,239,165,265"><area shape="rect" href="skins_2rtdm_2device_8c.html" title="Real&#45;Time Driver Model for Xenomai, device management." alt="" coords="189,239,363,265"><area shape="rect" href="skins_2rtdm_2module_8c.html" title="Real&#45;Time Driver Model for Xenomai." alt="" coords="387,239,568,265"><area shape="rect" href="async_8c.html" title="Analogy for Linux, command, transfer, etc." alt="" coords="644,161,828,188"><area shape="rect" href="descriptor_8c.html" title="Analogy for Linux, descriptor related features." alt="" coords="852,161,1063,188"><area shape="rect" href="info_8c.html" title="Analogy for Linux, device, subdevice, etc." alt="" coords="1087,161,1257,188"><area shape="rect" href="sync_8c.html" title="Analogy for Linux, instruction related features." alt="" coords="1281,161,1457,188"><area shape="rect" href="sys_8c.html" title="Analogy for Linux, descriptor related features." alt="" coords="1481,161,1649,188"></map>
</div>

<p>
<a href="rtdm_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrtdm__device__info.html">rtdm_device_info</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device information.  <a href="structrtdm__device__info.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">API Versioning</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="api_versioning"></a> <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd2020d36782ebb916b065d6554f2631"></a><!-- doxytag: member="rtdm.h::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.h::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"><div class="groupHeader">RTDM_TIMEOUT_xxx</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="RTDM_TIMEOUT_xxx"></a> Special timeout values <br><br></div></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="group__rtdm.html#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="group__rtdm.html#g9d1d1557083c4b10226f360bea137fde"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTDM_CLASS_xxx</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="RTDM_CLASS_xxx"></a> Device classes <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="geec8d82754c2ff58064295a59d0d01a8"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_PARPORT" ref="geec8d82754c2ff58064295a59d0d01a8" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_PARPORT</b>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb554e723ced49f44b2530d0de3820e2b"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_SERIAL" ref="gb554e723ced49f44b2530d0de3820e2b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_SERIAL</b>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0b88db31fe95694604ca01bdf6d68ec0"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_CAN" ref="g0b88db31fe95694604ca01bdf6d68ec0" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_CAN</b>&nbsp;&nbsp;&nbsp;3</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g792150b72c14b429b235c2b263fb660f"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_NETWORK" ref="g792150b72c14b429b235c2b263fb660f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_NETWORK</b>&nbsp;&nbsp;&nbsp;4</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf1ef8ac3b87ccd86eac2cc627d7747c3"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_RTMAC" ref="gf1ef8ac3b87ccd86eac2cc627d7747c3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_RTMAC</b>&nbsp;&nbsp;&nbsp;5</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc5e308a79b52d504b2b7948ee3d41ad3"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_TESTING" ref="gc5e308a79b52d504b2b7948ee3d41ad3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_TESTING</b>&nbsp;&nbsp;&nbsp;6</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfadc86f9148d50b6d507a7a0441557e3"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_RTIPC" ref="gfadc86f9148d50b6d507a7a0441557e3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_RTIPC</b>&nbsp;&nbsp;&nbsp;7</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge942ccb05bfeb056e46d189f2166557f"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_EXPERIMENTAL" ref="ge942ccb05bfeb056e46d189f2166557f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_EXPERIMENTAL</b>&nbsp;&nbsp;&nbsp;224</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb9419c43b25d984b8e4b13ca9b3c6d90"></a><!-- doxytag: member="rtdm.h::RTDM_CLASS_MAX" ref="gb9419c43b25d984b8e4b13ca9b3c6d90" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_CLASS_MAX</b>&nbsp;&nbsp;&nbsp;255</td></tr>

<tr><td colspan="2"><div class="groupHeader">Device Naming</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="device_naming"></a> Maximum length of device names (excluding the final null character) <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g14617df86a7a8504994556d119c56b03"></a><!-- doxytag: member="rtdm.h::RTDM_MAX_DEVNAME_LEN" ref="g14617df86a7a8504994556d119c56b03" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_MAX_DEVNAME_LEN</b>&nbsp;&nbsp;&nbsp;31</td></tr>

<tr><td colspan="2"><div class="groupHeader">RTDM_PURGE_xxx_BUFFER</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="RTDM_PURGE_xxx_BUFFER"></a> Flags selecting buffers to be purged <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g857b759c5aecf5b5c0091426f7ed286d"></a><!-- doxytag: member="rtdm.h::RTDM_PURGE_RX_BUFFER" ref="g857b759c5aecf5b5c0091426f7ed286d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_PURGE_RX_BUFFER</b>&nbsp;&nbsp;&nbsp;0x0001</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g39ac1c022a6c451a74139979354bc413"></a><!-- doxytag: member="rtdm.h::RTDM_PURGE_TX_BUFFER" ref="g39ac1c022a6c451a74139979354bc413" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>RTDM_PURGE_TX_BUFFER</b>&nbsp;&nbsp;&nbsp;0x0002</td></tr>

<tr><td colspan="2"><div class="groupHeader">Common IOCTLs</div></td></tr>
<tr><td colspan="2"><div class="groupText"><a class="anchor" name="common_IOCTLs"></a> The following IOCTLs are common to all device profiles. <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__profiles.html#gae7eb728c73b844eed0ee612940c19ae">RTIOC_DEVICE_INFO</a>&nbsp;&nbsp;&nbsp;_IOR(RTIOC_TYPE_COMMON, 0x00, struct rtdm_device_info)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve information about a device or socket.  <a href="group__profiles.html#gae7eb728c73b844eed0ee612940c19ae"></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__profiles.html#gc6abf51719ec6aa6e31f98a237721e01">RTIOC_PURGE</a>&nbsp;&nbsp;&nbsp;_IOW(RTIOC_TYPE_COMMON, 0x10, int)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Purge internal device or socket buffers.  <a href="group__profiles.html#gc6abf51719ec6aa6e31f98a237721e01"></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="group__rtdm.html#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="group__rtdm.html#gededf91e760e3268235351dcc9d9dcda"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0598828a5144ac01c24eb24262234ed1"></a><!-- doxytag: member="rtdm.h::rtdm_device_info_t" ref="g0598828a5144ac01c24eb24262234ed1" args="" -->
typedef struct <a class="el" href="structrtdm__device__info.html">rtdm_device_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__profiles.html#g0598828a5144ac01c24eb24262234ed1">rtdm_device_info_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device information. <br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Aug 2 12:48:37 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>