<!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>Open SCAP Library: Library-side probe interface</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Open SCAP Library </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> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">Library-side probe interface</div> </div> <div class="ingroups"><a class="el" href="group__PROBES.html">System checking mechanism - probes</a></div></div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structoval__subtypedsc__t.html">oval_subtypedsc_t</a></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:gab8f4f33a955061dd8c158ae3d8a9c4a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8f4f33a955061dd8c158ae3d8a9c4a7"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PROBE_IMPL_H</b></td></tr> <tr class="memitem:ga9052e983b330f291d534c34c28cb505d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9052e983b330f291d534c34c28cb505d"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PROBE_SCHEME</b>   "pipe"</td></tr> <tr class="memitem:gab897cfb46eb9b2b4c50a3f21d29dbad5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab897cfb46eb9b2b4c50a3f21d29dbad5"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PROBE_DIR</b>   "/usr/libexec/openscap"</td></tr> <tr class="memitem:gab29e9100be0408f163de810773555728"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab29e9100be0408f163de810773555728"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PROBE_MAXRETRY</b>   0</td></tr> <tr class="memitem:ga4dfc9ba4760a7fd8de743c5e6319e33b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4dfc9ba4760a7fd8de743c5e6319e33b"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PROBE_H</b></td></tr> <tr class="memitem:gae30fafdcbfb5442c194fd9ad32804a4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae30fafdcbfb5442c194fd9ad32804a4f"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#gae30fafdcbfb5442c194fd9ad32804a4f">OVAL_PDFLAG_NOREPLY</a>   0x0001</td></tr> <tr class="memdesc:gae30fafdcbfb5442c194fd9ad32804a4f"><td class="mdescLeft"> </td><td class="mdescRight">don't send probe result to library - just an ack <br/></td></tr> <tr class="memitem:gae3e39bc1380b4a735823d501c33d3012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae3e39bc1380b4a735823d501c33d3012"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#gae3e39bc1380b4a735823d501c33d3012">OVAL_PDFLAG_NORECONN</a>   0x0002</td></tr> <tr class="memdesc:gae3e39bc1380b4a735823d501c33d3012"><td class="mdescLeft"> </td><td class="mdescRight">don't try to reconnect on fatal errors <br/></td></tr> <tr class="memitem:ga06e7ae75ca374bec978db0f2acd3e223"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga06e7ae75ca374bec978db0f2acd3e223"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga06e7ae75ca374bec978db0f2acd3e223">OVAL_PDGLAG_RUNALL</a>   0x0004</td></tr> <tr class="memdesc:ga06e7ae75ca374bec978db0f2acd3e223"><td class="mdescLeft"> </td><td class="mdescRight">execute all probes when executing the first <br/></td></tr> <tr class="memitem:gae12675e61c2c9724d08d2d5e443a2045"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae12675e61c2c9724d08d2d5e443a2045"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#gae12675e61c2c9724d08d2d5e443a2045">OVAL_PDFLAG_RUNNOW</a>   0x0008</td></tr> <tr class="memdesc:gae12675e61c2c9724d08d2d5e443a2045"><td class="mdescLeft"> </td><td class="mdescRight">execute all probes immediately <br/></td></tr> <tr class="memitem:ga0ff475c1fbfad062d2891b89dbdd2bc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ff475c1fbfad062d2891b89dbdd2bc7"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PDFLAG_SLAVE</b>   0x0010</td></tr> <tr class="memitem:ga9fa5168f0dde4af115477081ff1dd44d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9fa5168f0dde4af115477081ff1dd44d"></a> #define </td><td class="memItemRight" valign="bottom"><b>OVAL_PDFLAG_MASK</b>   (0x0001|0x0002|0x0004|0x0008|0x0010)</td></tr> <tr class="memitem:ga8853e4c3b8e46c76a08ab305f0617914"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8853e4c3b8e46c76a08ab305f0617914"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga8853e4c3b8e46c76a08ab305f0617914">OVAL_PROBEMETA_LIST_VERBOSE</a>   0x00000001</td></tr> <tr class="memdesc:ga8853e4c3b8e46c76a08ab305f0617914"><td class="mdescLeft"> </td><td class="mdescRight">Be verbose when listing supported probes. <br/></td></tr> <tr class="memitem:ga414cfa4bb34748359113690605c37d88"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga414cfa4bb34748359113690605c37d88">OVAL_PROBEMETA_LIST_DYNAMIC</a>   0x00000002</td></tr> <tr class="memdesc:ga414cfa4bb34748359113690605c37d88"><td class="mdescLeft"> </td><td class="mdescRight">Perform additional checks when listing supported probes (i.e. <a href="#ga414cfa4bb34748359113690605c37d88"></a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:gab7b9d7939103dc20c266afeb657b525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7b9d7939103dc20c266afeb657b525b"></a> <a class="el" href="structprobe__ncache__t.html">probe_ncache_t</a> * </td><td class="memItemRight" valign="bottom"><b>OSCAP_GSYM</b> (ncache)</td></tr> <tr class="memitem:ga4e62ca6d07d3f6a7e071995679b056c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e62ca6d07d3f6a7e071995679b056c1"></a> void </td><td class="memItemRight" valign="bottom"><b>oval_probe_tblinit</b> (void)</td></tr> <tr class="memitem:ga5ff2429a27f469db8d0a41ed04590b43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5ff2429a27f469db8d0a41ed04590b43"></a> const char * </td><td class="memItemRight" valign="bottom"><b>oval_subtype_to_str</b> (<a class="el" href="group__OVAL.html#ga99498f525c1a0282ef45557fc882f97f">oval_subtype_t</a> subtype)</td></tr> <tr class="memitem:gaafc0d63c90af3435fce45c2ccb5db41a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafc0d63c90af3435fce45c2ccb5db41a"></a> <a class="el" href="group__OVAL.html#ga99498f525c1a0282ef45557fc882f97f">oval_subtype_t</a> </td><td class="memItemRight" valign="bottom"><b>oval_str_to_subtype</b> (const char *str)</td></tr> <tr class="memitem:gaaeae9238081989462b0ee851baa04a52"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#gaaeae9238081989462b0ee851baa04a52">oval_probe_hint_definition</a> (<a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> *sess, struct <a class="el" href="structoval__definition.html">oval_definition</a> *definition, int variable_instance_hint)</td></tr> <tr class="memdesc:gaaeae9238081989462b0ee851baa04a52"><td class="mdescLeft"> </td><td class="mdescRight">Finds all the oval_syschars (collected objects) assigned with a given definition and sets the variable_instance_hint attribute thereof. <a href="#gaaeae9238081989462b0ee851baa04a52"></a><br/></td></tr> <tr class="memitem:ga439faf604e78df6b6c9a68fefea504c7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga439faf604e78df6b6c9a68fefea504c7">oval_probe_query_sysinfo</a> (<a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> *sess, struct <a class="el" href="structoval__sysinfo.html">oval_sysinfo</a> **out_sysinfo) <a class="el" href="struct____attribute____.html">__attribute__</a>((nonnull(1</td></tr> <tr class="memdesc:ga439faf604e78df6b6c9a68fefea504c7"><td class="mdescLeft"> </td><td class="mdescRight">Evaluate system info probe. <a href="#ga439faf604e78df6b6c9a68fefea504c7"></a><br/></td></tr> <tr class="memitem:gab34c0e570f0b4ffdafc6c5c0719d6392"><td class="memItemLeft" align="right" valign="top">int int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#gab34c0e570f0b4ffdafc6c5c0719d6392">oval_probe_query_object</a> (<a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> *psess, struct <a class="el" href="structoval__object.html">oval_object</a> *object, int flags, struct <a class="el" href="structoval__syschar.html">oval_syschar</a> **out_syschar) <a class="el" href="struct____attribute____.html">__attribute__</a>((nonnull(1</td></tr> <tr class="memdesc:gab34c0e570f0b4ffdafc6c5c0719d6392"><td class="mdescLeft"> </td><td class="mdescRight">Evaluate an object. <a href="#gab34c0e570f0b4ffdafc6c5c0719d6392"></a><br/></td></tr> <tr class="memitem:ga5f2981a955e19405361ddcf450975662"><td class="memItemLeft" align="right" valign="top">int int int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga5f2981a955e19405361ddcf450975662">oval_probe_query_definition</a> (<a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> *sess, const char *id) <a class="el" href="struct____attribute____.html">__attribute__</a>((nonnull(1</td></tr> <tr class="memdesc:ga5f2981a955e19405361ddcf450975662"><td class="mdescLeft"> </td><td class="mdescRight">Probe objects required for the evalatuation of the specified definition and update the system characteristics model associated with the session. <a href="#ga5f2981a955e19405361ddcf450975662"></a><br/></td></tr> <tr class="memitem:ga940cd2f7a3ee533cda290f56c4008cd8"><td class="memItemLeft" align="right" valign="top">int int int int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEINTERFACE.html#ga940cd2f7a3ee533cda290f56c4008cd8">oval_probe_query_variable</a> (<a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> *sess, struct <a class="el" href="structoval__variable.html">oval_variable</a> *variable)</td></tr> <tr class="memdesc:ga940cd2f7a3ee533cda290f56c4008cd8"><td class="mdescLeft"> </td><td class="mdescRight">Query the specified variable and all its dependencies in order to compute the vector of its values. <a href="#ga940cd2f7a3ee533cda290f56c4008cd8"></a><br/></td></tr> <tr class="memitem:gaca03f52a6881d23aede2d367a7db1268"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca03f52a6881d23aede2d367a7db1268"></a> void </td><td class="memItemRight" valign="bottom"><b>oval_probe_meta_list</b> (FILE *output, int flags)</td></tr> <tr class="memitem:ga6713d953bb10d34bc96f3d4a253ff3f7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6713d953bb10d34bc96f3d4a253ff3f7"></a> const char * </td><td class="memItemRight" valign="bottom"><b>oval_probe_ext_getdir</b> (void)</td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:gaa2e00805c885fefec2154807e4fb6cca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa2e00805c885fefec2154807e4fb6cca"></a>  </td><td class="memItemRight" valign="bottom"><b>OSCAP_HIDDEN_START</b></td></tr> <tr class="memitem:gafbe29b5d7f7902afeb0675277e4c28f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafbe29b5d7f7902afeb0675277e4c28f0"></a>  </td><td class="memItemRight" valign="bottom"><b>OSCAP_HIDDEN_END</b></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <hr/><h2>Macro Definition Documentation</h2> <a class="anchor" id="ga414cfa4bb34748359113690605c37d88"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define OVAL_PROBEMETA_LIST_DYNAMIC   0x00000002</td> </tr> </table> </div><div class="memdoc"> <p>Perform additional checks when listing supported probes (i.e. </p> <p>list only existing external probes) </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gaaeae9238081989462b0ee851baa04a52"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int oval_probe_hint_definition </td> <td>(</td> <td class="paramtype"><a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> * </td> <td class="paramname"><em>sess</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoval__definition.html">oval_definition</a> * </td> <td class="paramname"><em>definition</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>variable_instance_hint</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Finds all the oval_syschars (collected objects) assigned with a given definition and sets the variable_instance_hint attribute thereof. </p> <p>That is to mark these collected objects with the hint that a new round of collection might be needed when these objects are again probed by <a class="el" href="group__PROBEINTERFACE.html#gab34c0e570f0b4ffdafc6c5c0719d6392">oval_probe_query_object</a>. That is usefull when a new variable instance is injected into the <a class="el" href="structoval__agent__session.html">oval_agent_session</a>. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">variable_instance_hint</td><td>new hint to set </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>0 on success; -1 on error; 1 on warning </dd></dl> </div> </div> <a class="anchor" id="ga5f2981a955e19405361ddcf450975662"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int int int oval_probe_query_definition </td> <td>(</td> <td class="paramtype"><a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> * </td> <td class="paramname"><em>sess</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Probe objects required for the evalatuation of the specified definition and update the system characteristics model associated with the session. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">sess</td><td>probe session </td></tr> <tr><td class="paramname">id</td><td>definition id </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>0 on success; -1 on error; 1 warning </dd></dl> </div> </div> <a class="anchor" id="gab34c0e570f0b4ffdafc6c5c0719d6392"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int int oval_probe_query_object </td> <td>(</td> <td class="paramtype"><a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> * </td> <td class="paramname"><em>psess</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoval__object.html">oval_object</a> * </td> <td class="paramname"><em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoval__syschar.html">oval_syschar</a> ** </td> <td class="paramname"><em>out_syschar</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Evaluate an object. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">sess</td><td>probe session </td></tr> <tr><td class="paramname">object</td><td>the object to evaluate </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga439faf604e78df6b6c9a68fefea504c7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int oval_probe_query_sysinfo </td> <td>(</td> <td class="paramtype"><a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> * </td> <td class="paramname"><em>sess</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoval__sysinfo.html">oval_sysinfo</a> ** </td> <td class="paramname"><em>out_sysinfo</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Evaluate system info probe. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">sess</td><td>probe session </td></tr> <tr><td class="paramname">out_sysinfo</td><td>address of a pointer to hold the result </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga940cd2f7a3ee533cda290f56c4008cd8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int int int int oval_probe_query_variable </td> <td>(</td> <td class="paramtype"><a class="el" href="structoval__probe__session.html">oval_probe_session_t</a> * </td> <td class="paramname"><em>sess</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structoval__variable.html">oval_variable</a> * </td> <td class="paramname"><em>variable</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Query the specified variable and all its dependencies in order to compute the vector of its values. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">sess</td><td>probe session </td></tr> <tr><td class="paramname">variable</td><td>the variable to query </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>0 on success </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.1 </small></address> </body> </html>