<!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"/> <title>Open SCAP Library: Auxilirary functions for probes</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <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> <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> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Defines</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</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> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><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><td class="mdescLeft"> </td><td class="mdescRight">Filesystem device structure. <a href="structfsdev__t.html#details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83ab84061594e187331ebda6a59740f8"></a><!-- doxytag: member="PROBEAUXAPI::MTAB_PATH" ref="ga83ab84061594e187331ebda6a59740f8" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>MTAB_PATH</b>   "/etc/mtab"</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>LOCAL_FILESYSTEMS</b></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa43d5f3529a4fc279edd70f92c5a5e76"></a><!-- doxytag: member="PROBEAUXAPI::fsdev_init" ref="gaa43d5f3529a4fc279edd70f92c5a5e76" args="(const char **fs, size_t fs_cnt)" --> <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><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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed7a61d80478c533525165239dfc409f"></a><!-- doxytag: member="PROBEAUXAPI::fsdev_strinit" ref="gaed7a61d80478c533525165239dfc409f" args="(const char *fs_names)" --> <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><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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7e2b275c4b002fb669678a07b9619d5"></a><!-- doxytag: member="PROBEAUXAPI::fsdev_free" ref="gae7e2b275c4b002fb669678a07b9619d5" args="(fsdev_t *lfs)" --> 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><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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga744338d0cacfb13cf5c9f22281489e1f"></a><!-- doxytag: member="PROBEAUXAPI::fsdev_search" ref="ga744338d0cacfb13cf5c9f22281489e1f" args="(fsdev_t *lfs, void *id)" --> 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><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><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><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><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><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><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><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> <tr><td colspan="2"><h2><a name="var-members"></a> Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5274125aa9a3f209a21cdf6d3e309d1f"></a><!-- doxytag: member="PROBEAUXAPI::cnt" ref="ga5274125aa9a3f209a21cdf6d3e309d1f" args="" --> uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PROBEAUXAPI.html#ga5274125aa9a3f209a21cdf6d3e309d1f">fsdev_t::cnt</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of items in the array. <br/></td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="ga194d45ac936ad2434ad25f6d8f28b112"></a><!-- doxytag: member="findfile.h::LOCAL_FILESYSTEMS" ref="ga194d45ac936ad2434ad25f6d8f28b112" args="" --> <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"><pre class="fragment">{ <span class="stringliteral">"btrfs"</span>, \ <span class="stringliteral">"ext2"</span>, <span class="stringliteral">"ext3"</span>, <span class="stringliteral">"ext4"</span>, \ <span class="stringliteral">"ffs"</span>, \ <span class="stringliteral">"gfs"</span>, \ <span class="stringliteral">"hpfs"</span>, \ <span class="stringliteral">"jfs"</span>, \ <span class="stringliteral">"reiser4"</span>, <span class="stringliteral">"reiserfs"</span>, \ <span class="stringliteral">"ufs"</span>, \ <span class="stringliteral">"xfs"</span>, \ <span class="stringliteral">"zfs"</span>, NULL} </pre></div> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga63f29a3a7e705e9ffeef0b6592b29a8e"></a><!-- doxytag: member="findfile.h::find_files" ref="ga63f29a3a7e705e9ffeef0b6592b29a8e" args="(SEXP_t *spath, SEXP_t *sfilename, SEXP_t *behaviors, int(*cb)(const char *, const char *, void *), void *arg)" --> <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><dt><b>Parameters:</b></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><!-- doxytag: member="fsdev.c::fsdev_fd" ref="ga297efe1d9f22008581daabefb000ea32" args="(fsdev_t *lfs, int fd)" --> <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><dt><b>Parameters:</b></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><dt><b>Return values:</b></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><!-- doxytag: member="fsdev.c::fsdev_path" ref="ga5563f3287c7639d1a36af3323e2b1aaa" args="(fsdev_t *lfs, const char *path)" --> <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><dt><b>Parameters:</b></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><dt><b>Return values:</b></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> <hr class="footer"/><address class="footer"><small>Generated on Mon Jul 25 2011 for Open SCAP Library by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>