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 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
|
<!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/rtcan.h Source File</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 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> <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>
<h1>include/rtdm/rtcan.h</h1><a href="rtcan_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
<a name="l00236"></a>00236 <span class="preprocessor">#ifndef _RTCAN_H</span>
<a name="l00237"></a>00237 <span class="preprocessor"></span><span class="preprocessor">#define _RTCAN_H</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>
<a name="l00239"></a>00239 <span class="preprocessor">#ifdef __KERNEL__</span>
<a name="l00240"></a>00240 <span class="preprocessor"></span>
<a name="l00241"></a>00241 <span class="preprocessor">#include <linux/net.h></span>
<a name="l00242"></a>00242 <span class="preprocessor">#include <linux/socket.h></span>
<a name="l00243"></a>00243 <span class="preprocessor">#include <linux/if.h></span>
<a name="l00244"></a>00244
<a name="l00245"></a>00245 <span class="preprocessor">#else </span><span class="comment">/* !__KERNEL__ */</span>
<a name="l00246"></a>00246
<a name="l00247"></a>00247 <span class="preprocessor">#include <net/if.h></span>
<a name="l00248"></a>00248
<a name="l00249"></a>00249 <span class="preprocessor">#endif </span><span class="comment">/* !__KERNEL__ */</span>
<a name="l00250"></a>00250
<a name="l00251"></a>00251 <span class="preprocessor">#include <<a class="code" href="rtdm_8h.html" title="Real-Time Driver Model for Xenomai, user API header.">rtdm/rtdm.h</a>></span>
<a name="l00252"></a>00252
<a name="l00253"></a>00253 <span class="preprocessor">#define RTCAN_PROFILE_VER 2</span>
<a name="l00254"></a>00254 <span class="preprocessor"></span>
<a name="l00255"></a>00255 <span class="preprocessor">#ifndef AF_CAN</span>
<a name="l00256"></a>00256 <span class="preprocessor"></span>
<a name="l00258"></a><a class="code" href="group__rtcan.html#g546620c7e758f003b24b7fdae4f97bd4">00258</a> <span class="preprocessor">#define AF_CAN 29</span>
<a name="l00259"></a>00259 <span class="preprocessor"></span>
<a name="l00261"></a><a class="code" href="group__rtcan.html#geac0c3db7a1e021f17987bcc76893849">00261</a> <span class="preprocessor">#define PF_CAN AF_CAN</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>
<a name="l00263"></a>00263 <span class="preprocessor">#endif</span>
<a name="l00264"></a>00264 <span class="preprocessor"></span>
<a name="l00269"></a><a class="code" href="group__rtcan.html#gd981aa82a29d828882a2fb4c35c1cdd7">00269</a> <span class="preprocessor">#define SOL_CAN_RAW 103</span>
<a name="l00270"></a>00270 <span class="preprocessor"></span>
<a name="l00272"></a><a class="code" href="group__rtcan.html#gd4cb716102402e9be0b5919cd2dd6ead">00272</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="group__rtcan.html#gd4cb716102402e9be0b5919cd2dd6ead" title="Type of CAN id (see CAN_xxx_MASK and CAN_xxx_FLAG).">can_id_t</a>;
<a name="l00273"></a>00273 <span class="keyword">typedef</span> uint32_t canid_t;
<a name="l00274"></a>00274
<a name="l00276"></a><a class="code" href="group__rtcan.html#ge3b8d6d39f9bbd387bf74031aba8f4f5">00276</a> <span class="keyword">typedef</span> <a class="code" href="group__rtcan.html#gd4cb716102402e9be0b5919cd2dd6ead" title="Type of CAN id (see CAN_xxx_MASK and CAN_xxx_FLAG).">can_id_t</a> <a class="code" href="group__rtcan.html#ge3b8d6d39f9bbd387bf74031aba8f4f5" title="Type of CAN error mask.">can_err_mask_t</a>;
<a name="l00277"></a>00277
<a name="l00284"></a><a class="code" href="group__rtcan.html#g83b943dca61d0aad5b07ec01c3317572">00284</a> <span class="preprocessor">#define CAN_EFF_MASK 0x1FFFFFFF</span>
<a name="l00285"></a>00285 <span class="preprocessor"></span>
<a name="l00287"></a><a class="code" href="group__rtcan.html#gfe4fc3f9cab58aeeb463861289e8ce93">00287</a> <span class="preprocessor">#define CAN_SFF_MASK 0x000007FF</span>
<a name="l00288"></a>00288 <span class="preprocessor"></span>
<a name="l00296"></a><a class="code" href="group__rtcan.html#g5ae55ab3741140024858bd7b8762ea42">00296</a> <span class="preprocessor">#define CAN_EFF_FLAG 0x80000000</span>
<a name="l00297"></a>00297 <span class="preprocessor"></span>
<a name="l00298"></a><a class="code" href="group__rtcan.html#gf324d65226057755175038a15d9bbd75">00298</a> <span class="preprocessor">#define CAN_RTR_FLAG 0x40000000</span>
<a name="l00299"></a>00299 <span class="preprocessor"></span>
<a name="l00300"></a><a class="code" href="group__rtcan.html#g24df2eae50a2cef0f7f08c73a246a012">00300</a> <span class="preprocessor">#define CAN_ERR_FLAG 0x20000000</span>
<a name="l00301"></a>00301 <span class="preprocessor"></span>
<a name="l00302"></a><a class="code" href="group__rtcan.html#g5cb484fa2d90489f6b4e7a77c254c59f">00302</a> <span class="preprocessor">#define CAN_INV_FILTER CAN_ERR_FLAG</span>
<a name="l00303"></a>00303 <span class="preprocessor"></span>
<a name="l00313"></a><a class="code" href="group__rtcan.html#g57682d9a1e4f4d90943dbaa683582bf5">00313</a> <span class="preprocessor">#define CAN_RAW 1</span>
<a name="l00314"></a>00314 <span class="preprocessor"></span>
<a name="l00316"></a>00316 <span class="preprocessor">#define CAN_BAUDRATE_UNKNOWN ((uint32_t)-1)</span>
<a name="l00317"></a>00317 <span class="preprocessor"></span><span class="preprocessor">#define CAN_BAUDRATE_UNCONFIGURED 0</span>
<a name="l00318"></a>00318 <span class="preprocessor"></span>
<a name="l00322"></a><a class="code" href="group__rtcan.html#g1c314e1f81a7211a9778da835202a741">00322</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="group__rtcan.html#g1c314e1f81a7211a9778da835202a741" title="Baudrate definition in bits per second.">can_baudrate_t</a>;
<a name="l00323"></a>00323
<a name="l00327"></a><a class="code" href="group__rtcan.html#g42c4f551b57f47d4e004c02505a01f71">00327</a> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#g42c4f551b57f47d4e004c02505a01f71" title="Supported CAN bit-time types.">CAN_BITTIME_TYPE</a> {
<a name="l00329"></a><a class="code" href="group__rtcan.html#gg42c4f551b57f47d4e004c02505a01f71160d7c514df2477f8016ed1bf5a6709f">00329</a> <a class="code" href="group__rtcan.html#gg42c4f551b57f47d4e004c02505a01f71160d7c514df2477f8016ed1bf5a6709f" title="Standard bit-time definition according to Bosch.">CAN_BITTIME_STD</a>,
<a name="l00331"></a><a class="code" href="group__rtcan.html#gg42c4f551b57f47d4e004c02505a01f71e164a942c698440f2548bd82fea33e55">00331</a> <a class="code" href="group__rtcan.html#gg42c4f551b57f47d4e004c02505a01f71e164a942c698440f2548bd82fea33e55" title="Hardware-specific BTR bit-time definition.">CAN_BITTIME_BTR</a>
<a name="l00332"></a>00332 };
<a name="l00333"></a>00333
<a name="l00337"></a><a class="code" href="group__rtcan.html#g94a6fb4128854d6fec6e0882df4374f2">00337</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#g42c4f551b57f47d4e004c02505a01f71" title="Supported CAN bit-time types.">CAN_BITTIME_TYPE</a> <a class="code" href="group__rtcan.html#g94a6fb4128854d6fec6e0882df4374f2" title="See CAN_BITTIME_TYPE.">can_bittime_type_t</a>;
<a name="l00338"></a>00338
<a name="l00342"></a><a class="code" href="structcan__bittime__std.html">00342</a> <span class="keyword">struct </span><a class="code" href="structcan__bittime__std.html" title="Standard bit-time parameters according to Bosch.">can_bittime_std</a> {
<a name="l00343"></a><a class="code" href="structcan__bittime__std.html#08d6def90babb8958ec9da1f328e2bae">00343</a> uint32_t <a class="code" href="structcan__bittime__std.html#08d6def90babb8958ec9da1f328e2bae" title="Baud rate prescaler.">brp</a>;
<a name="l00344"></a><a class="code" href="structcan__bittime__std.html#071c82fd3d0a66ce45fe51c8fedb156a">00344</a> uint8_t <a class="code" href="structcan__bittime__std.html#071c82fd3d0a66ce45fe51c8fedb156a" title="from 1 to 8">prop_seg</a>;
<a name="l00345"></a><a class="code" href="structcan__bittime__std.html#4ea4b12dc1d6cec75599f88b3c3dde3c">00345</a> uint8_t <a class="code" href="structcan__bittime__std.html#4ea4b12dc1d6cec75599f88b3c3dde3c" title="from 1 to 8">phase_seg1</a>;
<a name="l00346"></a><a class="code" href="structcan__bittime__std.html#55a0d5efff79f06626177ff46101997b">00346</a> uint8_t <a class="code" href="structcan__bittime__std.html#55a0d5efff79f06626177ff46101997b" title="from 1 to 8">phase_seg2</a>;
<a name="l00347"></a><a class="code" href="structcan__bittime__std.html#0c42abf9132d5e08196a0af51b86905f">00347</a> uint8_t <a class="code" href="structcan__bittime__std.html#0c42abf9132d5e08196a0af51b86905f" title="from 1 to 4">sjw</a>:7;
<a name="l00348"></a><a class="code" href="structcan__bittime__std.html#e6ab12fbeab86132bd178d63a1fd968f">00348</a> uint8_t <a class="code" href="structcan__bittime__std.html#e6ab12fbeab86132bd178d63a1fd968f" title="1 - enable triple sampling">sam</a>:1;
<a name="l00349"></a>00349 };
<a name="l00350"></a>00350
<a name="l00354"></a><a class="code" href="structcan__bittime__btr.html">00354</a> <span class="keyword">struct </span><a class="code" href="structcan__bittime__btr.html" title="Hardware-specific BTR bit-times.">can_bittime_btr</a> {
<a name="l00355"></a>00355
<a name="l00356"></a><a class="code" href="structcan__bittime__btr.html#17d058dedc9a9339e378f2b7b352a554">00356</a> uint8_t <a class="code" href="structcan__bittime__btr.html#17d058dedc9a9339e378f2b7b352a554" title="Bus timing register 0.">btr0</a>;
<a name="l00357"></a><a class="code" href="structcan__bittime__btr.html#6d93f9587762eb9d0a9a05612b108afe">00357</a> uint8_t <a class="code" href="structcan__bittime__btr.html#6d93f9587762eb9d0a9a05612b108afe" title="Bus timing register 1.">btr1</a>;
<a name="l00358"></a>00358 };
<a name="l00359"></a>00359
<a name="l00363"></a><a class="code" href="structcan__bittime.html">00363</a> <span class="keyword">struct </span><a class="code" href="structcan__bittime.html" title="Custom CAN bit-time definition.">can_bittime</a> {
<a name="l00365"></a><a class="code" href="structcan__bittime.html#7635b85b6a373e78cdbed846986e330f">00365</a> <a class="code" href="group__rtcan.html#g94a6fb4128854d6fec6e0882df4374f2" title="See CAN_BITTIME_TYPE.">can_bittime_type_t</a> <a class="code" href="structcan__bittime.html#7635b85b6a373e78cdbed846986e330f" title="Type of bit-time definition.">type</a>;
<a name="l00366"></a>00366
<a name="l00367"></a>00367 <span class="keyword">union </span>{
<a name="l00369"></a><a class="code" href="structcan__bittime.html#63ff3bc997c3c48090dfcff8876dc909">00369</a> <span class="keyword">struct </span><a class="code" href="structcan__bittime__std.html" title="Standard bit-time parameters according to Bosch.">can_bittime_std</a> <a class="code" href="structcan__bittime.html#63ff3bc997c3c48090dfcff8876dc909" title="Standard bit-time.">std</a>;
<a name="l00371"></a><a class="code" href="structcan__bittime.html#1553dfa8833111c9b6f1dc2ab4984b72">00371</a> <span class="keyword">struct </span><a class="code" href="structcan__bittime__btr.html" title="Hardware-specific BTR bit-times.">can_bittime_btr</a> <a class="code" href="structcan__bittime.html#1553dfa8833111c9b6f1dc2ab4984b72" title="Hardware-spcific BTR bit-time.">btr</a>;
<a name="l00372"></a>00372 };
<a name="l00373"></a>00373 };
<a name="l00374"></a>00374
<a name="l00379"></a><a class="code" href="group__rtcan.html#gc0d6cdda2cf4abb51116b86bc99acf99">00379</a> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#gc0d6cdda2cf4abb51116b86bc99acf99">CAN_MODE</a> {
<a name="l00381"></a><a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf9904f549e87bf7ddf764c563062dd76790">00381</a> <a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf9904f549e87bf7ddf764c563062dd76790">CAN_MODE_STOP</a> = 0,
<a name="l00382"></a>00382
<a name="l00386"></a><a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf99f9c617b6b198770017f6e7198bfb50b6">00386</a> <a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf99f9c617b6b198770017f6e7198bfb50b6">CAN_MODE_START</a>,
<a name="l00387"></a>00387
<a name="l00394"></a><a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf9957866c198e12c54747aca0786dc33e3e">00394</a> <a class="code" href="group__rtcan.html#ggc0d6cdda2cf4abb51116b86bc99acf9957866c198e12c54747aca0786dc33e3e">CAN_MODE_SLEEP</a>
<a name="l00395"></a>00395 };
<a name="l00399"></a><a class="code" href="group__rtcan.html#g47a129d7188a7cd7b68fbf60ebbfd9e8">00399</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#gc0d6cdda2cf4abb51116b86bc99acf99">CAN_MODE</a> <a class="code" href="group__rtcan.html#g47a129d7188a7cd7b68fbf60ebbfd9e8" title="See CAN_MODE.">can_mode_t</a>;
<a name="l00400"></a>00400
<a name="l00416"></a><a class="code" href="group__rtcan.html#ge4ba49824d17e7d06300cb8b4a4bff45">00416</a> <span class="preprocessor">#define CAN_CTRLMODE_LISTENONLY 0x1</span>
<a name="l00417"></a>00417 <span class="preprocessor"></span>
<a name="l00423"></a><a class="code" href="group__rtcan.html#g19ec0cc4379e80c32cbd333cf7c145e9">00423</a> <span class="preprocessor">#define CAN_CTRLMODE_LOOPBACK 0x2</span>
<a name="l00424"></a>00424 <span class="preprocessor"></span>
<a name="l00428"></a><a class="code" href="group__rtcan.html#ga1db20ee5ae4803157e38db4b6c6150b">00428</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="group__rtcan.html#ga1db20ee5ae4803157e38db4b6c6150b" title="See CAN_CTRLMODE.">can_ctrlmode_t</a>;
<a name="l00429"></a>00429
<a name="l00434"></a><a class="code" href="group__rtcan.html#g8680f5710e1a13d553067cc32c86226b">00434</a> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#g8680f5710e1a13d553067cc32c86226b">CAN_STATE</a> {
<a name="l00436"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b7db2add3bd2ed5a01893a3d2a012ac67">00436</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b7db2add3bd2ed5a01893a3d2a012ac67" title="CAN controller is error active.">CAN_STATE_ACTIVE</a> = 0,
<a name="l00437"></a>00437
<a name="l00439"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b8e8ffc38c3886c8ab4b7a6ebd24db2e1">00439</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b8e8ffc38c3886c8ab4b7a6ebd24db2e1" title="CAN controller is error active, warning level is reached.">CAN_STATE_BUS_WARNING</a>,
<a name="l00440"></a>00440
<a name="l00442"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b16806979589ee8f20ee84c767903b667">00442</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b16806979589ee8f20ee84c767903b667" title="CAN controller is error passive.">CAN_STATE_BUS_PASSIVE</a>,
<a name="l00443"></a>00443
<a name="l00445"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b679935a8710667fcb99423d217cd9959">00445</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b679935a8710667fcb99423d217cd9959" title="CAN controller went into Bus Off.">CAN_STATE_BUS_OFF</a>,
<a name="l00446"></a>00446
<a name="l00448"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226bcc4b4039f38316b01662d775eeb981ff">00448</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226bcc4b4039f38316b01662d775eeb981ff" title="CAN controller is scanning to get the baudrate.">CAN_STATE_SCANNING_BAUDRATE</a>,
<a name="l00449"></a>00449
<a name="l00451"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b644e7a441f2e607b93528d3128508cc8">00451</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b644e7a441f2e607b93528d3128508cc8" title="CAN controller is in stopped mode.">CAN_STATE_STOPPED</a>,
<a name="l00452"></a>00452
<a name="l00454"></a><a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b2bb74d448dac491e9cfcc7f7bcc14857">00454</a> <a class="code" href="group__rtcan.html#gg8680f5710e1a13d553067cc32c86226b2bb74d448dac491e9cfcc7f7bcc14857" title="CAN controller is in Sleep mode.">CAN_STATE_SLEEPING</a>,
<a name="l00455"></a>00455 };
<a name="l00459"></a><a class="code" href="group__rtcan.html#g046ddfab86ca47210233f254bc874c6d">00459</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__rtcan.html#g8680f5710e1a13d553067cc32c86226b">CAN_STATE</a> <a class="code" href="group__rtcan.html#g046ddfab86ca47210233f254bc874c6d" title="See CAN_STATE.">can_state_t</a>;
<a name="l00460"></a>00460
<a name="l00461"></a>00461 <span class="preprocessor">#define CAN_STATE_OPERATING(state) ((state) < CAN_STATE_BUS_OFF)</span>
<a name="l00462"></a>00462 <span class="preprocessor"></span>
<a name="l00488"></a><a class="code" href="structcan__filter.html">00488</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcan__filter.html" title="Filter for reception of CAN messages.">can_filter</a> {
<a name="l00491"></a><a class="code" href="structcan__filter.html#ac0f27fee94e90063d8a80f4928e1298">00491</a> uint32_t <a class="code" href="structcan__filter.html#ac0f27fee94e90063d8a80f4928e1298" title="CAN ID which must match with incoming IDs after passing the mask.">can_id</a>;
<a name="l00492"></a>00492
<a name="l00495"></a><a class="code" href="structcan__filter.html#fa419227fe42bf1ce84a7c41600f1f90">00495</a> uint32_t <a class="code" href="structcan__filter.html#fa419227fe42bf1ce84a7c41600f1f90" title="Mask which is applied to incoming IDs.">can_mask</a>;
<a name="l00496"></a>00496 } <a class="code" href="structcan__filter.html" title="Filter for reception of CAN messages.">can_filter_t</a>;
<a name="l00497"></a>00497
<a name="l00501"></a><a class="code" href="structsockaddr__can.html">00501</a> <span class="keyword">struct </span><a class="code" href="structsockaddr__can.html" title="Socket address structure for the CAN address family.">sockaddr_can</a> {
<a name="l00503"></a><a class="code" href="structsockaddr__can.html#e9d8c789193e516c282a707d5a118ebc">00503</a> sa_family_t <a class="code" href="structsockaddr__can.html#e9d8c789193e516c282a707d5a118ebc" title="CAN address family, must be AF_CAN.">can_family</a>;
<a name="l00504"></a>00504
<a name="l00506"></a><a class="code" href="structsockaddr__can.html#f1586f4d4c039a7941f07c0d746a73a7">00506</a> <span class="keywordtype">int</span> <a class="code" href="structsockaddr__can.html#f1586f4d4c039a7941f07c0d746a73a7" title="Interface index of CAN controller.">can_ifindex</a>;
<a name="l00507"></a>00507 };
<a name="l00508"></a>00508
<a name="l00514"></a><a class="code" href="structcan__frame.html">00514</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcan__frame.html" title="Raw CAN frame.">can_frame</a> {
<a name="l00519"></a><a class="code" href="structcan__frame.html#0294f06f81a3ae0d155eb5fd14733d63">00519</a> <a class="code" href="group__rtcan.html#gd4cb716102402e9be0b5919cd2dd6ead" title="Type of CAN id (see CAN_xxx_MASK and CAN_xxx_FLAG).">can_id_t</a> <a class="code" href="structcan__frame.html#0294f06f81a3ae0d155eb5fd14733d63" title="CAN ID of the frame.">can_id</a>;
<a name="l00520"></a>00520
<a name="l00522"></a><a class="code" href="structcan__frame.html#a055f09fd81b299201618396b7dc9314">00522</a> uint8_t <a class="code" href="structcan__frame.html#a055f09fd81b299201618396b7dc9314" title="Size of the payload in bytes.">can_dlc</a>;
<a name="l00523"></a>00523
<a name="l00525"></a>00525 uint8_t data[8] <a class="code" href="structcan__frame.html#f58d971323fd8fdd65fb4b1140bc0ee5" title="Payload data bytes.">__attribute__</a> ((aligned(8)));
<a name="l00526"></a>00526 } <a class="code" href="structcan__frame.html" title="Raw CAN frame.">can_frame_t</a>;
<a name="l00527"></a>00527
<a name="l00532"></a><a class="code" href="group__rtcan.html#ge06ad16f505d1ec6c1e55d82ac82ef89">00532</a> <span class="preprocessor">#define RTCAN_TAKE_NO_TIMESTAMPS 0 </span>
<a name="l00533"></a><a class="code" href="group__rtcan.html#ge39894e7e6d107d4bab150cc0ef993c8">00533</a> <span class="preprocessor">#define RTCAN_TAKE_TIMESTAMPS 1 </span>
<a name="l00536"></a>00536 <span class="preprocessor">#define RTIOC_TYPE_CAN RTDM_CLASS_CAN</span>
<a name="l00537"></a>00537 <span class="preprocessor"></span>
<a name="l00576"></a><a class="code" href="group__rtcan.html#g87313c6e632294aa4582899a3bbc89e4">00576</a> <span class="preprocessor">#define CAN_RAW_FILTER 0x1</span>
<a name="l00577"></a>00577 <span class="preprocessor"></span>
<a name="l00606"></a><a class="code" href="group__rtcan.html#g451ba35aa4d0bef48cb7b0416f5b4367">00606</a> <span class="preprocessor">#define CAN_RAW_ERR_FILTER 0x2</span>
<a name="l00607"></a>00607 <span class="preprocessor"></span>
<a name="l00634"></a><a class="code" href="group__rtcan.html#ga7eb7dc3aa940a0aca20d3a564a147d9">00634</a> <span class="preprocessor">#define CAN_RAW_LOOPBACK 0x3</span>
<a name="l00635"></a>00635 <span class="preprocessor"></span>
<a name="l00642"></a><a class="code" href="group__rtcan.html#g712942ca3d0d621184fb2019a24677c3">00642</a> <span class="preprocessor">#define CAN_RAW_RECV_OWN_MSGS 0x4</span>
<a name="l00643"></a>00643 <span class="preprocessor"></span>
<a name="l00676"></a>00676 <span class="preprocessor">#ifdef DOXYGEN_CPP </span><span class="comment">/* For Doxygen only, already defined by kernel headers */</span>
<a name="l00677"></a><a class="code" href="group__rtcan.html#gee74ae50c8ea0a6aee277c6f124a3866">00677</a> <span class="preprocessor">#define SIOCGIFINDEX defined_by_kernel_header_file</span>
<a name="l00678"></a>00678 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00679"></a>00679 <span class="preprocessor"></span>
<a name="l00714"></a><a class="code" href="group__rtcan.html#g7c070037c218b40de849ebf4d299f977">00714</a> <span class="preprocessor">#define SIOCSCANBAUDRATE _IOW(RTIOC_TYPE_CAN, 0x01, struct ifreq)</span>
<a name="l00715"></a>00715 <span class="preprocessor"></span>
<a name="l00741"></a><a class="code" href="group__rtcan.html#g9a3032f07b3a6a2f92eb2ba25a4ff8bf">00741</a> <span class="preprocessor">#define SIOCGCANBAUDRATE _IOWR(RTIOC_TYPE_CAN, 0x02, struct ifreq)</span>
<a name="l00742"></a>00742 <span class="preprocessor"></span>
<a name="l00775"></a><a class="code" href="group__rtcan.html#g4e9547dcb608fd0b8d5cf57f926e5176">00775</a> <span class="preprocessor">#define SIOCSCANCUSTOMBITTIME _IOW(RTIOC_TYPE_CAN, 0x03, struct ifreq)</span>
<a name="l00776"></a>00776 <span class="preprocessor"></span>
<a name="l00802"></a><a class="code" href="group__rtcan.html#gb92b51127ca47c491069b9f3e5013a7f">00802</a> <span class="preprocessor">#define SIOCGCANCUSTOMBITTIME _IOWR(RTIOC_TYPE_CAN, 0x04, struct ifreq)</span>
<a name="l00803"></a>00803 <span class="preprocessor"></span>
<a name="l00845"></a><a class="code" href="group__rtcan.html#g72b56a34fe466bca858b1f5f401e1076">00845</a> <span class="preprocessor">#define SIOCSCANMODE _IOW(RTIOC_TYPE_CAN, 0x05, struct ifreq)</span>
<a name="l00846"></a>00846 <span class="preprocessor"></span>
<a name="l00879"></a><a class="code" href="group__rtcan.html#g5b5f750db08d56f40489679f22236ef4">00879</a> <span class="preprocessor">#define SIOCGCANSTATE _IOWR(RTIOC_TYPE_CAN, 0x06, struct ifreq)</span>
<a name="l00880"></a>00880 <span class="preprocessor"></span>
<a name="l00913"></a><a class="code" href="group__rtcan.html#g26fa69d2cded6e172b96b4a6dc3798df">00913</a> <span class="preprocessor">#define SIOCSCANCTRLMODE _IOW(RTIOC_TYPE_CAN, 0x07, struct ifreq)</span>
<a name="l00914"></a>00914 <span class="preprocessor"></span>
<a name="l00941"></a><a class="code" href="group__rtcan.html#ga78d64e69ffd68a20f93a6aa64393d6a">00941</a> <span class="preprocessor">#define SIOCGCANCTRLMODE _IOWR(RTIOC_TYPE_CAN, 0x08, struct ifreq)</span>
<a name="l00942"></a>00942 <span class="preprocessor"></span>
<a name="l00968"></a><a class="code" href="group__rtcan.html#gedd7bd75a1983735052fed62e101e5ce">00968</a> <span class="preprocessor">#define RTCAN_RTIOC_TAKE_TIMESTAMP _IOW(RTIOC_TYPE_CAN, 0x09, int)</span>
<a name="l00969"></a>00969 <span class="preprocessor"></span>
<a name="l01001"></a><a class="code" href="group__rtcan.html#gd8af08ea3624e8e9c464ff143fcb66c0">01001</a> <span class="preprocessor">#define RTCAN_RTIOC_RCV_TIMEOUT _IOW(RTIOC_TYPE_CAN, 0x0A, nanosecs_rel_t)</span>
<a name="l01002"></a>01002 <span class="preprocessor"></span>
<a name="l01034"></a><a class="code" href="group__rtcan.html#gd3758528585b2779e8949df671f1cf6c">01034</a> <span class="preprocessor">#define RTCAN_RTIOC_SND_TIMEOUT _IOW(RTIOC_TYPE_CAN, 0x0B, nanosecs_rel_t)</span>
<a name="l01035"></a>01035 <span class="preprocessor"></span>
<a name="l01037"></a>01037 <span class="preprocessor">#define CAN_ERR_DLC 8 </span><span class="comment">/* dlc for error frames */</span>
<a name="l01038"></a>01038
<a name="l01059"></a><a class="code" href="group__rtcan.html#g168d1c5d468bad5e52ccbd70c5f37986">01059</a> <span class="preprocessor">#define CAN_ERR_TX_TIMEOUT 0x00000001U</span>
<a name="l01060"></a>01060 <span class="preprocessor"></span>
<a name="l01062"></a><a class="code" href="group__rtcan.html#ga79a977211fe6534a627541f71373df0">01062</a> <span class="preprocessor">#define CAN_ERR_LOSTARB 0x00000002U</span>
<a name="l01063"></a>01063 <span class="preprocessor"></span>
<a name="l01065"></a><a class="code" href="group__rtcan.html#g8086092a2e40c1b0429caaad3b2c8675">01065</a> <span class="preprocessor">#define CAN_ERR_CRTL 0x00000004U</span>
<a name="l01066"></a>01066 <span class="preprocessor"></span>
<a name="l01069"></a><a class="code" href="group__rtcan.html#g0fdfaa2091c61c2db8caa7a51e8c0037">01069</a> <span class="preprocessor">#define CAN_ERR_PROT 0x00000008U</span>
<a name="l01070"></a>01070 <span class="preprocessor"></span>
<a name="l01072"></a><a class="code" href="group__rtcan.html#gf0026f916a985610cc449ffa6a31445f">01072</a> <span class="preprocessor">#define CAN_ERR_TRX 0x00000010U</span>
<a name="l01073"></a>01073 <span class="preprocessor"></span>
<a name="l01075"></a><a class="code" href="group__rtcan.html#gdbe83f5e81c1c8c767daaf97c5849017">01075</a> <span class="preprocessor">#define CAN_ERR_ACK 0x00000020U</span>
<a name="l01076"></a>01076 <span class="preprocessor"></span>
<a name="l01078"></a><a class="code" href="group__rtcan.html#g8b0903e35c75de100b97a7b3e368b269">01078</a> <span class="preprocessor">#define CAN_ERR_BUSOFF 0x00000040U</span>
<a name="l01079"></a>01079 <span class="preprocessor"></span>
<a name="l01081"></a><a class="code" href="group__rtcan.html#g0b068b1221129441b89967ee2ddb9f44">01081</a> <span class="preprocessor">#define CAN_ERR_BUSERROR 0x00000080U</span>
<a name="l01082"></a>01082 <span class="preprocessor"></span>
<a name="l01084"></a><a class="code" href="group__rtcan.html#g54583090d19940d761a224bc0801ec6a">01084</a> <span class="preprocessor">#define CAN_ERR_RESTARTED 0x00000100U</span>
<a name="l01085"></a>01085 <span class="preprocessor"></span>
<a name="l01087"></a><a class="code" href="group__rtcan.html#gd4061a08b8c5aa6de3bb390efd3b6bd6">01087</a> <span class="preprocessor">#define CAN_ERR_MASK 0x1FFFFFFFU</span>
<a name="l01088"></a>01088 <span class="preprocessor"></span>
<a name="l01095"></a>01095 <span class="comment">/* arbitration lost in bit ... / data[0] */</span>
<a name="l01096"></a><a class="code" href="group__rtcan.html#g7fa1bc55bccfadf780c0556c7d4d7fef">01096</a> <span class="preprocessor">#define CAN_ERR_LOSTARB_UNSPEC 0x00 </span>
<a name="l01104"></a>01104 <span class="preprocessor"></span><span class="comment">/* error status of CAN-controller / data[1] */</span>
<a name="l01105"></a><a class="code" href="group__rtcan.html#gfcdc17774047f27e70f3c39f6fb66076">01105</a> <span class="preprocessor">#define CAN_ERR_CRTL_UNSPEC 0x00 </span>
<a name="l01106"></a><a class="code" href="group__rtcan.html#g23d6f05d55b62fffdbd0a50969bc2d04">01106</a> <span class="preprocessor">#define CAN_ERR_CRTL_RX_OVERFLOW 0x01 </span>
<a name="l01107"></a><a class="code" href="group__rtcan.html#gb1412f1e2cc4f23334ed5ea766d12006">01107</a> <span class="preprocessor">#define CAN_ERR_CRTL_TX_OVERFLOW 0x02 </span>
<a name="l01108"></a><a class="code" href="group__rtcan.html#ge93958bbabe5e2e6d328d8fa5d491a96">01108</a> <span class="preprocessor">#define CAN_ERR_CRTL_RX_WARNING 0x04 </span>
<a name="l01109"></a><a class="code" href="group__rtcan.html#gb46d1dddb458203ca07e0c351275c549">01109</a> <span class="preprocessor">#define CAN_ERR_CRTL_TX_WARNING 0x08 </span>
<a name="l01110"></a><a class="code" href="group__rtcan.html#g853db0a1bf833caea89e3597a0123c11">01110</a> <span class="preprocessor">#define CAN_ERR_CRTL_RX_PASSIVE 0x10 </span>
<a name="l01111"></a><a class="code" href="group__rtcan.html#g29185de9d3b35414a729af6e0fad6574">01111</a> <span class="preprocessor">#define CAN_ERR_CRTL_TX_PASSIVE 0x20 </span>
<a name="l01118"></a>01118 <span class="preprocessor"></span><span class="comment">/* error in CAN protocol (type) / data[2] */</span>
<a name="l01119"></a><a class="code" href="group__rtcan.html#g6cf7ee3a3d83315ed2589bb3bdb816b3">01119</a> <span class="preprocessor">#define CAN_ERR_PROT_UNSPEC 0x00 </span>
<a name="l01120"></a><a class="code" href="group__rtcan.html#g0443c62a7e861f429f51c7bb6dc4ee23">01120</a> <span class="preprocessor">#define CAN_ERR_PROT_BIT 0x01 </span>
<a name="l01121"></a><a class="code" href="group__rtcan.html#ge8f76071caf3ac10abb88be4347b9625">01121</a> <span class="preprocessor">#define CAN_ERR_PROT_FORM 0x02 </span>
<a name="l01122"></a><a class="code" href="group__rtcan.html#g31af2ea01de879fb1d153cb6c0d642f8">01122</a> <span class="preprocessor">#define CAN_ERR_PROT_STUFF 0x04 </span>
<a name="l01123"></a><a class="code" href="group__rtcan.html#g1b469132ce858c4a0222e367b986343a">01123</a> <span class="preprocessor">#define CAN_ERR_PROT_BIT0 0x08 </span>
<a name="l01124"></a><a class="code" href="group__rtcan.html#g13e44854f6873a4a08ba2c9de0544471">01124</a> <span class="preprocessor">#define CAN_ERR_PROT_BIT1 0x10 </span>
<a name="l01125"></a><a class="code" href="group__rtcan.html#g0c02b06cad0d95b340c1b6294a5f9f9f">01125</a> <span class="preprocessor">#define CAN_ERR_PROT_OVERLOAD 0x20 </span>
<a name="l01126"></a><a class="code" href="group__rtcan.html#g460ee0be98290e6916f85c8651d6de05">01126</a> <span class="preprocessor">#define CAN_ERR_PROT_ACTIVE 0x40 </span>
<a name="l01127"></a><a class="code" href="group__rtcan.html#gbee807ce2e8ccf6eafc9b6f73a9315fb">01127</a> <span class="preprocessor">#define CAN_ERR_PROT_TX 0x80 </span>
<a name="l01134"></a>01134 <span class="preprocessor"></span><span class="comment">/* error in CAN protocol (location) / data[3] */</span>
<a name="l01135"></a><a class="code" href="group__rtcan.html#g4ac83a947ca929b857af6352300ad6d8">01135</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_UNSPEC 0x00 </span>
<a name="l01136"></a><a class="code" href="group__rtcan.html#ga7a2392801977b667a4d39083d0c92c3">01136</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_SOF 0x03 </span>
<a name="l01137"></a><a class="code" href="group__rtcan.html#g0592a90c8dba2c8102479e184dcd6c62">01137</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ID28_21 0x02 </span>
<a name="l01138"></a><a class="code" href="group__rtcan.html#g240923d7f939dd08d2e4f434468e3006">01138</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ID20_18 0x06 </span>
<a name="l01139"></a><a class="code" href="group__rtcan.html#gd70fa4d644d5b71f8891de051643226a">01139</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_SRTR 0x04 </span>
<a name="l01140"></a><a class="code" href="group__rtcan.html#g4fe7a2839d2ca31e8dd383564b1865c1">01140</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_IDE 0x05 </span>
<a name="l01141"></a><a class="code" href="group__rtcan.html#gbb436ab756394e8844a3925edd92b95c">01141</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ID17_13 0x07 </span>
<a name="l01142"></a><a class="code" href="group__rtcan.html#gfd6cd3681ebf245896d282daabdac0b7">01142</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ID12_05 0x0F </span>
<a name="l01143"></a><a class="code" href="group__rtcan.html#g00bc04bfcae8d6486aa149cd19dd6102">01143</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ID04_00 0x0E </span>
<a name="l01144"></a><a class="code" href="group__rtcan.html#g79567d5df1287ccdd1966d092b5e047c">01144</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_RTR 0x0C </span>
<a name="l01145"></a><a class="code" href="group__rtcan.html#g13aa190099e1600314bb8e46e0a693ce">01145</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_RES1 0x0D </span>
<a name="l01146"></a><a class="code" href="group__rtcan.html#gfe744ebfd9a71b557d3059bc3f8aee56">01146</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_RES0 0x09 </span>
<a name="l01147"></a><a class="code" href="group__rtcan.html#g2aa0ab15f3f4fc974653ff556688046a">01147</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_DLC 0x0B </span>
<a name="l01148"></a><a class="code" href="group__rtcan.html#g1877b10333d3805f2ea1ef9195a8dee1">01148</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_DATA 0x0A </span>
<a name="l01149"></a><a class="code" href="group__rtcan.html#g1e56b5931c70b6ecf21a3b7d9ceebe16">01149</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_CRC_SEQ 0x08 </span>
<a name="l01150"></a><a class="code" href="group__rtcan.html#g893a0c29cb622265c5d22ba7f26575a2">01150</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_CRC_DEL 0x18 </span>
<a name="l01151"></a><a class="code" href="group__rtcan.html#g14988a58a4514b44061ab5b942c6bbdf">01151</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ACK 0x19 </span>
<a name="l01152"></a><a class="code" href="group__rtcan.html#g8e928e081ef83a83c2885259fc0a6002">01152</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_ACK_DEL 0x1B </span>
<a name="l01153"></a><a class="code" href="group__rtcan.html#g811713c9831116e6e6c42631fb7d287a">01153</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_EOF 0x1A </span>
<a name="l01154"></a><a class="code" href="group__rtcan.html#gc52eb448c0ec04421f0e21ccf9a496a0">01154</a> <span class="preprocessor">#define CAN_ERR_PROT_LOC_INTERM 0x12 </span>
<a name="l01161"></a>01161 <span class="preprocessor"></span><span class="comment">/* error status of CAN-transceiver / data[4] */</span>
<a name="l01162"></a>01162 <span class="comment">/* CANH CANL */</span>
<a name="l01163"></a><a class="code" href="group__rtcan.html#g2169eab29b3c954598fe6780d98b479a">01163</a> <span class="preprocessor">#define CAN_ERR_TRX_UNSPEC 0x00 </span>
<a name="l01164"></a><a class="code" href="group__rtcan.html#gc39d4c89032cba5c08981182e297c7d7">01164</a> <span class="preprocessor">#define CAN_ERR_TRX_CANH_NO_WIRE 0x04 </span>
<a name="l01165"></a><a class="code" href="group__rtcan.html#g294393d4f39d4476d0c57876c3504a98">01165</a> <span class="preprocessor">#define CAN_ERR_TRX_CANH_SHORT_TO_BAT 0x05 </span>
<a name="l01166"></a><a class="code" href="group__rtcan.html#g85ab738e9c73d380f96371f195aa41ab">01166</a> <span class="preprocessor">#define CAN_ERR_TRX_CANH_SHORT_TO_VCC 0x06 </span>
<a name="l01167"></a><a class="code" href="group__rtcan.html#g325c4d192a7de24a61b8fcca1d434669">01167</a> <span class="preprocessor">#define CAN_ERR_TRX_CANH_SHORT_TO_GND 0x07 </span>
<a name="l01168"></a><a class="code" href="group__rtcan.html#g1ecc59939f560d7e018af307df03a370">01168</a> <span class="preprocessor">#define CAN_ERR_TRX_CANL_NO_WIRE 0x40 </span>
<a name="l01169"></a><a class="code" href="group__rtcan.html#gf4ec9ec512befde085f5a7701d0813fe">01169</a> <span class="preprocessor">#define CAN_ERR_TRX_CANL_SHORT_TO_BAT 0x50 </span>
<a name="l01170"></a><a class="code" href="group__rtcan.html#gce999081029fcd690f89c76aa8738122">01170</a> <span class="preprocessor">#define CAN_ERR_TRX_CANL_SHORT_TO_VCC 0x60 </span>
<a name="l01171"></a><a class="code" href="group__rtcan.html#g428b96738439b9df662a999f1a5f9ffd">01171</a> <span class="preprocessor">#define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70 </span>
<a name="l01172"></a><a class="code" href="group__rtcan.html#gaed57dcbd07a56050c8915fcd8bd5ba8">01172</a> <span class="preprocessor">#define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80 </span>
<a name="l01175"></a>01175 <span class="preprocessor"></span><span class="comment">/* controller specific additional information / data[5..7] */</span>
<a name="l01176"></a>01176
<a name="l01190"></a>01190 <span class="preprocessor">#endif </span><span class="comment">/* _RTCAN_H */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Aug 2 12:48:36 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>
|