Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > dcbb19bbc4636f73f405fbb232b0cc34 > files > 112

openscap-devel-1.0.8-1.el5_10.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Open SCAP Library: debug_priv.h File Reference</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.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_fdedb0aba14d44ce9d99bc100e026e6a.html">common</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">debug_priv.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>oscap debug helpers private header  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;util.h&quot;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;stdarg.h&gt;</code><br/>
</div>
<p><a href="debug__priv_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a59d20b73b3f1e1b76129b97853e0dad3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d20b73b3f1e1b76129b97853e0dad3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OSCAP_DEBUG_PRIV_H_</b></td></tr>
<tr class="separator:a59d20b73b3f1e1b76129b97853e0dad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af00d3dee02bec38d88b90114c440d7e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#af00d3dee02bec38d88b90114c440d7e2">OSCAP_DEBUG_FILE</a>&#160;&#160;&#160;&quot;oscap_debug.log&quot;</td></tr>
<tr class="memdesc:af00d3dee02bec38d88b90114c440d7e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardcodede output filename.  <a href="#af00d3dee02bec38d88b90114c440d7e2">More...</a><br/></td></tr>
<tr class="separator:af00d3dee02bec38d88b90114c440d7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac017b064344cfb872d2c585efeac56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adac017b064344cfb872d2c585efeac56"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#adac017b064344cfb872d2c585efeac56">OSCAP_DEBUG_FILE_ENV</a>&#160;&#160;&#160;&quot;OSCAP_DEBUG_FILE&quot;</td></tr>
<tr class="memdesc:adac017b064344cfb872d2c585efeac56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the environment variable that can be used to change the default output filename. <br/></td></tr>
<tr class="separator:adac017b064344cfb872d2c585efeac56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c33ea248158ac24ddda0a9abf42f8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#ac0c33ea248158ac24ddda0a9abf42f8b">OSCAP_DEBUG_LEVEL_ENV</a>&#160;&#160;&#160;&quot;OSCAP_DEBUG_LEVEL&quot;</td></tr>
<tr class="memdesc:ac0c33ea248158ac24ddda0a9abf42f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the environment variable that can be used to change the debug level, i.e.  <a href="#ac0c33ea248158ac24ddda0a9abf42f8b">More...</a><br/></td></tr>
<tr class="separator:ac0c33ea248158ac24ddda0a9abf42f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf5618c604c8c636560b0e461781aa6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#adf5618c604c8c636560b0e461781aa6d">OSCAP_DEBUG_PATHSTRIP_ENV</a>&#160;&#160;&#160;&quot;OSCAP_DEBUG_PSTRIP&quot;</td></tr>
<tr class="memdesc:adf5618c604c8c636560b0e461781aa6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the environment variable that can be used to enable striping of <b>FILE</b> paths.  <a href="#adf5618c604c8c636560b0e461781aa6d">More...</a><br/></td></tr>
<tr class="separator:adf5618c604c8c636560b0e461781aa6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83bf7ba9afcd185e6e5f5501d11e195"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac83bf7ba9afcd185e6e5f5501d11e195"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>OSCAP_DEBUGOBJ_SEXP</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ac83bf7ba9afcd185e6e5f5501d11e195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a077e4dad29aa6fe34ded73ca109c28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a077e4dad29aa6fe34ded73ca109c28"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_A</b>(x)&#160;&#160;&#160;assert(x)</td></tr>
<tr class="separator:a3a077e4dad29aa6fe34ded73ca109c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30d93e88b92336db618c4e6e809459db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30d93e88b92336db618c4e6e809459db"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__dlprintf_wrapper</b>(l,...)&#160;&#160;&#160;<a class="el" href="debug__priv_8h.html#afbcabe787ac758d8265629b050dd2a75">__oscap_dlprintf</a> (l, __FILE__, __PRETTY_FUNCTION__, __LINE__, __VA_ARGS__)</td></tr>
<tr class="separator:a30d93e88b92336db618c4e6e809459db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0b9c20bb1cdf1d6e1c1834a11c9b91"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#a0b0b9c20bb1cdf1d6e1c1834a11c9b91">debug</a>(l)&#160;&#160;&#160;if ((__debuglog_level = (__debuglog_level == -1 ? atoi (getenv (<a class="el" href="debug__priv_8h.html#ac0c33ea248158ac24ddda0a9abf42f8b">OSCAP_DEBUG_LEVEL_ENV</a>) == NULL ? &quot;0&quot; : getenv (<a class="el" href="debug__priv_8h.html#ac0c33ea248158ac24ddda0a9abf42f8b">OSCAP_DEBUG_LEVEL_ENV</a>)) : __debuglog_level)) &amp;&amp; __debuglog_level &gt;= (l))</td></tr>
<tr class="memdesc:a0b0b9c20bb1cdf1d6e1c1834a11c9b91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Using this macro you can create a "debug block" with a verbosity level `l'.  <a href="#a0b0b9c20bb1cdf1d6e1c1834a11c9b91">More...</a><br/></td></tr>
<tr class="separator:a0b0b9c20bb1cdf1d6e1c1834a11c9b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacac41505f6d533bfebe565389a4f56f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#aacac41505f6d533bfebe565389a4f56f">oscap_dlprintf</a>(l,...)&#160;&#160;&#160;__dlprintf_wrapper (l, __VA_ARGS__)</td></tr>
<tr class="memdesc:aacac41505f6d533bfebe565389a4f56f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro for calling __oscap_dlprintf.  <a href="#aacac41505f6d533bfebe565389a4f56f">More...</a><br/></td></tr>
<tr class="separator:aacac41505f6d533bfebe565389a4f56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c9808badb4a822307121db6d9130c09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c9808badb4a822307121db6d9130c09"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>dO</b>(type, obj)&#160;&#160;&#160;__oscap_debuglog_object(__FILE__, __PRETTY_FUNCTION__, __LINE__, type, obj)</td></tr>
<tr class="separator:a6c9808badb4a822307121db6d9130c09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52e0f14e4d17694d445e11aff5ba1a1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52e0f14e4d17694d445e11aff5ba1a1f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>dI</b>(...)&#160;&#160;&#160;<a class="el" href="debug__priv_8h.html#aacac41505f6d533bfebe565389a4f56f">oscap_dlprintf</a>(DBG_I, __VA_ARGS__)</td></tr>
<tr class="separator:a52e0f14e4d17694d445e11aff5ba1a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f6ffd65bd106086bcf1c967bd32ee0d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f6ffd65bd106086bcf1c967bd32ee0d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>dW</b>(...)&#160;&#160;&#160;<a class="el" href="debug__priv_8h.html#aacac41505f6d533bfebe565389a4f56f">oscap_dlprintf</a>(DBG_W, __VA_ARGS__)</td></tr>
<tr class="separator:a4f6ffd65bd106086bcf1c967bd32ee0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3b61ff7f108896c8eefe88d2344d6b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3b61ff7f108896c8eefe88d2344d6b9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>dE</b>(...)&#160;&#160;&#160;<a class="el" href="debug__priv_8h.html#aacac41505f6d533bfebe565389a4f56f">oscap_dlprintf</a>(DBG_E, __VA_ARGS__)</td></tr>
<tr class="separator:ae3b61ff7f108896c8eefe88d2344d6b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>DBG_E</b> = 1, 
<b>DBG_W</b>, 
<b>DBG_I</b>
 }</td></tr>
<tr class="separator:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:afbcabe787ac758d8265629b050dd2a75"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug__priv_8h.html#afbcabe787ac758d8265629b050dd2a75">__oscap_dlprintf</a> (int level, const char *file, const char *fn, size_t line, const char *fmt,...)</td></tr>
<tr class="memdesc:afbcabe787ac758d8265629b050dd2a75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version of the oscap_dprintf function with support for debug level.  <a href="#afbcabe787ac758d8265629b050dd2a75">More...</a><br/></td></tr>
<tr class="separator:afbcabe787ac758d8265629b050dd2a75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57e3b438e5a08d40c5e5b61182ba50d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57e3b438e5a08d40c5e5b61182ba50d6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>__oscap_debuglog_object</b> (const char *file, const char *fn, size_t line, int objtype, void *obj)</td></tr>
<tr class="separator:a57e3b438e5a08d40c5e5b61182ba50d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ae208f15900608db65543579be1e91506"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae208f15900608db65543579be1e91506"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>__debuglog_level</b></td></tr>
<tr class="separator:ae208f15900608db65543579be1e91506"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>oscap debug helpers private header </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a0b0b9c20bb1cdf1d6e1c1834a11c9b91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define debug</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">l</td><td>)</td>
          <td>&#160;&#160;&#160;if ((__debuglog_level = (__debuglog_level == -1 ? atoi (getenv (<a class="el" href="debug__priv_8h.html#ac0c33ea248158ac24ddda0a9abf42f8b">OSCAP_DEBUG_LEVEL_ENV</a>) == NULL ? &quot;0&quot; : getenv (<a class="el" href="debug__priv_8h.html#ac0c33ea248158ac24ddda0a9abf42f8b">OSCAP_DEBUG_LEVEL_ENV</a>)) : __debuglog_level)) &amp;&amp; __debuglog_level &gt;= (l))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Using this macro you can create a "debug block" with a verbosity level `l'. </p>
<p>Example: The following code inside the debug block will be executed only if the debug level is larger that or equal to 3.</p>
<p><a class="el" href="debug__priv_8h.html#a0b0b9c20bb1cdf1d6e1c1834a11c9b91" title="Using this macro you can create a &quot;debug block&quot; with a verbosity level `l&#39;. ">debug(3)</a> { int foo; foo = do_something_only_in_debug_mode(); ... } </p>

</div>
</div>
<a class="anchor" id="af00d3dee02bec38d88b90114c440d7e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OSCAP_DEBUG_FILE&#160;&#160;&#160;&quot;oscap_debug.log&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Hardcodede output filename. </p>
<p>This is used as the default filename if the variable specified by OSCAP_DEBUG_FILE_ENV isn't defined. </p>

</div>
</div>
<a class="anchor" id="ac0c33ea248158ac24ddda0a9abf42f8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OSCAP_DEBUG_LEVEL_ENV&#160;&#160;&#160;&quot;OSCAP_DEBUG_LEVEL&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Name of the environment variable that can be used to change the debug level, i.e. </p>
<p>the number and verbosity of the debug messages. XXX: not implemented yet </p>

</div>
</div>
<a class="anchor" id="adf5618c604c8c636560b0e461781aa6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OSCAP_DEBUG_PATHSTRIP_ENV&#160;&#160;&#160;&quot;OSCAP_DEBUG_PSTRIP&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Name of the environment variable that can be used to enable striping of <b>FILE</b> paths. </p>
<p>It's numeric value specifies how many path tokens from the end should remain after striping. Value 1 is equal to basename(<b>FILE</b>) If this environment variable isn't defined or is set to 0 then no striping is done. </p>

</div>
</div>
<a class="anchor" id="aacac41505f6d533bfebe565389a4f56f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define oscap_dlprintf</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">l, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;__dlprintf_wrapper (l, __VA_ARGS__)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convenience macro for calling __oscap_dlprintf. </p>
<p>Only the fmt &amp; it's arguments need to be specified. The <b>FILE</b>, <b>PRETTY_FUNCTION</b> and <b>LINE</b> macros are used for the first three arguments. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="afbcabe787ac758d8265629b050dd2a75"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __oscap_dlprintf </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Version of the oscap_dprintf function with support for debug level. </p>
<p>Uses logic similar to the <a class="el" href="debug__priv_8h.html#a0b0b9c20bb1cdf1d6e1c1834a11c9b91" title="Using this macro you can create a &quot;debug block&quot; with a verbosity level `l&#39;. ">debug()</a> macro described above. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>debug level </td></tr>
    <tr><td class="paramname">file</td><td>name of the source file </td></tr>
    <tr><td class="paramname">fn</td><td>name of the function </td></tr>
    <tr><td class="paramname">line</td><td>current line </td></tr>
    <tr><td class="paramname">fmt</td><td>printf-line format string </td></tr>
    <tr><td class="paramname">...</td><td>__oscap_dlprintf parameters </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>