<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CanFestival: drivers/unix/unix.c 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.1 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="dir_d58fb241e647de6212c31ecccf9cbace.html">drivers</a> » <a class="el" href="dir_6da7fb7606ab88af9c782bbceb5cfb77.html">unix</a></div>
<h1>unix.c File Reference</h1><code>#include <unistd.h></code><br>
<code>#include <stdio.h></code><br>
<code>#include <stdlib.h></code><br>
<code>#include "<a class="el" href="data_8h-source.html">data.h</a>"</code><br>
<code>#include "<a class="el" href="win32_2canfestival_8h-source.html">canfestival.h</a>"</code><br>
<code>#include "<a class="el" href="timers__driver_8h-source.html">timers_driver.h</a>"</code><br>
<code>#include "<a class="el" href="can__driver_8h-source.html">can_driver.h</a>"</code><br>
<p>
Include dependency graph for unix.c:<p><center><img src="unix_8c__incl.png" border="0" usemap="#drivers/unix/unix.c_map" alt=""></center>
<map name="drivers/unix/unix.c_map">
<area href="data_8h.html" shape="rect" coords="394,176,458,200" alt="">
<area href="win32_2canfestival_8h.html" shape="rect" coords="211,200,318,224" alt="">
<area href="can__driver_8h.html" shape="rect" coords="374,224,478,248" alt="">
<area href="timers__driver_8h.html" shape="rect" coords="203,299,326,323" alt="">
</map>
<p>
<a href="unix_8c-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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structCANPort.html">CANPort</a></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#74c6a27b44fd54de5cb021299ffce612">DLL_CALL</a>(funcname) (* funcname##_driver)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#7f7ce94bf48fde67f4af7b64c7ca4c85">FCT_PTR_INIT</a> =NULL</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#2af8b26c5600696a026aa95fe49b9dc9">DLSYM</a>(name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#c2f10bc5b98269f33af8a74299236e03">MAX_NB_CAN_PORTS</a> 16</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">UNS8 </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#cb4f394ec0e040c5962d3dc1957505fb">UnLoadCanDriver</a> (<a class="el" href="win32_2canfestival_8h.html#c4a0f44120dee396ab6bb57e23effaa8">LIB_HANDLE</a> handle)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="win32_2canfestival_8h.html#c4a0f44120dee396ab6bb57e23effaa8">LIB_HANDLE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#a6eed61fc15f41f772d4645d7a5edeb5">LoadCanDriver</a> (char *driver_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">UNS8 </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#8d1909a09c50c750e4d8626595acd9f6">canSend</a> (<a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> port, <a class="el" href="structMessage.html">Message</a> *m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#45ceca3727c2fb7ac93958a215efb827">canReceiveLoop</a> (<a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> port)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#7476146ad15948a22e7f80a00c89c40a">canOpen</a> (<a class="el" href="structstruct__s__BOARD.html">s_BOARD</a> *board, <a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#02957f72a9b951603adb98a142bd447b">canClose</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d)</td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structCANPort.html">CANPort</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="unix_8c.html#0b740cf913752262ceb23d51648da86a">canports</a> [MAX_NB_CAN_PORTS] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,}}</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="74c6a27b44fd54de5cb021299ffce612"></a><!-- doxytag: member="unix.c::DLL_CALL" ref="74c6a27b44fd54de5cb021299ffce612" args="(funcname)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DLL_CALL </td>
<td>(</td>
<td class="paramtype">funcname </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> (* funcname##_driver)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00027">27</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00178">canClose()</a>, <a class="el" href="unix_8c-source.html#l00145">canOpen()</a>, <a class="el" href="unix_8c-source.html#l00132">canReceiveLoop()</a>, and <a class="el" href="unix_8c-source.html#l00120">canSend()</a>.
</div>
</div><p>
<a class="anchor" name="2af8b26c5600696a026aa95fe49b9dc9"></a><!-- doxytag: member="unix.c::DLSYM" ref="2af8b26c5600696a026aa95fe49b9dc9" args="(name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DLSYM </td>
<td>(</td>
<td class="paramtype">name </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">*(<span class="keywordtype">void</span> **) (&name##_driver) = dlsym(handle, #name<span class="stringliteral">"_driver"</span>);\
<span class="keywordflow">if</span> ((error = dlerror()) != NULL) {\
fprintf (stderr, <span class="stringliteral">"%s\n"</span>, error);\
<a class="code" href="unix_8c.html#cb4f394ec0e040c5962d3dc1957505fb">UnLoadCanDriver</a>(handle);\
<span class="keywordflow">return</span> NULL;\
}
</pre></div>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00030">30</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00084">LoadCanDriver()</a>.
</div>
</div><p>
<a class="anchor" name="7f7ce94bf48fde67f4af7b64c7ca4c85"></a><!-- doxytag: member="unix.c::FCT_PTR_INIT" ref="7f7ce94bf48fde67f4af7b64c7ca4c85" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FCT_PTR_INIT =NULL </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00028">28</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
</div>
</div><p>
<a class="anchor" name="c2f10bc5b98269f33af8a74299236e03"></a><!-- doxytag: member="unix.c::MAX_NB_CAN_PORTS" ref="c2f10bc5b98269f33af8a74299236e03" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_NB_CAN_PORTS 16 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00049">49</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00145">canOpen()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="02957f72a9b951603adb98a142bd447b"></a><!-- doxytag: member="unix.c::canClose" ref="02957f72a9b951603adb98a142bd447b" args="(CO_Data *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int canClose </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00178">178</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00178">canClose()</a>, <a class="el" href="unix_8c-source.html#l00084">LoadCanDriver()</a>, and <a class="el" href="TestMasterMicroMod_8c-source.html#l00397">main()</a>.
</div>
</div><p>
<a class="anchor" name="7476146ad15948a22e7f80a00c89c40a"></a><!-- doxytag: member="unix.c::canOpen" ref="7476146ad15948a22e7f80a00c89c40a" args="(s_BOARD *board, CO_Data *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> canOpen </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__s__BOARD.html">s_BOARD</a> * </td>
<td class="paramname"> <em>board</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00145">145</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00145">canOpen()</a>, <a class="el" href="unix_8c-source.html#l00084">LoadCanDriver()</a>, and <a class="el" href="TestMasterMicroMod_8c-source.html#l00397">main()</a>.
</div>
</div><p>
<a class="anchor" name="45ceca3727c2fb7ac93958a215efb827"></a><!-- doxytag: member="unix.c::canReceiveLoop" ref="45ceca3727c2fb7ac93958a215efb827" args="(CAN_PORT port)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void canReceiveLoop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> </td>
<td class="paramname"> <em>port</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00132">132</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
References <a class="el" href="states_8c-source.html#l00065">canDispatch()</a>, <a class="el" href="drivers__win32_8cpp-source.html#l00124">canReceive()</a>, <a class="el" href="unix_8c-source.html#l00027">DLL_CALL</a>, <a class="el" href="timers__unix_8c-source.html#l00020">EnterMutex()</a>, and <a class="el" href="timers__unix_8c-source.html#l00025">LeaveMutex()</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00145">canOpen()</a>.
<p>
Here is the call graph for this function:<p><center><img src="unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph.png" border="0" usemap="#unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph_map" alt=""></center>
<map name="unix_8c_45ceca3727c2fb7ac93958a215efb827_cgraph_map">
<area href="states_8c.html#3f8975650604cc23582f19a43fd4e518" shape="rect" coords="188,102,292,126" alt="">
<area href="drivers__win32_8cpp.html#c608a4ba478a809fd963a342a24226fd" shape="rect" coords="191,150,290,174" alt="">
<area href="timers__unix_8c.html#d7fee43b8a44cf8b7036853593044037" shape="rect" coords="191,198,290,222" alt="">
<area href="timers__unix_8c.html#73d9a4eb941fb20cf6b597840510394b" shape="rect" coords="188,246,292,270" alt="">
<area href="nmtSlave_8c.html#97d175ea168c149c99b01dcde0989743" shape="rect" coords="343,6,532,30" alt="">
<area href="lifegrd_8c.html#b3248945e06e8b05518beddf665f174d" shape="rect" coords="352,54,523,78" alt="">
<area href="pdo_8c.html#ae7d661cd3ef7adf93a0d08fdb15b7f2" shape="rect" coords="386,102,490,126" alt="">
<area href="sdo_8c.html#2a93a7c780472b1d8666d89aa270f661" shape="rect" coords="384,150,491,174" alt="">
<area href="sync_8c.html#80cadcba23dc859db8a8d3f52789d6d1" shape="rect" coords="382,198,494,222" alt="">
</map>
</div>
</div><p>
<a class="anchor" name="8d1909a09c50c750e4d8626595acd9f6"></a><!-- doxytag: member="unix.c::canSend" ref="8d1909a09c50c750e4d8626595acd9f6" args="(CAN_PORT port, Message *m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UNS8 canSend </td>
<td>(</td>
<td class="paramtype"><a class="el" href="win32_2applicfg_8h.html#7ef59f941603c6680e74fc335523f17e">CAN_PORT</a> </td>
<td class="paramname"> <em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structMessage.html">Message</a> * </td>
<td class="paramname"> <em>m</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00120">120</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
</div>
</div><p>
<a class="anchor" name="a6eed61fc15f41f772d4645d7a5edeb5"></a><!-- doxytag: member="unix.c::LoadCanDriver" ref="a6eed61fc15f41f772d4645d7a5edeb5" args="(char *driver_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="win32_2canfestival_8h.html#c4a0f44120dee396ab6bb57e23effaa8">LIB_HANDLE</a> LoadCanDriver </td>
<td>(</td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>driver_name</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00084">84</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="TestMasterMicroMod_8c-source.html#l00397">main()</a>.
</div>
</div><p>
<a class="anchor" name="cb4f394ec0e040c5962d3dc1957505fb"></a><!-- doxytag: member="unix.c::UnLoadCanDriver" ref="cb4f394ec0e040c5962d3dc1957505fb" args="(LIB_HANDLE handle)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UNS8 UnLoadCanDriver </td>
<td>(</td>
<td class="paramtype"><a class="el" href="win32_2canfestival_8h.html#c4a0f44120dee396ab6bb57e23effaa8">LIB_HANDLE</a> </td>
<td class="paramname"> <em>handle</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00071">71</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="0b740cf913752262ceb23d51648da86a"></a><!-- doxytag: member="unix.c::canports" ref="0b740cf913752262ceb23d51648da86a" args="[MAX_NB_CAN_PORTS]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structCANPort.html">CANPort</a> <a class="el" href="unix_8c.html#0b740cf913752262ceb23d51648da86a">canports</a>[MAX_NB_CAN_PORTS] = {{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,},{0,}} </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="unix_8c-source.html#l00066">66</a> of file <a class="el" href="unix_8c-source.html">unix.c</a>.
<p>
Referenced by <a class="el" href="unix_8c-source.html#l00145">canOpen()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:43 2007 for CanFestival by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>