Sophie

Sophie

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

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: Error handling</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="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Error handling</div>  </div>
</div><!--header-->
<div class="contents">

<p>How to handle errors.  
<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__error__t.html">brlapi_error_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:ga8f89856d403136f505d378091c88c526"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga8f89856d403136f505d378091c88c526">BRLAPI_ERROR_SUCCESS</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga8f89856d403136f505d378091c88c526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad26ec6a3b47145d4b0714c26867d7346"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gad26ec6a3b47145d4b0714c26867d7346">BRLAPI_ERROR_NOMEM</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:gad26ec6a3b47145d4b0714c26867d7346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga247688f78749d0624b734b21664e9ff3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga247688f78749d0624b734b21664e9ff3">BRLAPI_ERROR_TTYBUSY</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga247688f78749d0624b734b21664e9ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11f0b3893e41121a28b175e5ae1a540e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga11f0b3893e41121a28b175e5ae1a540e">BRLAPI_ERROR_DEVICEBUSY</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:ga11f0b3893e41121a28b175e5ae1a540e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed526a46be1ee17a34347acc2f514a33"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gaed526a46be1ee17a34347acc2f514a33">BRLAPI_ERROR_UNKNOWN_INSTRUCTION</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gaed526a46be1ee17a34347acc2f514a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81fb10e51c3dec16b3257ba094545f72"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga81fb10e51c3dec16b3257ba094545f72">BRLAPI_ERROR_ILLEGAL_INSTRUCTION</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:ga81fb10e51c3dec16b3257ba094545f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1105b6b70fca868cdb97fd0e3e7daf79"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga1105b6b70fca868cdb97fd0e3e7daf79">BRLAPI_ERROR_INVALID_PARAMETER</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:ga1105b6b70fca868cdb97fd0e3e7daf79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab140b5cc02ecad533001f4ad9b1f3c3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gab140b5cc02ecad533001f4ad9b1f3c3b">BRLAPI_ERROR_INVALID_PACKET</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:gab140b5cc02ecad533001f4ad9b1f3c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6ff893fd29673c32ed7ba3552a061eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gad6ff893fd29673c32ed7ba3552a061eb">BRLAPI_ERROR_CONNREFUSED</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:gad6ff893fd29673c32ed7ba3552a061eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga527abf61de5b657d1b7b6e1edc457d8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga527abf61de5b657d1b7b6e1edc457d8f">BRLAPI_ERROR_OPNOTSUPP</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:ga527abf61de5b657d1b7b6e1edc457d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f4412300d0645b9bcf4684c26807008"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga4f4412300d0645b9bcf4684c26807008">BRLAPI_ERROR_GAIERR</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:ga4f4412300d0645b9bcf4684c26807008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48a4c142b1cc222f678777ab1aeb7103"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga48a4c142b1cc222f678777ab1aeb7103">BRLAPI_ERROR_LIBCERR</a>&#160;&#160;&#160;11</td></tr>
<tr class="separator:ga48a4c142b1cc222f678777ab1aeb7103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24ae405cffce14acd0d3ae615278b22c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga24ae405cffce14acd0d3ae615278b22c">BRLAPI_ERROR_UNKNOWNTTY</a>&#160;&#160;&#160;12</td></tr>
<tr class="separator:ga24ae405cffce14acd0d3ae615278b22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade12420f962cdc605ff892b3d8dde695"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gade12420f962cdc605ff892b3d8dde695">BRLAPI_ERROR_PROTOCOL_VERSION</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:gade12420f962cdc605ff892b3d8dde695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2d8a091c4f57bd5379227e21d119cce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gad2d8a091c4f57bd5379227e21d119cce">BRLAPI_ERROR_EOF</a>&#160;&#160;&#160;14</td></tr>
<tr class="separator:gad2d8a091c4f57bd5379227e21d119cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88e00cd74b1382651770017050bb7655"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga88e00cd74b1382651770017050bb7655">BRLAPI_ERROR_EMPTYKEY</a>&#160;&#160;&#160;15</td></tr>
<tr class="separator:ga88e00cd74b1382651770017050bb7655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28f78e69573f1f2139a78b46221c3c42"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga28f78e69573f1f2139a78b46221c3c42">BRLAPI_ERROR_DRIVERERROR</a>&#160;&#160;&#160;16</td></tr>
<tr class="separator:ga28f78e69573f1f2139a78b46221c3c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e2945493fe9746abea9d3380f4b36ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga2e2945493fe9746abea9d3380f4b36ee">BRLAPI_ERROR_AUTHENTICATION</a>&#160;&#160;&#160;17</td></tr>
<tr class="separator:ga2e2945493fe9746abea9d3380f4b36ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga526102c7af8a8d224165a8063627f815"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga526102c7af8a8d224165a8063627f815">brlapi_error</a>&#160;&#160;&#160;(*<a class="el" href="group__brlapi__error.html#ga99aad548404f82d2209344db68a08595">brlapi_error_location</a>())</td></tr>
<tr class="separator:ga526102c7af8a8d224165a8063627f815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga358abf65b23f4ab607e5ad5fde33b77e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga358abf65b23f4ab607e5ad5fde33b77e">brlapi_errno</a>&#160;&#160;&#160;(brlapi_error.brlerrno)</td></tr>
<tr class="separator:ga358abf65b23f4ab607e5ad5fde33b77e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga735f3a4c1aaaff61e11b29c612bcb2eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga735f3a4c1aaaff61e11b29c612bcb2eb">brlapi_libcerrno</a>&#160;&#160;&#160;(brlapi_error.libcerrno)</td></tr>
<tr class="separator:ga735f3a4c1aaaff61e11b29c612bcb2eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5df52780e80cccb40727f5d5da0d5b42"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga5df52780e80cccb40727f5d5da0d5b42">brlapi_gaierrno</a>&#160;&#160;&#160;(brlapi_error.gaierrno)</td></tr>
<tr class="separator:ga5df52780e80cccb40727f5d5da0d5b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4de3d0faf1ac3eab59b6799b6ad5faee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga4de3d0faf1ac3eab59b6799b6ad5faee">brlapi_errfun</a>&#160;&#160;&#160;(brlapi_error.errfun)</td></tr>
<tr class="separator:ga4de3d0faf1ac3eab59b6799b6ad5faee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gae2fac75a86e7a9dc54f4b3c23bc319e9"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a></td></tr>
<tr class="separator:gae2fac75a86e7a9dc54f4b3c23bc319e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08012ab79c3bdccd9a609e5066ce147e"><td class="memItemLeft" align="right" valign="top">typedef void(<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga08012ab79c3bdccd9a609e5066ce147e">brlapi_exceptionHandler_t</a> )(int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td></tr>
<tr class="separator:ga08012ab79c3bdccd9a609e5066ce147e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3dbac525048c0c5ff6589b3178f92fd3"><td class="memItemLeft" align="right" valign="top">typedef void(<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga3dbac525048c0c5ff6589b3178f92fd3">brlapi__exceptionHandler_t</a> )(<a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *handle, int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td></tr>
<tr class="separator:ga3dbac525048c0c5ff6589b3178f92fd3"><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:ga5717bfb2ac0e9a906f6b591b9943bd23"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga5717bfb2ac0e9a906f6b591b9943bd23">brlapi_perror</a> (const char *s)</td></tr>
<tr class="separator:ga5717bfb2ac0e9a906f6b591b9943bd23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99aad548404f82d2209344db68a08595"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a> *<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga99aad548404f82d2209344db68a08595">brlapi_error_location</a> (void)</td></tr>
<tr class="separator:ga99aad548404f82d2209344db68a08595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04c3125a4b0f5af895728f36b3852a27"><td class="memItemLeft" align="right" valign="top">const char *<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga04c3125a4b0f5af895728f36b3852a27">brlapi_strerror</a> (const <a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a> *error)</td></tr>
<tr class="separator:ga04c3125a4b0f5af895728f36b3852a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4d79a54121e82b25540de7203463402"><td class="memItemLeft" align="right" valign="top">const char *<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gaf4d79a54121e82b25540de7203463402">brlapi_getPacketTypeName</a> (<a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type)</td></tr>
<tr class="separator:gaf4d79a54121e82b25540de7203463402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05b0559f46f167cb8c8bb606f82bece7"><td class="memItemLeft" align="right" valign="top">int <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga05b0559f46f167cb8c8bb606f82bece7">brlapi_strexception</a> (char *buffer, size_t bufferSize, int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t packetSize)</td></tr>
<tr class="separator:ga05b0559f46f167cb8c8bb606f82bece7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d4ed39756fc3d136ede88e00fc6cc95"><td class="memItemLeft" align="right" valign="top">int <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga6d4ed39756fc3d136ede88e00fc6cc95">brlapi__strexception</a> (<a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *handle, char *buffer, size_t bufferSize, int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t packetSize)</td></tr>
<tr class="separator:ga6d4ed39756fc3d136ede88e00fc6cc95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7456fc847deec0762b939d44ed9868e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__brlapi__error.html#ga08012ab79c3bdccd9a609e5066ce147e">brlapi_exceptionHandler_t</a> <br class="typebreak"/>
<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga7456fc847deec0762b939d44ed9868e9">brlapi_setExceptionHandler</a> (<a class="el" href="group__brlapi__error.html#ga08012ab79c3bdccd9a609e5066ce147e">brlapi_exceptionHandler_t</a> handler)</td></tr>
<tr class="separator:ga7456fc847deec0762b939d44ed9868e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac66629c515afe202d5b8d49ab27e39ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__brlapi__error.html#ga3dbac525048c0c5ff6589b3178f92fd3">brlapi__exceptionHandler_t</a> <br class="typebreak"/>
<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gac66629c515afe202d5b8d49ab27e39ea">brlapi__setExceptionHandler</a> (<a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *handle, <a class="el" href="group__brlapi__error.html#ga3dbac525048c0c5ff6589b3178f92fd3">brlapi__exceptionHandler_t</a> handler)</td></tr>
<tr class="separator:gac66629c515afe202d5b8d49ab27e39ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e05f6233aab68e0aca7cd1470e92add"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga1e05f6233aab68e0aca7cd1470e92add">brlapi_defaultExceptionHandler</a> (int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td></tr>
<tr class="separator:ga1e05f6233aab68e0aca7cd1470e92add"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f58f22d3bf9e6d18adb9af890cb8c19"><td class="memItemLeft" align="right" valign="top">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga0f58f22d3bf9e6d18adb9af890cb8c19">brlapi__defaultExceptionHandler</a> (<a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *handle, int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td></tr>
<tr class="separator:ga0f58f22d3bf9e6d18adb9af890cb8c19"><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:ga3c572493ae2568c5154b1f4f93caa9eb"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga3c572493ae2568c5154b1f4f93caa9eb">brlapi_errlist</a> []</td></tr>
<tr class="separator:ga3c572493ae2568c5154b1f4f93caa9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4cb4bc3719221e2016e856c63b519790"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga4cb4bc3719221e2016e856c63b519790">brlapi_nerr</a></td></tr>
<tr class="separator:ga4cb4bc3719221e2016e856c63b519790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93ee012430dc5ca8563404a483cc9610"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga93ee012430dc5ca8563404a483cc9610">brlapi_error</a></td></tr>
<tr class="separator:ga93ee012430dc5ca8563404a483cc9610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf293f67c594571bb5ad6614eb22c0cb1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gaf293f67c594571bb5ad6614eb22c0cb1">brlapi_errno</a></td></tr>
<tr class="separator:gaf293f67c594571bb5ad6614eb22c0cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89ebe31438bab6230b4af91fd1e046e2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga89ebe31438bab6230b4af91fd1e046e2">brlapi_libcerrno</a></td></tr>
<tr class="separator:ga89ebe31438bab6230b4af91fd1e046e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe65d6f2c5968bcfe3708fa9f487566c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#gabe65d6f2c5968bcfe3708fa9f487566c">brlapi_gaierrno</a></td></tr>
<tr class="separator:gabe65d6f2c5968bcfe3708fa9f487566c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a1a7f39b5ef23db92d521b4fc9a890d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__brlapi__error.html#ga3a1a7f39b5ef23db92d521b4fc9a890d">brlapi_errfun</a></td></tr>
<tr class="separator:ga3a1a7f39b5ef23db92d521b4fc9a890d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>When a function fails, <a class="el" href="group__brlapi__error.html#gaf293f67c594571bb5ad6614eb22c0cb1">brlapi_errno</a> will hold an error code to explain why it failed. It should always be reported somehow.</p>
<p>Although most errors are reported that way, some (called exceptions) are reported asynchronously for efficiency reasons, because they always just report a programming error. The affected functions are: brlapi_setFocus, brlapi_write* and brlapi_sendRaw. When they happen, the next call to brlapi_something will close the connection and call the <em>exception</em> handler. If the exception handler returns, the brlapi_something function will return an end-of-file error.</p>
<p>The default exception handler (<a class="el" href="group__brlapi__error.html#ga1e05f6233aab68e0aca7cd1470e92add">brlapi_defaultExceptionHandler()</a>) dumps the guilty packet before abort()ing. It can be replaced by calling <a class="el" href="group__brlapi__error.html#ga7456fc847deec0762b939d44ed9868e9">brlapi_setExceptionHandler()</a>. For instance, the Java and Python bindings use this for raising a Java or Python exception that may be caught. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga4de3d0faf1ac3eab59b6799b6ad5faee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define brlapi_errfun&#160;&#160;&#160;(brlapi_error.errfun)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cheat about the brlapi_errfun C token </p>

</div>
</div>
<a class="anchor" id="ga358abf65b23f4ab607e5ad5fde33b77e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define brlapi_errno&#160;&#160;&#160;(brlapi_error.brlerrno)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cheat about the brlapi_errno C token </p>

</div>
</div>
<a class="anchor" id="ga526102c7af8a8d224165a8063627f815"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define brlapi_error&#160;&#160;&#160;(*<a class="el" href="group__brlapi__error.html#ga99aad548404f82d2209344db68a08595">brlapi_error_location</a>())</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cheat about the brlapi_error C token </p>

</div>
</div>
<a class="anchor" id="ga2e2945493fe9746abea9d3380f4b36ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_AUTHENTICATION&#160;&#160;&#160;17</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Authentication failed </p>

</div>
</div>
<a class="anchor" id="gad6ff893fd29673c32ed7ba3552a061eb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_CONNREFUSED&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Connection refused </p>

</div>
</div>
<a class="anchor" id="ga11f0b3893e41121a28b175e5ae1a540e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_DEVICEBUSY&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A connection is already using RAW or suspend mode </p>

</div>
</div>
<a class="anchor" id="ga28f78e69573f1f2139a78b46221c3c42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_DRIVERERROR&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Packet returned by driver too large </p>

</div>
</div>
<a class="anchor" id="ga88e00cd74b1382651770017050bb7655"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_EMPTYKEY&#160;&#160;&#160;15</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key file empty </p>

</div>
</div>
<a class="anchor" id="gad2d8a091c4f57bd5379227e21d119cce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_EOF&#160;&#160;&#160;14</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Unexpected end of file </p>

</div>
</div>
<a class="anchor" id="ga4f4412300d0645b9bcf4684c26807008"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_GAIERR&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Getaddrinfo error </p>

</div>
</div>
<a class="anchor" id="ga81fb10e51c3dec16b3257ba094545f72"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_ILLEGAL_INSTRUCTION&#160;&#160;&#160;5</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Forbiden in current mode </p>

</div>
</div>
<a class="anchor" id="gab140b5cc02ecad533001f4ad9b1f3c3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_INVALID_PACKET&#160;&#160;&#160;7</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Invalid size </p>

</div>
</div>
<a class="anchor" id="ga1105b6b70fca868cdb97fd0e3e7daf79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_INVALID_PARAMETER&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Out of range or have no sense </p>

</div>
</div>
<a class="anchor" id="ga48a4c142b1cc222f678777ab1aeb7103"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_LIBCERR&#160;&#160;&#160;11</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Libc error </p>

</div>
</div>
<a class="anchor" id="gad26ec6a3b47145d4b0714c26867d7346"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_NOMEM&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Not enough memory </p>

</div>
</div>
<a class="anchor" id="ga527abf61de5b657d1b7b6e1edc457d8f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_OPNOTSUPP&#160;&#160;&#160;9</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Operation not supported </p>

</div>
</div>
<a class="anchor" id="gade12420f962cdc605ff892b3d8dde695"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_PROTOCOL_VERSION&#160;&#160;&#160;13</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Bad protocol version </p>

</div>
</div>
<a class="anchor" id="ga8f89856d403136f505d378091c88c526"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_SUCCESS&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Success </p>

</div>
</div>
<a class="anchor" id="ga247688f78749d0624b734b21664e9ff3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_TTYBUSY&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A connection is already running in this tty </p>

</div>
</div>
<a class="anchor" id="gaed526a46be1ee17a34347acc2f514a33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_UNKNOWN_INSTRUCTION&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Not implemented in protocol </p>

</div>
</div>
<a class="anchor" id="ga24ae405cffce14acd0d3ae615278b22c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BRLAPI_ERROR_UNKNOWNTTY&#160;&#160;&#160;12</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Couldn't find out the tty number </p>

</div>
</div>
<a class="anchor" id="ga5df52780e80cccb40727f5d5da0d5b42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define brlapi_gaierrno&#160;&#160;&#160;(brlapi_error.gaierrno)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cheat about the brlapi_gaierrno C token </p>

</div>
</div>
<a class="anchor" id="ga735f3a4c1aaaff61e11b29c612bcb2eb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define brlapi_libcerrno&#160;&#160;&#160;(brlapi_error.libcerrno)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cheat about the brlapi_libcerrno C token </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga3dbac525048c0c5ff6589b3178f92fd3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> * brlapi__exceptionHandler_t)(<a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *handle, int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga08012ab79c3bdccd9a609e5066ce147e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(<a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> * brlapi_exceptionHandler_t)(int error, <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a> type, const void *packet, size_t size)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Types for exception handlers</p>
<p>Types of exception handlers which are to be given to <a class="el" href="group__brlapi__error.html#ga7456fc847deec0762b939d44ed9868e9">brlapi_setExceptionHandler()</a> and <a class="el" href="group__brlapi__error.html#gac66629c515afe202d5b8d49ab27e39ea">brlapi__setExceptionHandler()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>is the handle corresponding to the guilty connection; </td></tr>
    <tr><td class="paramname">error</td><td>is a BRLAPI_ERROR_ error code; </td></tr>
    <tr><td class="paramname">type</td><td>is the type of the guilty packet; </td></tr>
    <tr><td class="paramname">packet</td><td>points to the content of the guilty packet (might be a little bit truncated); </td></tr>
    <tr><td class="paramname">size</td><td>gives the guilty packet's size. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae2fac75a86e7a9dc54f4b3c23bc319e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="group__brlapi__error.html#gae2fac75a86e7a9dc54f4b3c23bc319e9">brlapi_packetType_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type for packet type. Only unsigned can cross networks, 32bits </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga0f58f22d3bf9e6d18adb9af890cb8c19"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi__defaultExceptionHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error</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>packet</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">

</div>
</div>
<a class="anchor" id="gac66629c515afe202d5b8d49ab27e39ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__brlapi__error.html#ga3dbac525048c0c5ff6589b3178f92fd3">brlapi__exceptionHandler_t</a> <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi__setExceptionHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__brlapi__error.html#ga3dbac525048c0c5ff6589b3178f92fd3">brlapi__exceptionHandler_t</a>&#160;</td>
          <td class="paramname"><em>handler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga6d4ed39756fc3d136ede88e00fc6cc95"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi__strexception </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__handles.html#ga57f2aec62b18f8aefea2ab550744b0c1">brlapi_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufferSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error</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>packet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>packetSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga1e05f6233aab68e0aca7cd1470e92add"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_defaultExceptionHandler </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error</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>packet</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">

</div>
</div>
<a class="anchor" id="ga99aad548404f82d2209344db68a08595"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a>* <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_error_location </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get per-thread error location</p>
<p>In multithreaded software, <a class="el" href="group__brlapi__error.html#ga93ee012430dc5ca8563404a483cc9610">brlapi_error</a> is thread-specific, so api.h cheats about the brlapi_error token and actually calls <a class="el" href="group__brlapi__error.html#ga99aad548404f82d2209344db68a08595">brlapi_error_location()</a>.</p>
<p>This gets the thread specific location of global variable <a class="el" href="group__brlapi__error.html#ga93ee012430dc5ca8563404a483cc9610">brlapi_error</a> </p>

</div>
</div>
<a class="anchor" id="gaf4d79a54121e82b25540de7203463402"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_getPacketTypeName </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><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get plain packet type</p>
<p><a class="el" href="group__brlapi__error.html#gaf4d79a54121e82b25540de7203463402">brlapi_getPacketTypeName()</a> returns the plain packet type name corresponding to its argument. </p>

</div>
</div>
<a class="anchor" id="ga5717bfb2ac0e9a906f6b591b9943bd23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_perror </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Print a BrlAPI error message</p>
<p><a class="el" href="group__brlapi__error.html#ga5717bfb2ac0e9a906f6b591b9943bd23">brlapi_perror()</a> reads <a class="el" href="group__brlapi__error.html#ga93ee012430dc5ca8563404a483cc9610">brlapi_error</a>, and acts just like perror(). </p>

</div>
</div>
<a class="anchor" id="ga7456fc847deec0762b939d44ed9868e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__brlapi__error.html#ga08012ab79c3bdccd9a609e5066ce147e">brlapi_exceptionHandler_t</a> <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_setExceptionHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__brlapi__error.html#ga08012ab79c3bdccd9a609e5066ce147e">brlapi_exceptionHandler_t</a>&#160;</td>
          <td class="paramname"><em>handler</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set a new exception handler</p>
<p><a class="el" href="group__brlapi__error.html#ga7456fc847deec0762b939d44ed9868e9">brlapi_setExceptionHandler()</a> replaces the previous exception handler with the handler parameter. The previous exception handler is returned to make chaining error handlers possible.</p>
<p>The default handler just prints the exception and abort()s. </p>

</div>
</div>
<a class="anchor" id="ga04c3125a4b0f5af895728f36b3852a27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_strerror </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a> *&#160;</td>
          <td class="paramname"><em>error</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get plain error message</p>
<p><a class="el" href="group__brlapi__error.html#ga04c3125a4b0f5af895728f36b3852a27">brlapi_strerror()</a> returns the plain error message corresponding to its argument. </p>

</div>
</div>
<a class="anchor" id="ga05b0559f46f167cb8c8bb606f82bece7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="brlapi_8h.html#aaf61afab5ea0f7574217a09dba040428">BRLAPI_STDCALL</a> brlapi_strexception </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufferSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error</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>packet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>packetSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Describes an exception</p>
<p><a class="el" href="group__brlapi__error.html#ga05b0559f46f167cb8c8bb606f82bece7">brlapi_strexception()</a> puts a text describing the given exception in buffer.</p>
<p>The beginning of the guilty packet is dumped as a sequence of hex bytes.</p>
<dl class="section return"><dt>Returns</dt><dd>the size of the text describing the exception, following snprintf()'s semantics. </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ga3a1a7f39b5ef23db92d521b4fc9a890d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* brlapi_errfun</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shorthand for brlapi_error.errfun </p>

</div>
</div>
<a class="anchor" id="ga3c572493ae2568c5154b1f4f93caa9eb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* brlapi_errlist[]</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Error message list</p>
<p>These are the string constants used by <a class="el" href="group__brlapi__error.html#ga5717bfb2ac0e9a906f6b591b9943bd23">brlapi_perror()</a>. </p>

</div>
</div>
<a class="anchor" id="gaf293f67c594571bb5ad6614eb22c0cb1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int brlapi_errno</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shorthand for brlapi_error.errno </p>

</div>
</div>
<a class="anchor" id="ga93ee012430dc5ca8563404a483cc9610"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a> brlapi_error</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Global variable brlapi_error</p>
<p><a class="el" href="group__brlapi__error.html#ga93ee012430dc5ca8563404a483cc9610">brlapi_error</a> is a global left-value containing the last error information. Its errno field is not reset to BRLAPI_ERROR_SUCCESS on success.</p>
<p>This information may be copied in <a class="el" href="structbrlapi__error__t.html">brlapi_error_t</a> variables for later use with the brlapi_strerror function. </p>

</div>
</div>
<a class="anchor" id="gabe65d6f2c5968bcfe3708fa9f487566c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int brlapi_gaierrno</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shorthand for brlapi_error.gaierrno </p>

</div>
</div>
<a class="anchor" id="ga89ebe31438bab6230b4af91fd1e046e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int brlapi_libcerrno</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shorthand for brlapi_error.libcerrno </p>

</div>
</div>
<a class="anchor" id="ga4cb4bc3719221e2016e856c63b519790"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int brlapi_nerr</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Number of error messages </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>