<!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: Auxilirary functions for probes</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> </div> <div class="headertitle"> <div class="title">Auxilirary functions for probes</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="structfsdev__t.html">fsdev_t</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Filesystem device structure. <a href="structfsdev__t.html#details">More...</a><br/></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:ga83ab84061594e187331ebda6a59740f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83ab84061594e187331ebda6a59740f8"></a> #define </td><td class="memItemRight" valign="bottom"><b>MTAB_PATH</b>   "/etc/mtab"</td></tr> <tr class="memitem:ga194d45ac936ad2434ad25f6d8f28b112"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>LOCAL_FILESYSTEMS</b></td></tr> <tr class="memitem:ga643f34eaa696e430debd134ac0d631c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga643f34eaa696e430debd134ac0d631c0"></a> #define </td><td class="memItemRight" valign="bottom"><b>FSDEV_H</b></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:gaa43d5f3529a4fc279edd70f92c5a5e76"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa43d5f3529a4fc279edd70f92c5a5e76"></a> <a class="el" href="structfsdev__t.html">fsdev_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#gaa43d5f3529a4fc279edd70f92c5a5e76">fsdev_init</a> (const char **fs, size_t fs_cnt)</td></tr> <tr class="memdesc:gaa43d5f3529a4fc279edd70f92c5a5e76"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure from an array of filesystem names. <br/></td></tr> <tr class="memitem:gaed7a61d80478c533525165239dfc409f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed7a61d80478c533525165239dfc409f"></a> <a class="el" href="structfsdev__t.html">fsdev_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#gaed7a61d80478c533525165239dfc409f">fsdev_strinit</a> (const char *fs_names)</td></tr> <tr class="memdesc:gaed7a61d80478c533525165239dfc409f"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure from a string containing filesystem names. <br/></td></tr> <tr class="memitem:gae7e2b275c4b002fb669678a07b9619d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7e2b275c4b002fb669678a07b9619d5"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#gae7e2b275c4b002fb669678a07b9619d5">fsdev_free</a> (<a class="el" href="structfsdev__t.html">fsdev_t</a> *lfs)</td></tr> <tr class="memdesc:gae7e2b275c4b002fb669678a07b9619d5"><td class="mdescLeft"> </td><td class="mdescRight">Free the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. <br/></td></tr> <tr class="memitem:ga744338d0cacfb13cf5c9f22281489e1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga744338d0cacfb13cf5c9f22281489e1f"></a> int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#ga744338d0cacfb13cf5c9f22281489e1f">fsdev_search</a> (<a class="el" href="structfsdev__t.html">fsdev_t</a> *lfs, void *id)</td></tr> <tr class="memdesc:ga744338d0cacfb13cf5c9f22281489e1f"><td class="mdescLeft"> </td><td class="mdescRight">Search an id in the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. <br/></td></tr> <tr class="memitem:ga5563f3287c7639d1a36af3323e2b1aaa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#ga5563f3287c7639d1a36af3323e2b1aaa">fsdev_path</a> (<a class="el" href="structfsdev__t.html">fsdev_t</a> *lfs, const char *path)</td></tr> <tr class="memdesc:ga5563f3287c7639d1a36af3323e2b1aaa"><td class="mdescLeft"> </td><td class="mdescRight">Check whether a path points points to a place on any of the devices in the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. <a href="#ga5563f3287c7639d1a36af3323e2b1aaa"></a><br/></td></tr> <tr class="memitem:ga297efe1d9f22008581daabefb000ea32"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#ga297efe1d9f22008581daabefb000ea32">fsdev_fd</a> (<a class="el" href="structfsdev__t.html">fsdev_t</a> *lfs, int fd)</td></tr> <tr class="memdesc:ga297efe1d9f22008581daabefb000ea32"><td class="mdescLeft"> </td><td class="mdescRight">Check whether a file descriptor is associated with a file that resides on any of the devices in the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. <a href="#ga297efe1d9f22008581daabefb000ea32"></a><br/></td></tr> <tr class="memitem:ga63f29a3a7e705e9ffeef0b6592b29a8e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#ga63f29a3a7e705e9ffeef0b6592b29a8e">find_files</a> (<a class="el" href="structSEXP.html">SEXP_t</a> *spath, <a class="el" href="structSEXP.html">SEXP_t</a> *sfilename, <a class="el" href="structSEXP.html">SEXP_t</a> *behaviors, int(*cb)(const char *, const char *, void *), void *arg)</td></tr> <tr class="memdesc:ga63f29a3a7e705e9ffeef0b6592b29a8e"><td class="mdescLeft"> </td><td class="mdescRight">Search the filesystem according to the specified path, filename and behaviors. <a href="#ga63f29a3a7e705e9ffeef0b6592b29a8e"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <hr/><h2>Macro Definition Documentation</h2> <a class="anchor" id="ga194d45ac936ad2434ad25f6d8f28b112"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LOCAL_FILESYSTEMS</td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">{ <span class="stringliteral">"btrfs"</span>, \</div> <div class="line"> <span class="stringliteral">"ext2"</span>, <span class="stringliteral">"ext3"</span>, <span class="stringliteral">"ext4"</span>, \</div> <div class="line"> <span class="stringliteral">"ffs"</span>, \</div> <div class="line"> <span class="stringliteral">"gfs"</span>, \</div> <div class="line"> <span class="stringliteral">"hpfs"</span>, \</div> <div class="line"> <span class="stringliteral">"jfs"</span>, \</div> <div class="line"> <span class="stringliteral">"reiser4"</span>, <span class="stringliteral">"reiserfs"</span>, \</div> <div class="line"> <span class="stringliteral">"ufs"</span>, \</div> <div class="line"> <span class="stringliteral">"xfs"</span>, \</div> <div class="line"> <span class="stringliteral">"zfs"</span>, NULL}</div> </div><!-- fragment --> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga63f29a3a7e705e9ffeef0b6592b29a8e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int find_files </td> <td>(</td> <td class="paramtype"><a class="el" href="structSEXP.html">SEXP_t</a> * </td> <td class="paramname"><em>spath</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSEXP.html">SEXP_t</a> * </td> <td class="paramname"><em>sfilename</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSEXP.html">SEXP_t</a> * </td> <td class="paramname"><em>behaviors</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(const char *, const char *, void *) </td> <td class="paramname"><em>cb</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>Search the filesystem according to the specified path, filename and behaviors. </p> <p>For all paths and files that satisfy these requirements call the provided callback function. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">path</td><td>the requested path in a sexp form, which may specify the matching operation or a var_ref </td></tr> <tr><td class="paramname">filenam</td><td>the requested filename in a sexp form, which may specify the matching operation or a var_ref </td></tr> <tr><td class="paramname">behaviors</td><td>the behaviors may specify the recursion depth or direction </td></tr> <tr><td class="paramname">cb</td><td>for each match, the callback function cb is called with first argument being the matched path and the second being the matched filename </td></tr> <tr><td class="paramname">arg</td><td>an optional argument to the callback function </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga297efe1d9f22008581daabefb000ea32"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int fsdev_fd </td> <td>(</td> <td class="paramtype"><a class="el" href="structfsdev__t.html">fsdev_t</a> * </td> <td class="paramname"><em>lfs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>fd</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Check whether a file descriptor is associated with a file that resides on any of the devices in the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">lfs</td><td>pointer to the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure </td></tr> <tr><td class="paramname">fd</td><td>file descriptor </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values:</dt><dd> <table class="retval"> <tr><td class="paramname">1</td><td>if found </td></tr> <tr><td class="paramname">0</td><td>otherwise </td></tr> <tr><td class="paramname">-1</td><td>error </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga5563f3287c7639d1a36af3323e2b1aaa"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int fsdev_path </td> <td>(</td> <td class="paramtype"><a class="el" href="structfsdev__t.html">fsdev_t</a> * </td> <td class="paramname"><em>lfs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Check whether a path points points to a place on any of the devices in the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">lfs</td><td>pointer to the <a class="el" href="structfsdev__t.html" title="Filesystem device structure.">fsdev_t</a> structure </td></tr> <tr><td class="paramname">path</td><td>path </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values:</dt><dd> <table class="retval"> <tr><td class="paramname">1</td><td>if found </td></tr> <tr><td class="paramname">0</td><td>otherwise </td></tr> <tr><td class="paramname">-1</td><td>error </td></tr> </table> </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>