<!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  <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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga0c50cb29c507b3d7e8bc7d76c74675f8">nl_cb_action</a> { <br/>   <a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8abce22d25ef3e2fed30f22f8bc27fc8f0">NL_OK</a>, <br/>   <a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8af77d78aac004c6d4bee57741d3a295ae">NL_SKIP</a>, <br/>   <a class="el" href="group__cb.html#gga0c50cb29c507b3d7e8bc7d76c74675f8aa87c4bfa1b41e2e06286a412dc2bc17b">NL_STOP</a> <br/> }</td></tr> <tr class="memdesc:ga0c50cb29c507b3d7e8bc7d76c74675f8"><td class="mdescLeft"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> { <br/>   <a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14da07baae9c246d899cffd1ad49d7c001ce">NL_CB_DEFAULT</a>, <br/>   <a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14dab2756e6194ec2c53efe5d111093b4375">NL_CB_VERBOSE</a>, <br/>   <a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14dad2ef3f2dbf45519610f72b3747eacd18">NL_CB_DEBUG</a>, <br/>   <a class="el" href="group__cb.html#ggaba3fabad0c62db483941101e1a18d14da22448271a402b4c4a55733ef4884c038">NL_CB_CUSTOM</a>, <br/>   <b>__NL_CB_KIND_MAX</b> <br/> }</td></tr> <tr class="memdesc:gaba3fabad0c62db483941101e1a18d14d"><td class="mdescLeft"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a> { <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a6e1f371d16186a460f25ea9bb1306c47">NL_CB_VALID</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a044400d11ee451b692333a0d95cf3d32">NL_CB_FINISH</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a25c8376dc758b16bcaeb76c329719dae">NL_CB_OVERRUN</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a034ec83d5ba891deb3d3e54f9e15d3a0">NL_CB_SKIPPED</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a8295b387c07bd076ccdee45b555f1134">NL_CB_ACK</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a160d69995bab2c325bd25d7ee2d5292d">NL_CB_MSG_IN</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a0b43ab5eccae67470bb8ed0b09e2f650">NL_CB_MSG_OUT</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363af5b5448bf122561db88d510e5d153a8a">NL_CB_INVALID</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363ae73e906b997f00e8911b09e0f254364d">NL_CB_SEQ_CHECK</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363af2930b7775d1444c359cd11d7ce2cd02">NL_CB_SEND_ACK</a>, <br/>   <a class="el" href="group__cb.html#gga3f60f4515ada826d2bf16395ee722363a1424b30f447e2fabc6e0e65d05c596dc">NL_CB_DUMP_INTR</a>, <br/>   <b>__NL_CB_TYPE_MAX</b> <br/> }</td></tr> <tr class="memdesc:ga3f60f4515ada826d2bf16395ee722363"><td class="mdescLeft"> </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 * </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"> </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 * </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"> </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 * </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 </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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(* </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"> </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(* </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"> </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 <netlink/handlers.h></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> </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> </td><td> <p>Skip this message. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c50cb29c507b3d7e8bc7d76c74675f8aa87c4bfa1b41e2e06286a412dc2bc17b"></a>NL_STOP</em> </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> </td><td> <p>Default handlers (quiet) </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggaba3fabad0c62db483941101e1a18d14dab2756e6194ec2c53efe5d111093b4375"></a>NL_CB_VERBOSE</em> </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> </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> </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> </td><td> <p>Message is valid. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga3f60f4515ada826d2bf16395ee722363a044400d11ee451b692333a0d95cf3d32"></a>NL_CB_FINISH</em> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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 * </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 * </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> </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> </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> </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em> </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 * </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> </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> </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em> </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 * </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> </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> </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em> </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 * </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 *) </td> <td class="paramname"><em>func</em> </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 * </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 **) </td> <td class="paramname"><em>func</em> </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 * </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 *) </td> <td class="paramname"><em>func</em> </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>