Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 1e18de15f01376aee497a40d2f5cdacc > files > 85

libbrlapi-devel-4.5-16.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>BrlAPI: BrlAPI&#39;s protocol</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">BrlAPI
   &#160;<span id="projectnumber">1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">BrlAPI's protocol</div>  </div>
</div><!--header-->
<div class="contents">

<p>Instructions and constants for <em>BrlAPI</em> 's protocol.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__header__t.html">brlapi_header_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__versionPacket__t.html">brlapi_versionPacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__authClientPacket__t.html">brlapi_authClientPacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__authServerPacket__t.html">brlapi_authServerPacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__errorPacket__t.html">brlapi_errorPacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__getDriverSpecificModePacket__t.html">brlapi_getDriverSpecificModePacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbrlapi__writeArgumentsPacket__t.html">brlapi_writeArgumentsPacket_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionbrlapi__packet__t.html">brlapi_packet_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga474ab793dc36cc75725fe2db0f6539cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga474ab793dc36cc75725fe2db0f6539cd">BRLAPI_PROTOCOL_VERSION</a>&#160;&#160;&#160;((uint32_t) 8) /** Communication protocol version */</td></tr>
<tr class="separator:ga474ab793dc36cc75725fe2db0f6539cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga226a35313d1fb8e6ce43b45a040b8060"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga226a35313d1fb8e6ce43b45a040b8060">BRLAPI_MAXPACKETSIZE</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:ga226a35313d1fb8e6ce43b45a040b8060"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59dd4fd2ec9a136698f981134c1bf413"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga59dd4fd2ec9a136698f981134c1bf413">BRLAPI_PACKET_VERSION</a>&#160;&#160;&#160;'v'</td></tr>
<tr class="separator:ga59dd4fd2ec9a136698f981134c1bf413"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56aa34e93567c9c311e4bacb1590ae94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga56aa34e93567c9c311e4bacb1590ae94">BRLAPI_PACKET_AUTH</a>&#160;&#160;&#160;'a'</td></tr>
<tr class="separator:ga56aa34e93567c9c311e4bacb1590ae94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac87f258167cb6a0399b9530e517a36ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gac87f258167cb6a0399b9530e517a36ee">BRLAPI_PACKET_GETDRIVERNAME</a>&#160;&#160;&#160;'n'</td></tr>
<tr class="separator:gac87f258167cb6a0399b9530e517a36ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60ad67d097729a904b4e6183844a9e64"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga60ad67d097729a904b4e6183844a9e64">BRLAPI_PACKET_GETDISPLAYSIZE</a>&#160;&#160;&#160;'s'</td></tr>
<tr class="separator:ga60ad67d097729a904b4e6183844a9e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab60182f624fd198cf6c1d5f8acfd4c23"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gab60182f624fd198cf6c1d5f8acfd4c23">BRLAPI_PACKET_ENTERTTYMODE</a>&#160;&#160;&#160;'t'</td></tr>
<tr class="separator:gab60182f624fd198cf6c1d5f8acfd4c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3e8402995513974ce2df4f021deb8a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gaf3e8402995513974ce2df4f021deb8a6">BRLAPI_PACKET_SETFOCUS</a>&#160;&#160;&#160;'F'</td></tr>
<tr class="separator:gaf3e8402995513974ce2df4f021deb8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78ff97595dd705e7a1c9cd26966aede3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga78ff97595dd705e7a1c9cd26966aede3">BRLAPI_PACKET_LEAVETTYMODE</a>&#160;&#160;&#160;'L'</td></tr>
<tr class="separator:ga78ff97595dd705e7a1c9cd26966aede3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47e630b382b8c98e49d5d0e4fe7bbfe4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga47e630b382b8c98e49d5d0e4fe7bbfe4">BRLAPI_PACKET_KEY</a>&#160;&#160;&#160;'k'</td></tr>
<tr class="separator:ga47e630b382b8c98e49d5d0e4fe7bbfe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e9a2ae1a27efdf11f5d11fca2d024c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga7e9a2ae1a27efdf11f5d11fca2d024c2">BRLAPI_PACKET_IGNOREKEYRANGES</a>&#160;&#160;&#160;'m'</td></tr>
<tr class="separator:ga7e9a2ae1a27efdf11f5d11fca2d024c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga804976f89df42ad6034da62c22369ee5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga804976f89df42ad6034da62c22369ee5">BRLAPI_PACKET_ACCEPTKEYRANGES</a>&#160;&#160;&#160;'u'</td></tr>
<tr class="separator:ga804976f89df42ad6034da62c22369ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30fd33abe54249e0df012e0672555b96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga30fd33abe54249e0df012e0672555b96">BRLAPI_PACKET_WRITE</a>&#160;&#160;&#160;'w'</td></tr>
<tr class="separator:ga30fd33abe54249e0df012e0672555b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4dbb5f494c14c61b2cfed257773225e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga4dbb5f494c14c61b2cfed257773225e7">BRLAPI_PACKET_ENTERRAWMODE</a>&#160;&#160;&#160;'*'</td></tr>
<tr class="separator:ga4dbb5f494c14c61b2cfed257773225e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26f54245797674956773c5d605952fd0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga26f54245797674956773c5d605952fd0">BRLAPI_PACKET_LEAVERAWMODE</a>&#160;&#160;&#160;'#'</td></tr>
<tr class="separator:ga26f54245797674956773c5d605952fd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadacd3f3d969abfbfe1646082fc7cbcdf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gadacd3f3d969abfbfe1646082fc7cbcdf">BRLAPI_PACKET_PACKET</a>&#160;&#160;&#160;'p'</td></tr>
<tr class="separator:gadacd3f3d969abfbfe1646082fc7cbcdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga242e2ac3823cc0f01d59892e2d8b978c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga242e2ac3823cc0f01d59892e2d8b978c">BRLAPI_PACKET_ACK</a>&#160;&#160;&#160;'A'</td></tr>
<tr class="separator:ga242e2ac3823cc0f01d59892e2d8b978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46b4fac6b43d157b6f2876da38057c3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga46b4fac6b43d157b6f2876da38057c3e">BRLAPI_PACKET_ERROR</a>&#160;&#160;&#160;'e'</td></tr>
<tr class="separator:ga46b4fac6b43d157b6f2876da38057c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac795fbf998dddc46a022c94fa249d25b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gac795fbf998dddc46a022c94fa249d25b">BRLAPI_PACKET_EXCEPTION</a>&#160;&#160;&#160;'E'</td></tr>
<tr class="separator:gac795fbf998dddc46a022c94fa249d25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c12ffe4fa36cfa3a9f43422d05b204"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga26c12ffe4fa36cfa3a9f43422d05b204">BRLAPI_PACKET_SUSPENDDRIVER</a>&#160;&#160;&#160;'S'</td></tr>
<tr class="separator:ga26c12ffe4fa36cfa3a9f43422d05b204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ca55799c3e9b227f43e7539bce32438"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga0ca55799c3e9b227f43e7539bce32438">BRLAPI_PACKET_RESUMEDRIVER</a>&#160;&#160;&#160;'R'</td></tr>
<tr class="separator:ga0ca55799c3e9b227f43e7539bce32438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51947eca7c98c48dd65947de7dd007b7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga51947eca7c98c48dd65947de7dd007b7">BRLAPI_DEVICE_MAGIC</a>&#160;&#160;&#160;(0xdeadbeefL)</td></tr>
<tr class="separator:ga51947eca7c98c48dd65947de7dd007b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5b2bfe3d15d25b0484c4c58f400ae3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gad5b2bfe3d15d25b0484c4c58f400ae3d">BRLAPI_HEADERSIZE</a>&#160;&#160;&#160;sizeof(<a class="el" href="structbrlapi__header__t.html">brlapi_header_t</a>)</td></tr>
<tr class="separator:gad5b2bfe3d15d25b0484c4c58f400ae3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga367c679d5be38322a005ae2940369392"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga367c679d5be38322a005ae2940369392">BRLAPI_AUTH_NONE</a>&#160;&#160;&#160;'N'</td></tr>
<tr class="separator:ga367c679d5be38322a005ae2940369392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa792a6efca4665fd11ad25fce8a9a510"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gaa792a6efca4665fd11ad25fce8a9a510">BRLAPI_AUTH_KEY</a>&#160;&#160;&#160;'K'</td></tr>
<tr class="separator:gaa792a6efca4665fd11ad25fce8a9a510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34a2e40089d7cc4474f5248766355d3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga34a2e40089d7cc4474f5248766355d3d">BRLAPI_AUTH_CRED</a>&#160;&#160;&#160;'C'</td></tr>
<tr class="separator:ga34a2e40089d7cc4474f5248766355d3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59759e6252e19d27f7ef0fd2fd4999f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga59759e6252e19d27f7ef0fd2fd4999f9">BRLAPI_WF_DISPLAYNUMBER</a>&#160;&#160;&#160;0X01</td></tr>
<tr class="separator:ga59759e6252e19d27f7ef0fd2fd4999f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d7548291609530a85dfc024b67bc451"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga8d7548291609530a85dfc024b67bc451">BRLAPI_WF_REGION</a>&#160;&#160;&#160;0X02</td></tr>
<tr class="separator:ga8d7548291609530a85dfc024b67bc451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf120e757b447b2454adae26bbc9f653f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gaf120e757b447b2454adae26bbc9f653f">BRLAPI_WF_TEXT</a>&#160;&#160;&#160;0X04</td></tr>
<tr class="separator:gaf120e757b447b2454adae26bbc9f653f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ed86ddb71fd7ba23314c1eab176b67b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga9ed86ddb71fd7ba23314c1eab176b67b">BRLAPI_WF_ATTR_AND</a>&#160;&#160;&#160;0X08</td></tr>
<tr class="separator:ga9ed86ddb71fd7ba23314c1eab176b67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1d8b05d14559b90367e532a4909d56e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gac1d8b05d14559b90367e532a4909d56e">BRLAPI_WF_ATTR_OR</a>&#160;&#160;&#160;0X10</td></tr>
<tr class="separator:gac1d8b05d14559b90367e532a4909d56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e2bd4369f039add78e2b3d112f77978"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga7e2bd4369f039add78e2b3d112f77978">BRLAPI_WF_CURSOR</a>&#160;&#160;&#160;0X20</td></tr>
<tr class="separator:ga7e2bd4369f039add78e2b3d112f77978"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da000ca3c25898208885cda63032250"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga2da000ca3c25898208885cda63032250">BRLAPI_WF_CHARSET</a>&#160;&#160;&#160;0X40</td></tr>
<tr class="separator:ga2da000ca3c25898208885cda63032250"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gabc8a0c3fe653b8d44059aee810c5b35a"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket</a> (<a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a> fd, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *buf, size_t size)</td></tr>
<tr class="separator:gabc8a0c3fe653b8d44059aee810c5b35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fa149ae4b0f1adcf8f514ebc9a1f45f"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga3fa149ae4b0f1adcf8f514ebc9a1f45f">brlapi_readPacketHeader</a> (<a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a> fd, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> *packetType)</td></tr>
<tr class="separator:ga3fa149ae4b0f1adcf8f514ebc9a1f45f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a963be14210e5706f16b57a2f388e6e"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga6a963be14210e5706f16b57a2f388e6e">brlapi_readPacketContent</a> (<a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a> fd, size_t packetSize, void *buf, size_t bufSize)</td></tr>
<tr class="separator:ga6a963be14210e5706f16b57a2f388e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga593411f2c9306ff774eb854f78eaa18b"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket</a> (<a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a> fd, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> *type, void *buf, size_t size)</td></tr>
<tr class="separator:ga593411f2c9306ff774eb854f78eaa18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga2e20749820ad75c8b455310565092724"><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__protocol.html#ga2e20749820ad75c8b455310565092724">brlapi_fd_mutex</a></td></tr>
<tr class="separator:ga2e20749820ad75c8b455310565092724"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>These are defines for the protocol between <em>BrlAPI</em> 's server and clients. Understanding is not needed to use the <em>BrlAPI</em> library, so reading this is not needed unless really wanting to connect to <em>BrlAPI</em> without <em>BrlAPI</em> 's library. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga34a2e40089d7cc4474f5248766355d3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_AUTH_CRED&#160;&#160;&#160;'C'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Explicit socket credentials authorization </p>

</div>
</div>
<a class="anchor" id="gaa792a6efca4665fd11ad25fce8a9a510"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_AUTH_KEY&#160;&#160;&#160;'K'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key authorization </p>

</div>
</div>
<a class="anchor" id="ga367c679d5be38322a005ae2940369392"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_AUTH_NONE&#160;&#160;&#160;'N'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>No or implicit authorization </p>

</div>
</div>
<a class="anchor" id="ga51947eca7c98c48dd65947de7dd007b7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_DEVICE_MAGIC&#160;&#160;&#160;(0xdeadbeefL)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Magic number to give when sending a BRLPACKET_ENTERRAWMODE or BRLPACKET_SUSPEND packet </p>

</div>
</div>
<a class="anchor" id="gad5b2bfe3d15d25b0484c4c58f400ae3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_HEADERSIZE&#160;&#160;&#160;sizeof(<a class="el" href="structbrlapi__header__t.html">brlapi_header_t</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Size of packet headers </p>

</div>
</div>
<a class="anchor" id="ga226a35313d1fb8e6ce43b45a040b8060"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_MAXPACKETSIZE&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maximum packet size for packets exchanged on sockets and with braille terminal </p>

</div>
</div>
<a class="anchor" id="ga804976f89df42ad6034da62c22369ee5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_ACCEPTKEYRANGES&#160;&#160;&#160;'u'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Unmask key ranges </p>

</div>
</div>
<a class="anchor" id="ga242e2ac3823cc0f01d59892e2d8b978c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_ACK&#160;&#160;&#160;'A'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Acknowledgement </p>

</div>
</div>
<a class="anchor" id="ga56aa34e93567c9c311e4bacb1590ae94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_AUTH&#160;&#160;&#160;'a'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Authorization </p>

</div>
</div>
<a class="anchor" id="ga4dbb5f494c14c61b2cfed257773225e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_ENTERRAWMODE&#160;&#160;&#160;'*'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Enter in raw mode </p>

</div>
</div>
<a class="anchor" id="gab60182f624fd198cf6c1d5f8acfd4c23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_ENTERTTYMODE&#160;&#160;&#160;'t'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Asks for a specified tty </p>

</div>
</div>
<a class="anchor" id="ga46b4fac6b43d157b6f2876da38057c3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_ERROR&#160;&#160;&#160;'e'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>non-fatal error </p>

</div>
</div>
<a class="anchor" id="gac795fbf998dddc46a022c94fa249d25b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_EXCEPTION&#160;&#160;&#160;'E'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Exception </p>

</div>
</div>
<a class="anchor" id="ga60ad67d097729a904b4e6183844a9e64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_GETDISPLAYSIZE&#160;&#160;&#160;'s'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Dimensions of brl display </p>

</div>
</div>
<a class="anchor" id="gac87f258167cb6a0399b9530e517a36ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_GETDRIVERNAME&#160;&#160;&#160;'n'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ask which driver is used </p>

</div>
</div>
<a class="anchor" id="ga7e9a2ae1a27efdf11f5d11fca2d024c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_IGNOREKEYRANGES&#160;&#160;&#160;'m'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Mask key ranges </p>

</div>
</div>
<a class="anchor" id="ga47e630b382b8c98e49d5d0e4fe7bbfe4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_KEY&#160;&#160;&#160;'k'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Braille key </p>

</div>
</div>
<a class="anchor" id="ga26f54245797674956773c5d605952fd0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_LEAVERAWMODE&#160;&#160;&#160;'#'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Leave raw mode </p>

</div>
</div>
<a class="anchor" id="ga78ff97595dd705e7a1c9cd26966aede3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_LEAVETTYMODE&#160;&#160;&#160;'L'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Release the tty </p>

</div>
</div>
<a class="anchor" id="gadacd3f3d969abfbfe1646082fc7cbcdf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_PACKET&#160;&#160;&#160;'p'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Raw packets </p>

</div>
</div>
<a class="anchor" id="ga0ca55799c3e9b227f43e7539bce32438"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_RESUMEDRIVER&#160;&#160;&#160;'R'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Resume driver </p>

</div>
</div>
<a class="anchor" id="gaf3e8402995513974ce2df4f021deb8a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_SETFOCUS&#160;&#160;&#160;'F'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set current tty focus </p>

</div>
</div>
<a class="anchor" id="ga26c12ffe4fa36cfa3a9f43422d05b204"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_SUSPENDDRIVER&#160;&#160;&#160;'S'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Suspend driver </p>

</div>
</div>
<a class="anchor" id="ga59dd4fd2ec9a136698f981134c1bf413"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_VERSION&#160;&#160;&#160;'v'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Version </p>

</div>
</div>
<a class="anchor" id="ga30fd33abe54249e0df012e0672555b96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PACKET_WRITE&#160;&#160;&#160;'w'</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Write </p>

</div>
</div>
<a class="anchor" id="ga474ab793dc36cc75725fe2db0f6539cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_PROTOCOL_VERSION&#160;&#160;&#160;((uint32_t) 8) /** Communication protocol version */</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga9ed86ddb71fd7ba23314c1eab176b67b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_ATTR_AND&#160;&#160;&#160;0X08</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>And attributes </p>

</div>
</div>
<a class="anchor" id="gac1d8b05d14559b90367e532a4909d56e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_ATTR_OR&#160;&#160;&#160;0X10</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Or attributes </p>

</div>
</div>
<a class="anchor" id="ga2da000ca3c25898208885cda63032250"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_CHARSET&#160;&#160;&#160;0X40</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Charset </p>

</div>
</div>
<a class="anchor" id="ga7e2bd4369f039add78e2b3d112f77978"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_CURSOR&#160;&#160;&#160;0X20</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cursor position </p>

</div>
</div>
<a class="anchor" id="ga59759e6252e19d27f7ef0fd2fd4999f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_DISPLAYNUMBER&#160;&#160;&#160;0X01</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Flags for writing Display number </p>

</div>
</div>
<a class="anchor" id="ga8d7548291609530a85dfc024b67bc451"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_REGION&#160;&#160;&#160;0X02</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Region parameter </p>

</div>
</div>
<a class="anchor" id="gaf120e757b447b2454adae26bbc9f653f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_WF_TEXT&#160;&#160;&#160;0X04</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Contains some text </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga593411f2c9306ff774eb854f78eaa18b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t brlapi_readPacket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> *&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read a packet from <em>BrlAPI</em> server</p>
<p>This function is for internal use, but one might use it if one really knows what one is doing...</p>
<p><em>type</em> is where the function will store the packet type; it should always be one of the above defined BRLPACKET_* (or else something very nasty must have happened :/).</p>
<p>The syntax is the same as read()'s.</p>
<dl class="section return"><dt>Returns</dt><dd>packet's size, -2 if <code>EOF</code> occurred, -1 on error or signal interruption.</dd></dl>
<p>If the packet is larger than the supplied buffer, the buffer will be filled with the beginning of the packet, the rest of the packet being discarded. This follows the semantics of the recv system call when the MSG_TRUNC option is given.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6a963be14210e5706f16b57a2f388e6e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t brlapi_readPacketContent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>packetSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read the content of a packet from <em>BrlAPI</em> server</p>
<p>This function is for internal use, but one might use it if one really knows what one is doing...</p>
<p><em>packetSize</em> is the size announced by <em><a class="el" href="group__brlapi__protocol.html#ga3fa149ae4b0f1adcf8f514ebc9a1f45f">brlapi_readPacketHeader()</a></em> </p>
<p><em>bufSize</em> is the size of <em>buf</em> </p>
<dl class="section return"><dt>Returns</dt><dd>packetSize, -2 if <code>EOF</code> occurred, -1 on error.</dd></dl>
<p>If the packet is larger than the supplied buffer, the buffer will be filled with the beginning of the packet, the rest of the packet being discarded. This follows the semantics of the recv system call when the MSG_TRUNC option is given.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket()</a> <a class="el" href="group__brlapi__protocol.html#ga3fa149ae4b0f1adcf8f514ebc9a1f45f">brlapi_readPacketHeader()</a> <a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga3fa149ae4b0f1adcf8f514ebc9a1f45f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t brlapi_readPacketHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> *&#160;</td>
          <td class="paramname"><em>packetType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read the header (type+size) of a packet from <em>BrlAPI</em> server</p>
<p>This function is for internal use, but one might use it if one really knows what one is doing...</p>
<p><em>type</em> is where the function will store the packet type; it should always be one of the above defined BRLPACKET_* (or else something very nasty must have happened :/).</p>
<dl class="section return"><dt>Returns</dt><dd>packet's size, -2 if <code>EOF</code> occurred, -1 on error or signal interruption.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket()</a> <a class="el" href="group__brlapi__protocol.html#ga6a963be14210e5706f16b57a2f388e6e">brlapi_readPacketContent</a> <a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabc8a0c3fe653b8d44059aee810c5b35a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t brlapi_writePacket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__connection.html#ga1273c1f34be592e19c9319e64becd1c0">brlapi_fileDescriptor</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Send a packet to <em>BrlAPI</em> server</p>
<p>This function is for internal use, but one might use it if one really knows what one is doing...</p>
<p><em>type</em> should only be one of the above defined BRLPACKET_*.</p>
<p>The syntax is the same as write()'s.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 on failure.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__brlapi__protocol.html#ga3fa149ae4b0f1adcf8f514ebc9a1f45f">brlapi_readPacketHeader()</a> <a class="el" href="group__brlapi__protocol.html#ga6a963be14210e5706f16b57a2f388e6e">brlapi_readPacketContent()</a> <a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ga2e20749820ad75c8b455310565092724"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t brlapi_fd_mutex</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Mutex for protecting concurrent fd access</p>
<p>In order to regulate concurrent access to the library's file descriptor and requests to / answers from <em>BrlAPI</em> server, every function of the library locks this mutex, namely</p>
<ul>
<li><a class="el" href="group__brlapi__connection.html#gacd26dc42640bdad09a389be10b9e3618">brlapi_openConnection()</a></li>
<li><a class="el" href="group__brlapi__connection.html#ga7b2e32ae6b9dddaeea8f2365e37494cb">brlapi_closeConnection()</a></li>
<li><a class="el" href="group__brlapi__driverspecific.html#gad636a35db7cf7b2eaa67e6bd6d166a95">brlapi_enterRawMode()</a></li>
<li><a class="el" href="group__brlapi__driverspecific.html#ga9eb1166b438ea8bc0c6dc9b38c3b083e">brlapi_leaveRawMode()</a></li>
<li><a class="el" href="group__brlapi__driverspecific.html#gaa8eaa8778257fcddfe06190ba7b9abc8">brlapi_sendRaw()</a></li>
<li><a class="el" href="group__brlapi__driverspecific.html#gaff4acf20bdbca4bf2d00e38385480178">brlapi_recvRaw()</a></li>
<li>brlapi_getDriverId()</li>
<li><a class="el" href="group__brlapi__info.html#ga2dcd2285e75571a861c1f9c27a44bd0f">brlapi_getDriverName()</a></li>
<li><a class="el" href="group__brlapi__info.html#ga3df1f8106020b1fa4a4b34380abeb191">brlapi_getDisplaySize()</a></li>
<li><a class="el" href="group__brlapi__tty.html#ga6d8ae822fa87d9bfb1fb15ecf2bbcaac">brlapi_enterTtyMode()</a></li>
<li><a class="el" href="group__brlapi__tty.html#ga4974c67da6fd48373fb2632298c25e70">brlapi_enterTtyModeWithPath()</a></li>
<li><a class="el" href="group__brlapi__tty.html#ga681f2c7f09e33a32a2731e4e77ce7cec">brlapi_leaveTtyMode()</a></li>
<li>brlapi_*write*()</li>
<li>brlapi_(un)?ignorekey(Range|Set)()</li>
<li><a class="el" href="group__brlapi__keys.html#ga3b5ba0c43d48792e7071e772b50b9cbe">brlapi_readKey()</a></li>
</ul>
<p>If both these functions and <a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket()</a> or <a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket()</a> are used in a multithreaded application, this mutex must be locked before calling <a class="el" href="group__brlapi__protocol.html#gabc8a0c3fe653b8d44059aee810c5b35a">brlapi_writePacket()</a> or <a class="el" href="group__brlapi__protocol.html#ga593411f2c9306ff774eb854f78eaa18b">brlapi_readPacket()</a>, and unlocked afterwards. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>