Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 53919da1eb7b299aeaf7fae0057a75b7 > files > 656

libnl3-doc-3.2.21-1.fc18.i686.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"/>
<title>libnl: Callbacks/Customization</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="libnl.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">libnl
   &#160;<span id="projectnumber">3.2.21</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</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>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__cb.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">Callbacks/Customization</div>  </div>
<div class="ingroups"><a class="el" href="group__core.html">Core Library (libnl)</a></div></div><!--header-->
<div class="contents">

<p>Related sections in the development guide:  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga0c50cb29c507b3d7e8bc7d76c74675f8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga0c50cb29c507b3d7e8bc7d76c74675f8">nl_cb_action</a> { <br/>
&#160;&#160;<a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8abce22d25ef3e2fed30f22f8bc27fc8f0">NL_OK</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8af77d78aac004c6d4bee57741d3a295ae">NL_SKIP</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8aa87c4bfa1b41e2e06286a412dc2bc17b">NL_STOP</a>
<br/>
 }</td></tr>
<tr class="memdesc:ga0c50cb29c507b3d7e8bc7d76c74675f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback actions.  <a href="group__cb.html#ga0c50cb29c507b3d7e8bc7d76c74675f8">More...</a><br/></td></tr>
<tr class="memitem:gaba3fabad0c62db483941101e1a18d14d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> { <br/>
&#160;&#160;<a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14da07baae9c246d899cffd1ad49d7c001ce">NL_CB_DEFAULT</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14dab2756e6194ec2c53efe5d111093b4375">NL_CB_VERBOSE</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14dad2ef3f2dbf45519610f72b3747eacd18">NL_CB_DEBUG</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14da22448271a402b4c4a55733ef4884c038">NL_CB_CUSTOM</a>, 
<br/>
&#160;&#160;<b>__NL_CB_KIND_MAX</b>
<br/>
 }</td></tr>
<tr class="memdesc:gaba3fabad0c62db483941101e1a18d14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback kinds.  <a href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">More...</a><br/></td></tr>
<tr class="memitem:ga3f60f4515ada826d2bf16395ee722363"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a> { <br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a6e1f371d16186a460f25ea9bb1306c47">NL_CB_VALID</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a044400d11ee451b692333a0d95cf3d32">NL_CB_FINISH</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a25c8376dc758b16bcaeb76c329719dae">NL_CB_OVERRUN</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a034ec83d5ba891deb3d3e54f9e15d3a0">NL_CB_SKIPPED</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a8295b387c07bd076ccdee45b555f1134">NL_CB_ACK</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a160d69995bab2c325bd25d7ee2d5292d">NL_CB_MSG_IN</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a0b43ab5eccae67470bb8ed0b09e2f650">NL_CB_MSG_OUT</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363af5b5448bf122561db88d510e5d153a8a">NL_CB_INVALID</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363ae73e906b997f00e8911b09e0f254364d">NL_CB_SEQ_CHECK</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363af2930b7775d1444c359cd11d7ce2cd02">NL_CB_SEND_ACK</a>, 
<br/>
&#160;&#160;<a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a1424b30f447e2fabc6e0e65d05c596dc">NL_CB_DUMP_INTR</a>, 
<br/>
&#160;&#160;<b>__NL_CB_TYPE_MAX</b>
<br/>
 }</td></tr>
<tr class="memdesc:ga3f60f4515ada826d2bf16395ee722363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback types.  <a href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">More...</a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Callback Handle Management</h2></td></tr>
<tr class="memitem:gaea2e77b9e3c0c875f44aec236d9a1009"><td class="memItemLeft" align="right" valign="top">struct nl_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gaea2e77b9e3c0c875f44aec236d9a1009">nl_cb_alloc</a> (enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind)</td></tr>
<tr class="memdesc:gaea2e77b9e3c0c875f44aec236d9a1009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new callback handle.  <a href="#gaea2e77b9e3c0c875f44aec236d9a1009"></a><br/></td></tr>
<tr class="memitem:gad438f32bb0f83bd1d15f53e9525f1f65"><td class="memItemLeft" align="right" valign="top">struct nl_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gad438f32bb0f83bd1d15f53e9525f1f65">nl_cb_clone</a> (struct nl_cb *orig)</td></tr>
<tr class="memdesc:gad438f32bb0f83bd1d15f53e9525f1f65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone an existing callback handle.  <a href="#gad438f32bb0f83bd1d15f53e9525f1f65"></a><br/></td></tr>
<tr class="memitem:gaff3ed772b1fa8520d72c6192428dca89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff3ed772b1fa8520d72c6192428dca89"></a>
struct nl_cb *&#160;</td><td class="memItemRight" valign="bottom"><b>nl_cb_get</b> (struct nl_cb *cb)</td></tr>
<tr class="memitem:ga4b655d12f8c8e5516b114dc3075ec2b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4b655d12f8c8e5516b114dc3075ec2b8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nl_cb_put</b> (struct nl_cb *cb)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Callback Setup</h2></td></tr>
<tr class="memitem:gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3">nl_cb_set</a> (struct nl_cb *cb, enum <a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a> type, enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind, <a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a> func, void *arg)</td></tr>
<tr class="memdesc:gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a callback.  <a href="#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3"></a><br/></td></tr>
<tr class="memitem:gad6be5a06f81ed1a411560732c7f3f698"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gad6be5a06f81ed1a411560732c7f3f698">nl_cb_set_all</a> (struct nl_cb *cb, enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind, <a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a> func, void *arg)</td></tr>
<tr class="memdesc:gad6be5a06f81ed1a411560732c7f3f698"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a all callbacks.  <a href="#gad6be5a06f81ed1a411560732c7f3f698"></a><br/></td></tr>
<tr class="memitem:gafeb5477254d93d0a8a8c991f3dbacd77"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77">nl_cb_err</a> (struct nl_cb *cb, enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind, <a class="el" href="group__cb.html#ga2eb817b53fffe9103030c692c73b94df">nl_recvmsg_err_cb_t</a> func, void *arg)</td></tr>
<tr class="memdesc:gafeb5477254d93d0a8a8c991f3dbacd77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up an error callback.  <a href="#gafeb5477254d93d0a8a8c991f3dbacd77"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Overwriting</h2></td></tr>
<tr class="memitem:gafb4844ad78bcf9c4b2744f63963e838f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gafb4844ad78bcf9c4b2744f63963e838f">nl_cb_overwrite_recvmsgs</a> (struct nl_cb *cb, int(*func)(struct nl_sock *, struct nl_cb *))</td></tr>
<tr class="memdesc:gafb4844ad78bcf9c4b2744f63963e838f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrite internal calls to <a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a>  <a href="#gafb4844ad78bcf9c4b2744f63963e838f"></a><br/></td></tr>
<tr class="memitem:ga34d7e38a9a82682e80976aaede0613f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga34d7e38a9a82682e80976aaede0613f7">nl_cb_overwrite_recv</a> (struct nl_cb *cb, int(*func)(struct nl_sock *, struct sockaddr_nl *, unsigned char **, struct ucred **))</td></tr>
<tr class="memdesc:ga34d7e38a9a82682e80976aaede0613f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrite internal calls to <a class="el" href="group__send__recv.html#ga48ab5192dfa62d6b71760d43a4306d13" title="Receive data from netlink socket.">nl_recv()</a>  <a href="#ga34d7e38a9a82682e80976aaede0613f7"></a><br/></td></tr>
<tr class="memitem:ga064e6c7bf17c83033322e9d9a45a1be1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga064e6c7bf17c83033322e9d9a45a1be1">nl_cb_overwrite_send</a> (struct nl_cb *cb, int(*func)(struct nl_sock *, struct nl_msg *))</td></tr>
<tr class="memdesc:ga064e6c7bf17c83033322e9d9a45a1be1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrite internal calls to <a class="el" href="group__send__recv.html#ga1e0b4569c49504879875008d012d0b82" title="Transmit Netlink message.">nl_send()</a>  <a href="#ga064e6c7bf17c83033322e9d9a45a1be1"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Callback Typedefs</h2></td></tr>
<tr class="memitem:ga1bf04ce17ab1b5867017556a6b4ba729"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a> )(struct nl_msg *msg, void *arg)</td></tr>
<tr class="memdesc:ga1bf04ce17ab1b5867017556a6b4ba729"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> callback for message processing customization  <a href="#ga1bf04ce17ab1b5867017556a6b4ba729"></a><br/></td></tr>
<tr class="memitem:ga2eb817b53fffe9103030c692c73b94df"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga2eb817b53fffe9103030c692c73b94df">nl_recvmsg_err_cb_t</a> )(struct sockaddr_nl *nla, struct nlmsgerr *nlerr, void *arg)</td></tr>
<tr class="memdesc:ga2eb817b53fffe9103030c692c73b94df"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> callback for error message processing customization  <a href="#ga2eb817b53fffe9103030c692c73b94df"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Related sections in the development guide: </p>
<ul>
<li><a href="../core.html#core_cb"><b> Callback Configuration (Netlink Core Library Development Guide)</b></a></li>
</ul>
<h2>Header</h2>
<div class="fragment"><div class="line"><span class="preprocessor">   #include &lt;netlink/handlers.h&gt;</span></div>
</div><!-- fragment --> <hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga1bf04ce17ab1b5867017556a6b4ba729"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* nl_recvmsg_msg_cb_t)(struct nl_msg *msg, void *arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> callback for message processing customization </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>netlink message being processed </td></tr>
    <tr><td class="paramname">arg</td><td>argument passwd on through caller </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8h_source.html#l00041">41</a> of file <a class="el" href="handlers_8h_source.html">handlers.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga2eb817b53fffe9103030c692c73b94df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* nl_recvmsg_err_cb_t)(struct sockaddr_nl *nla, struct nlmsgerr *nlerr, void *arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> callback for error message processing customization </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">nla</td><td>netlink address of the peer </td></tr>
    <tr><td class="paramname">nlerr</td><td>netlink error message being processed </td></tr>
    <tr><td class="paramname">arg</td><td>argument passed on through caller </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8h_source.html#l00050">50</a> of file <a class="el" href="handlers_8h_source.html">handlers.h</a>.</p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga0c50cb29c507b3d7e8bc7d76c74675f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__cb.html#ga0c50cb29c507b3d7e8bc7d76c74675f8">nl_cb_action</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Callback actions. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga0c50cb29c507b3d7e8bc7d76c74675f8abce22d25ef3e2fed30f22f8bc27fc8f0"></a>NL_OK</em>&nbsp;</td><td>
<p>Proceed with wathever would come next. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0c50cb29c507b3d7e8bc7d76c74675f8af77d78aac004c6d4bee57741d3a295ae"></a>NL_SKIP</em>&nbsp;</td><td>
<p>Skip this message. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0c50cb29c507b3d7e8bc7d76c74675f8aa87c4bfa1b41e2e06286a412dc2bc17b"></a>NL_STOP</em>&nbsp;</td><td>
<p>Stop parsing altogether and discard remaining messages. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8h_source.html#l00059">59</a> of file <a class="el" href="handlers_8h_source.html">handlers.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaba3fabad0c62db483941101e1a18d14d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Callback kinds. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggaba3fabad0c62db483941101e1a18d14da07baae9c246d899cffd1ad49d7c001ce"></a>NL_CB_DEFAULT</em>&nbsp;</td><td>
<p>Default handlers (quiet) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaba3fabad0c62db483941101e1a18d14dab2756e6194ec2c53efe5d111093b4375"></a>NL_CB_VERBOSE</em>&nbsp;</td><td>
<p>Verbose default handlers (error messages printed) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaba3fabad0c62db483941101e1a18d14dad2ef3f2dbf45519610f72b3747eacd18"></a>NL_CB_DEBUG</em>&nbsp;</td><td>
<p>Debug handlers for debugging. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaba3fabad0c62db483941101e1a18d14da22448271a402b4c4a55733ef4884c038"></a>NL_CB_CUSTOM</em>&nbsp;</td><td>
<p>Customized handler specified by the user. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8h_source.html#l00072">72</a> of file <a class="el" href="handlers_8h_source.html">handlers.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3f60f4515ada826d2bf16395ee722363"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Callback types. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a6e1f371d16186a460f25ea9bb1306c47"></a>NL_CB_VALID</em>&nbsp;</td><td>
<p>Message is valid. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a044400d11ee451b692333a0d95cf3d32"></a>NL_CB_FINISH</em>&nbsp;</td><td>
<p>Last message in a series of multi part messages received. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a25c8376dc758b16bcaeb76c329719dae"></a>NL_CB_OVERRUN</em>&nbsp;</td><td>
<p>Report received that data was lost. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a034ec83d5ba891deb3d3e54f9e15d3a0"></a>NL_CB_SKIPPED</em>&nbsp;</td><td>
<p>Message wants to be skipped. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a8295b387c07bd076ccdee45b555f1134"></a>NL_CB_ACK</em>&nbsp;</td><td>
<p>Message is an acknowledge. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a160d69995bab2c325bd25d7ee2d5292d"></a>NL_CB_MSG_IN</em>&nbsp;</td><td>
<p>Called for every message received. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a0b43ab5eccae67470bb8ed0b09e2f650"></a>NL_CB_MSG_OUT</em>&nbsp;</td><td>
<p>Called for every message sent out except for <a class="el" href="group__send__recv.html#gae41c0bfdd8e637d31df0950b3e5395f8" title="Transmit raw data over Netlink socket.">nl_sendto()</a> </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363af5b5448bf122561db88d510e5d153a8a"></a>NL_CB_INVALID</em>&nbsp;</td><td>
<p>Message is malformed and invalid. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363ae73e906b997f00e8911b09e0f254364d"></a>NL_CB_SEQ_CHECK</em>&nbsp;</td><td>
<p>Called instead of internal sequence number checking. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363af2930b7775d1444c359cd11d7ce2cd02"></a>NL_CB_SEND_ACK</em>&nbsp;</td><td>
<p>Sending of an acknowledge message has been requested. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a1424b30f447e2fabc6e0e65d05c596dc"></a>NL_CB_DUMP_INTR</em>&nbsp;</td><td>
<p>Flag NLM_F_DUMP_INTR is set in message. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8h_source.html#l00090">90</a> of file <a class="el" href="handlers_8h_source.html">handlers.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaea2e77b9e3c0c875f44aec236d9a1009"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct nl_cb* nl_cb_alloc </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate a new callback handle. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">kind</td><td>callback kind to be used for initialization </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Newly allocated callback handle or NULL </dd></dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00200">200</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00330">nl_cb_err()</a>, and <a class="el" href="handlers_8c_source.html#l00280">nl_cb_set()</a>.</p>

<p>Referenced by <a class="el" href="handlers_8c_source.html#l00228">nl_cb_clone()</a>, and <a class="el" href="socket_8c_source.html#l00141">nl_socket_alloc()</a>.</p>

<p><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_cgraph.png" border="0" usemap="#group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_cgraph" alt=""/></div>
<map name="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_cgraph" id="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77" title="Set up an error callback." alt="" coords="145,5,225,32"/><area shape="rect" id="node5" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="144,56,227,83"/></map>
</div>
</p>

<p><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_icgraph.png" border="0" usemap="#group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_icgraph" alt=""/></div>
<map name="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_icgraph" id="group__cb_gaea2e77b9e3c0c875f44aec236d9a1009_icgraph">
<area shape="rect" id="node3" href="group__cb.html#gad438f32bb0f83bd1d15f53e9525f1f65" title="Clone an existing callback handle." alt="" coords="156,84,252,111"/><area shape="rect" id="node31" href="group__socket.html#gaf9458e6b88324962065f93a13d53cf2c" title="Allocate new netlink socket." alt="" coords="145,147,263,173"/><area shape="rect" id="node5" href="group__cache__mngr.html#gaea5a5c62599aefaf9a540f770a5b1fd4" title="Receive available event notifications." alt="" coords="312,5,467,46"/><area shape="rect" id="node9" href="group__send__recv.html#gaec748bba8161b672f860e50d3e6d0cd8" title="Wait for ACK." alt="" coords="330,71,449,97"/><area shape="rect" id="node11" href="group__send__recv.html#gac3ce571121ae7cbdd7b0784869b414d4" title="Pickup netlink answer, parse is and return object." alt="" coords="349,121,430,148"/><area shape="rect" id="node7" href="group__cache__mngr.html#ga544e06be5c3cf48fa761677e152f64f6" title="Check for event notifications." alt="" coords="515,12,663,39"/><area shape="rect" id="node13" href="group__link.html#ga96807a247568145dd99f351ded0ec7cb" title="Get a link object directly from kernel." alt="" coords="517,121,662,148"/><area shape="rect" id="node15" href="group__link.html#gab5bb2464cf64a566db03d5ce8e11d80e" title="Enslave slave link to master link." alt="" coords="713,92,887,119"/><area shape="rect" id="node23" href="group__bonding.html#ga307a6dacb6ab70d96d7e362f9c96e683" title="Add a link to a bond (enslave)" alt="" coords="717,143,883,185"/><area shape="rect" id="node17" href="group__link.html#gab97ffb9d3b8e9899e6a9d1a31ef2ecb5" title="Enslave slave link to master link." alt="" coords="959,45,1086,72"/><area shape="rect" id="node19" href="group__link.html#ga289ee60ccfe070649d702b007f68b94c" title="Release slave link from its master." alt="" coords="936,96,1109,123"/><area shape="rect" id="node21" href="group__link.html#ga00fd70d9a966b66cefcf4d716dc8caa0" title="Release slave link from its master." alt="" coords="1177,96,1303,123"/><area shape="rect" id="node25" href="group__bonding.html#ga50a2072b4f743c742267156f5459dfee" title="Add a link to a bond (enslave)" alt="" coords="939,148,1106,175"/><area shape="rect" id="node27" href="group__bonding.html#ga92d56ba00c9537ce24f2b73829ae96dd" title="Release a link from a bond." alt="" coords="941,199,1105,241"/><area shape="rect" id="node29" href="group__bonding.html#ga71079dbe80f28e2dd483424549af49a0" title="Release a link from a bond." alt="" coords="1158,207,1322,233"/><area shape="rect" id="node33" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="312,172,467,199"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gad438f32bb0f83bd1d15f53e9525f1f65"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct nl_cb* nl_cb_clone </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>orig</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clone an existing callback handle. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">orig</td><td>original callback handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Newly allocated callback handle being a duplicate of orig or NULL </dd></dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00228">228</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00200">nl_cb_alloc()</a>, and <a class="el" href="handlers_8h_source.html#l00074">NL_CB_DEFAULT</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00417">nl_cache_mngr_data_ready()</a>, <a class="el" href="nl_8c_source.html#l01073">nl_pickup()</a>, and <a class="el" href="nl_8c_source.html#l01015">nl_wait_for_ack()</a>.</p>

<p><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_cgraph.png" border="0" usemap="#group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_cgraph" alt=""/></div>
<map name="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_cgraph" id="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gaea2e77b9e3c0c875f44aec236d9a1009" title="Allocate a new callback handle." alt="" coords="149,31,240,57"/><area shape="rect" id="node5" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77" title="Set up an error callback." alt="" coords="289,5,369,32"/><area shape="rect" id="node7" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="288,56,371,83"/></map>
</div>
</p>

<p><div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_icgraph.png" border="0" usemap="#group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_icgraph" alt=""/></div>
<map name="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_icgraph" id="group__cb_gad438f32bb0f83bd1d15f53e9525f1f65_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#gaea5a5c62599aefaf9a540f770a5b1fd4" title="Receive available event notifications." alt="" coords="149,18,304,59"/><area shape="rect" id="node7" href="group__send__recv.html#gac3ce571121ae7cbdd7b0784869b414d4" title="Pickup netlink answer, parse is and return object." alt="" coords="186,84,267,111"/><area shape="rect" id="node27" href="group__send__recv.html#gaec748bba8161b672f860e50d3e6d0cd8" title="Wait for ACK." alt="" coords="167,135,286,161"/><area shape="rect" id="node5" href="group__cache__mngr.html#ga544e06be5c3cf48fa761677e152f64f6" title="Check for event notifications." alt="" coords="353,25,501,52"/><area shape="rect" id="node9" href="group__link.html#ga96807a247568145dd99f351ded0ec7cb" title="Get a link object directly from kernel." alt="" coords="354,84,499,111"/><area shape="rect" id="node11" href="group__link.html#gab5bb2464cf64a566db03d5ce8e11d80e" title="Enslave slave link to master link." alt="" coords="550,55,725,81"/><area shape="rect" id="node19" href="group__bonding.html#ga307a6dacb6ab70d96d7e362f9c96e683" title="Add a link to a bond (enslave)" alt="" coords="554,106,721,147"/><area shape="rect" id="node13" href="group__link.html#gab97ffb9d3b8e9899e6a9d1a31ef2ecb5" title="Enslave slave link to master link." alt="" coords="797,5,923,32"/><area shape="rect" id="node15" href="group__link.html#ga289ee60ccfe070649d702b007f68b94c" title="Release slave link from its master." alt="" coords="773,56,947,83"/><area shape="rect" id="node17" href="group__link.html#ga00fd70d9a966b66cefcf4d716dc8caa0" title="Release slave link from its master." alt="" coords="1015,56,1140,83"/><area shape="rect" id="node21" href="group__bonding.html#ga50a2072b4f743c742267156f5459dfee" title="Add a link to a bond (enslave)" alt="" coords="777,111,943,137"/><area shape="rect" id="node23" href="group__bonding.html#ga92d56ba00c9537ce24f2b73829ae96dd" title="Release a link from a bond." alt="" coords="778,162,942,203"/><area shape="rect" id="node25" href="group__bonding.html#ga71079dbe80f28e2dd483424549af49a0" title="Release a link from a bond." alt="" coords="995,169,1159,196"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_cb_set </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a>&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a callback. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">type</td><td>callback to modify </td></tr>
    <tr><td class="paramname">kind</td><td>kind of implementation </td></tr>
    <tr><td class="paramname">func</td><td>callback function (NL_CB_CUSTOM) </td></tr>
    <tr><td class="paramname">arg</td><td>argument passed to callback</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd></dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00280">280</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="handlers_8h_source.html#l00080">NL_CB_CUSTOM</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00417">nl_cache_mngr_data_ready()</a>, <a class="el" href="handlers_8c_source.html#l00200">nl_cb_alloc()</a>, <a class="el" href="handlers_8c_source.html#l00309">nl_cb_set_all()</a>, <a class="el" href="nl_8c_source.html#l01073">nl_pickup()</a>, <a class="el" href="socket_8c_source.html#l00212">nl_socket_disable_seq_check()</a>, <a class="el" href="socket_8c_source.html#l00536">nl_socket_modify_cb()</a>, and <a class="el" href="nl_8c_source.html#l01015">nl_wait_for_ack()</a>.</p>

<p><div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-4-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3_icgraph.png" border="0" usemap="#group__cb_gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3_icgraph" alt=""/></div>
<map name="group__cb_gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3_icgraph" id="group__cb_gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#gaea5a5c62599aefaf9a540f770a5b1fd4" title="Receive available event notifications." alt="" coords="552,5,707,46"/><area shape="rect" id="node7" href="group__cb.html#gaea2e77b9e3c0c875f44aec236d9a1009" title="Allocate a new callback handle." alt="" coords="168,209,259,236"/><area shape="rect" id="node12" href="group__send__recv.html#gaec748bba8161b672f860e50d3e6d0cd8" title="Wait for ACK." alt="" coords="570,92,689,119"/><area shape="rect" id="node14" href="group__send__recv.html#gac3ce571121ae7cbdd7b0784869b414d4" title="Pickup netlink answer, parse is and return object." alt="" coords="589,153,670,180"/><area shape="rect" id="node38" href="group__cb.html#gad6be5a06f81ed1a411560732c7f3f698" title="Set up a all callbacks." alt="" coords="162,311,265,337"/><area shape="rect" id="node41" href="group__socket.html#gad6b7850749d878e05476c3f1c2036ade" title="Disable sequence number checking." alt="" coords="339,261,503,302"/><area shape="rect" id="node44" href="group__socket.html#gaeee66d6edef118209c7e7f1e3d393448" title="Modify the callback handler associated with the socket." alt="" coords="136,361,291,388"/><area shape="rect" id="node5" href="group__cache__mngr.html#ga544e06be5c3cf48fa761677e152f64f6" title="Check for event notifications." alt="" coords="755,12,903,39"/><area shape="rect" id="node9" href="group__cb.html#gad438f32bb0f83bd1d15f53e9525f1f65" title="Clone an existing callback handle." alt="" coords="373,108,469,135"/><area shape="rect" id="node34" href="group__socket.html#gaf9458e6b88324962065f93a13d53cf2c" title="Allocate new netlink socket." alt="" coords="362,209,481,236"/><area shape="rect" id="node16" href="group__link.html#ga96807a247568145dd99f351ded0ec7cb" title="Get a link object directly from kernel." alt="" coords="757,153,902,180"/><area shape="rect" id="node18" href="group__link.html#gab5bb2464cf64a566db03d5ce8e11d80e" title="Enslave slave link to master link." alt="" coords="953,124,1127,151"/><area shape="rect" id="node26" href="group__bonding.html#ga307a6dacb6ab70d96d7e362f9c96e683" title="Add a link to a bond (enslave)" alt="" coords="957,175,1123,217"/><area shape="rect" id="node20" href="group__link.html#gab97ffb9d3b8e9899e6a9d1a31ef2ecb5" title="Enslave slave link to master link." alt="" coords="1199,77,1326,104"/><area shape="rect" id="node22" href="group__link.html#ga289ee60ccfe070649d702b007f68b94c" title="Release slave link from its master." alt="" coords="1176,128,1349,155"/><area shape="rect" id="node24" href="group__link.html#ga00fd70d9a966b66cefcf4d716dc8caa0" title="Release slave link from its master." alt="" coords="1417,128,1543,155"/><area shape="rect" id="node28" href="group__bonding.html#ga50a2072b4f743c742267156f5459dfee" title="Add a link to a bond (enslave)" alt="" coords="1179,180,1346,207"/><area shape="rect" id="node30" href="group__bonding.html#ga92d56ba00c9537ce24f2b73829ae96dd" title="Release a link from a bond." alt="" coords="1181,231,1345,273"/><area shape="rect" id="node32" href="group__bonding.html#ga71079dbe80f28e2dd483424549af49a0" title="Release a link from a bond." alt="" coords="1398,239,1562,265"/><area shape="rect" id="node36" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="552,239,707,265"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gad6be5a06f81ed1a411560732c7f3f698"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_cb_set_all </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a>&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a all callbacks. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">kind</td><td>kind of callback </td></tr>
    <tr><td class="paramname">func</td><td>callback function </td></tr>
    <tr><td class="paramname">arg</td><td>argument to be passwd to callback function</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd></dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00309">309</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00280">nl_cb_set()</a>.</p>

<p><div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-5-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gad6be5a06f81ed1a411560732c7f3f698_cgraph.png" border="0" usemap="#group__cb_gad6be5a06f81ed1a411560732c7f3f698_cgraph" alt=""/></div>
<map name="group__cb_gad6be5a06f81ed1a411560732c7f3f698_cgraph" id="group__cb_gad6be5a06f81ed1a411560732c7f3f698_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="157,5,240,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gafeb5477254d93d0a8a8c991f3dbacd77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_cb_err </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__cb.html#ga2eb817b53fffe9103030c692c73b94df">nl_recvmsg_err_cb_t</a>&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up an error callback. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">kind</td><td>kind of callback </td></tr>
    <tr><td class="paramname">func</td><td>callback function </td></tr>
    <tr><td class="paramname">arg</td><td>argument to be passed to callback function </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00330">330</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="handlers_8h_source.html#l00080">NL_CB_CUSTOM</a>.</p>

<p>Referenced by <a class="el" href="handlers_8c_source.html#l00200">nl_cb_alloc()</a>, and <a class="el" href="socket_8c_source.html#l00552">nl_socket_modify_err_cb()</a>.</p>

<p><div id="dynsection-6" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-6-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__cb_gafeb5477254d93d0a8a8c991f3dbacd77_icgraph.png" border="0" usemap="#group__cb_gafeb5477254d93d0a8a8c991f3dbacd77_icgraph" alt=""/></div>
<map name="group__cb_gafeb5477254d93d0a8a8c991f3dbacd77_icgraph" id="group__cb_gafeb5477254d93d0a8a8c991f3dbacd77_icgraph">
<area shape="rect" id="node3" href="group__cb.html#gaea2e77b9e3c0c875f44aec236d9a1009" title="Allocate a new callback handle." alt="" coords="177,115,268,141"/><area shape="rect" id="node37" href="group__socket.html#ga3738dcdeadd5113d01d31f21349fa751" title="Modify the error callback handler associated with the socket." alt="" coords="133,165,312,192"/><area shape="rect" id="node5" href="group__cb.html#gad438f32bb0f83bd1d15f53e9525f1f65" title="Clone an existing callback handle." alt="" coords="372,84,468,111"/><area shape="rect" id="node33" href="group__socket.html#gaf9458e6b88324962065f93a13d53cf2c" title="Allocate new netlink socket." alt="" coords="361,147,479,173"/><area shape="rect" id="node7" href="group__cache__mngr.html#gaea5a5c62599aefaf9a540f770a5b1fd4" title="Receive available event notifications." alt="" coords="528,5,683,46"/><area shape="rect" id="node11" href="group__send__recv.html#gaec748bba8161b672f860e50d3e6d0cd8" title="Wait for ACK." alt="" coords="546,71,665,97"/><area shape="rect" id="node13" href="group__send__recv.html#gac3ce571121ae7cbdd7b0784869b414d4" title="Pickup netlink answer, parse is and return object." alt="" coords="565,121,646,148"/><area shape="rect" id="node9" href="group__cache__mngr.html#ga544e06be5c3cf48fa761677e152f64f6" title="Check for event notifications." alt="" coords="731,12,879,39"/><area shape="rect" id="node15" href="group__link.html#ga96807a247568145dd99f351ded0ec7cb" title="Get a link object directly from kernel." alt="" coords="733,121,878,148"/><area shape="rect" id="node17" href="group__link.html#gab5bb2464cf64a566db03d5ce8e11d80e" title="Enslave slave link to master link." alt="" coords="929,92,1103,119"/><area shape="rect" id="node25" href="group__bonding.html#ga307a6dacb6ab70d96d7e362f9c96e683" title="Add a link to a bond (enslave)" alt="" coords="933,143,1099,185"/><area shape="rect" id="node19" href="group__link.html#gab97ffb9d3b8e9899e6a9d1a31ef2ecb5" title="Enslave slave link to master link." alt="" coords="1175,45,1302,72"/><area shape="rect" id="node21" href="group__link.html#ga289ee60ccfe070649d702b007f68b94c" title="Release slave link from its master." alt="" coords="1152,96,1325,123"/><area shape="rect" id="node23" href="group__link.html#ga00fd70d9a966b66cefcf4d716dc8caa0" title="Release slave link from its master." alt="" coords="1393,96,1519,123"/><area shape="rect" id="node27" href="group__bonding.html#ga50a2072b4f743c742267156f5459dfee" title="Add a link to a bond (enslave)" alt="" coords="1155,148,1322,175"/><area shape="rect" id="node29" href="group__bonding.html#ga92d56ba00c9537ce24f2b73829ae96dd" title="Release a link from a bond." alt="" coords="1157,199,1321,241"/><area shape="rect" id="node31" href="group__bonding.html#ga71079dbe80f28e2dd483424549af49a0" title="Release a link from a bond." alt="" coords="1374,207,1538,233"/><area shape="rect" id="node35" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="528,172,683,199"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gafb4844ad78bcf9c4b2744f63963e838f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_cb_overwrite_recvmsgs </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(struct nl_sock *, struct nl_cb *)&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Overwrite internal calls to <a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">func</td><td>replacement callback for <a class="el" href="group__send__recv.html#gabb1917e38174d5b00cb313420327c495" title="Receive a set of messages from a netlink socket.">nl_recvmsgs()</a> </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00359">359</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga34d7e38a9a82682e80976aaede0613f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_cb_overwrite_recv </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(struct nl_sock *, struct sockaddr_nl *, unsigned char **, struct ucred **)&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Overwrite internal calls to <a class="el" href="group__send__recv.html#ga48ab5192dfa62d6b71760d43a4306d13" title="Receive data from netlink socket.">nl_recv()</a> </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">func</td><td>replacement callback for <a class="el" href="group__send__recv.html#ga48ab5192dfa62d6b71760d43a4306d13" title="Receive data from netlink socket.">nl_recv()</a> </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00370">370</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga064e6c7bf17c83033322e9d9a45a1be1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_cb_overwrite_send </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(struct nl_sock *, struct nl_msg *)&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Overwrite internal calls to <a class="el" href="group__send__recv.html#ga1e0b4569c49504879875008d012d0b82" title="Transmit Netlink message.">nl_send()</a> </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback set </td></tr>
    <tr><td class="paramname">func</td><td>replacement callback for <a class="el" href="group__send__recv.html#ga1e0b4569c49504879875008d012d0b82" title="Transmit Netlink message.">nl_send()</a> </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="handlers_8c_source.html#l00382">382</a> of file <a class="el" href="handlers_8c_source.html">handlers.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Jan 24 2013 14:39:29 for libnl by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>