Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 537b4767ca71616a4bccbb57df0c2eb6 > files > 307

openscap-devel-0.7.4-1.fc16.i686.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"/>
<title>Open SCAP Library: /home/pvrabec/project/openscap/openscap-0.7.4/src/OVAL/probes/public/probe-api.h Source File</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&#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 class="header">
  <div class="headertitle">
<div class="title">/home/pvrabec/project/openscap/openscap-0.7.4/src/OVAL/probes/public/probe-api.h</div>  </div>
</div>
<div class="contents">
<a href="probe-api_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00035"></a>00035 <span class="comment">/*</span>
<a name="l00036"></a>00036 <span class="comment"> * Copyright 2009 Red Hat Inc., Durham, North Carolina.</span>
<a name="l00037"></a>00037 <span class="comment"> * All Rights Reserved.</span>
<a name="l00038"></a>00038 <span class="comment"> *</span>
<a name="l00039"></a>00039 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00040"></a>00040 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00041"></a>00041 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00042"></a>00042 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00043"></a>00043 <span class="comment"> *</span>
<a name="l00044"></a>00044 <span class="comment"> * This library is distributed in the hope that it will be useful, </span>
<a name="l00045"></a>00045 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00046"></a>00046 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00047"></a>00047 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00048"></a>00048 <span class="comment"> *</span>
<a name="l00049"></a>00049 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00050"></a>00050 <span class="comment"> * License along with this library; if not, write to the Free Software </span>
<a name="l00051"></a>00051 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00052"></a>00052 <span class="comment"> *</span>
<a name="l00053"></a>00053 <span class="comment"> * Authors:</span>
<a name="l00054"></a>00054 <span class="comment"> *      Daniel Kopecek &lt;dkopecek@redhat.com&gt;</span>
<a name="l00055"></a>00055 <span class="comment"> */</span>
<a name="l00056"></a>00056 
<a name="l00057"></a>00057 <span class="preprocessor">#pragma once</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#ifndef PROBE_API_H</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define PROBE_API_H</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span>
<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;seap.h&gt;</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include &lt;pthread.h&gt;</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include &lt;<a class="code" href="oval__definitions_8h.html">oval_definitions.h</a>&gt;</span>
<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;<a class="code" href="oval__system__characteristics_8h.html">oval_system_characteristics.h</a>&gt;</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include &lt;<a class="code" href="oval__results_8h.html">oval_results.h</a>&gt;</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include &lt;<a class="code" href="oval__types_8h.html">oval_types.h</a>&gt;</span>
<a name="l00070"></a>00070 
<a name="l00071"></a>00071 <span class="comment">/*</span>
<a name="l00072"></a>00072 <span class="comment"> * items</span>
<a name="l00073"></a>00073 <span class="comment"> */</span>
<a name="l00074"></a>00074 
<a name="l00079"></a>00079 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga24a0fe6c46c667ee39d0f765630a52df" title="Build a new item according to the scpecified format.">probe_item_build</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 <span class="comment">/* SEXP_t *probe_item_creat (const char *name, SEXP_t *attrs, ...); */</span>
<a name="l00093"></a>00093 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga281872a3c21765f07bb10c9d01f03100" title="Create a new item consisting of a name, optional attributes argument and an arbitrary number of entit...">probe_item_creat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs, ...);
<a name="l00094"></a>00094 
<a name="l00100"></a>00100 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga585f26cf2067dff8dbc56939cd8ea88b" title="Create a new item with just a name and optional attributes argument.">probe_item_new</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs);
<a name="l00101"></a>00101 
<a name="l00109"></a>00109 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga7d094b506287a2f0397b3cfb90ba62ae" title="Add a new attribute to an item.">probe_item_attr_add</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * item, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * val);
<a name="l00110"></a>00110 
<a name="l00119"></a>00119 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga2e3bf979b8e884105ebde18c945de292" title="Add a new entity to an item.">probe_item_ent_add</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * item, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs, <a class="code" href="structSEXP.html">SEXP_t</a> * val);
<a name="l00120"></a>00120 
<a name="l00126"></a>00126 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga816e3a0f4022b42e80adb37e712217a1" title="Set item&#39;s status.">probe_item_setstatus</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * obj, <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> status);
<a name="l00127"></a>00127 
<a name="l00135"></a>00135 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gad25f90c27a7f5a76abd4348a2777b138" title="Set status of an item&#39;s entity.">probe_itement_setstatus</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, uint32_t n, <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> status);
<a name="l00136"></a>00136 
<a name="l00140"></a>00140 <span class="keyword">struct </span><a class="code" href="structid__desc__t.html" title="Holds information for item ids generation.">id_desc_t</a>;
<a name="l00141"></a>00141 
<a name="l00147"></a>00147 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga57a33271acce2f5013c1a66b0f106a0a" title="Get a new unique id (within a probe) for an item.">probe_item_newid</a>(<span class="keyword">struct</span> <a class="code" href="structid__desc__t.html" title="Holds information for item ids generation.">id_desc_t</a> *id_desc);
<a name="l00148"></a>00148 
<a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#ga305847888cf828258788bffc475c3c18" title="Reset the item id generator.">probe_item_resetidctr</a>(<span class="keyword">struct</span> <a class="code" href="structid__desc__t.html" title="Holds information for item ids generation.">id_desc_t</a> *id_desc);
<a name="l00154"></a>00154 
<a name="l00155"></a>00155 <span class="preprocessor">#define probe_item_getent(item, name, n) probe_obj_getent (item, name, n)</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>
<a name="l00157"></a>00157 <span class="comment">/*</span>
<a name="l00158"></a>00158 <span class="comment"> * attributes</span>
<a name="l00159"></a>00159 <span class="comment"> */</span>
<a name="l00160"></a>00160 
<a name="l00168"></a>00168 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gad5454da7eac743ac23d061df7b020b95" title="Create a new list of attributes.">probe_attr_creat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * val, ...);
<a name="l00169"></a>00169 
<a name="l00170"></a>00170 <span class="comment">/*</span>
<a name="l00171"></a>00171 <span class="comment"> * objects</span>
<a name="l00172"></a>00172 <span class="comment"> */</span>
<a name="l00173"></a>00173 
<a name="l00178"></a>00178 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gac6a32ee967031ae45ccb7b29806715ed" title="Build a new object according to the scpecified format.">probe_obj_build</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);
<a name="l00179"></a>00179 
<a name="l00191"></a>00191 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga877e7523a7c07c10b54d048dc49e97e1" title="Create a new object consisting of a name, optional attributes argument and an arbitrary number of ent...">probe_obj_creat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs, ...);
<a name="l00192"></a>00192 
<a name="l00199"></a>00199 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga8a935fab2be64f5216f03a875d775b13" title="Create a new object with just a name and optional attributes argument.">probe_obj_new</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs);
<a name="l00200"></a>00200 
<a name="l00207"></a>00207 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga0e969f658bbfd5fb8aaf9a4a0d4e781d" title="Get an entity from an object.">probe_obj_getent</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, uint32_t n);
<a name="l00208"></a>00208 
<a name="l00216"></a>00216 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga5d150dec132971e7c564ce61fab05f3b" title="Get the value of an object&#39;s entity.">probe_obj_getentval</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, uint32_t n);
<a name="l00217"></a>00217 
<a name="l00227"></a>00227 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gace27f5edf64bb92b2eac845828fc16a8" title="Get the list of values of an object&#39;s entity.">probe_obj_getentvals</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, uint32_t n, <a class="code" href="structSEXP.html">SEXP_t</a> ** res);
<a name="l00228"></a>00228 
<a name="l00234"></a>00234 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga0c4b1bdebc81320bd48a3517a8309247" title="Get the value of an object&#39;s attribute.">probe_obj_getattrval</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
<a name="l00235"></a>00235 
<a name="l00241"></a>00241 <span class="keywordtype">bool</span> <a class="code" href="group__PROBEAPI.html#gabdad7653e94bf96bec05941f87257f2e" title="Check whether the specified attribute exists.">probe_obj_attrexists</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
<a name="l00242"></a>00242 
<a name="l00248"></a>00248 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gabc311067d7dc968de8aa5c640632f015" title="Set objects&#39;s status.">probe_obj_setstatus</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * obj, <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> status);
<a name="l00249"></a>00249 
<a name="l00257"></a>00257 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga44a9fff23baac451bb3619b619b77690" title="Set status of an object&#39;s entity.">probe_objent_setstatus</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, uint32_t n, <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> status);
<a name="l00258"></a>00258 
<a name="l00263"></a>00263 <span class="keywordtype">char</span> *<a class="code" href="group__PROBEAPI.html#ga3cad77f08bb8e6c8ab00af561d3558fd" title="Get the name of an object.">probe_obj_getname</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj);
<a name="l00264"></a>00264 
<a name="l00272"></a>00272 <span class="keywordtype">size_t</span> <a class="code" href="group__PROBEAPI.html#ga99fcdf7398c070fe503c97b31281289e" title="Get the name of an object.">probe_obj_getname_r</a>(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> * obj, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">size_t</span> buflen);
<a name="l00273"></a>00273 
<a name="l00274"></a>00274 <span class="comment">/*</span>
<a name="l00275"></a>00275 <span class="comment"> * collected objects</span>
<a name="l00276"></a>00276 <span class="comment"> */</span>
<a name="l00277"></a>00277 
<a name="l00278"></a>00278 <a class="code" href="structSEXP.html">SEXP_t</a> *probe_cobj_new(<a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> flag, <a class="code" href="structSEXP.html">SEXP_t</a> *msg_list, <a class="code" href="structSEXP.html">SEXP_t</a> *item_list);
<a name="l00279"></a>00279 <span class="keywordtype">int</span> probe_cobj_add_msg(<a class="code" href="structSEXP.html">SEXP_t</a> *cobj, <span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *msg);
<a name="l00280"></a>00280 <a class="code" href="structSEXP.html">SEXP_t</a> *probe_cobj_get_msgs(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *cobj);
<a name="l00281"></a>00281 <span class="keywordtype">int</span> probe_cobj_add_item(<a class="code" href="structSEXP.html">SEXP_t</a> *cobj, <span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *item);
<a name="l00282"></a>00282 <a class="code" href="structSEXP.html">SEXP_t</a> *probe_cobj_get_items(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *cobj);
<a name="l00283"></a>00283 <span class="keywordtype">void</span> probe_cobj_set_flag(<a class="code" href="structSEXP.html">SEXP_t</a> *cobj, <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> flag);
<a name="l00284"></a>00284 <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> probe_cobj_get_flag(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *cobj);
<a name="l00285"></a>00285 <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> probe_cobj_combine_flags(<a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> f1,
<a name="l00286"></a>00286                                                         <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> f2,
<a name="l00287"></a>00287                                                         <a class="code" href="group__OVALDEF.html#ga695dd73f42848ceb78bc9c9b3794e08c" title="Set operations.">oval_setobject_operation_t</a> op);
<a name="l00288"></a>00288 <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> probe_cobj_compute_flag(<a class="code" href="structSEXP.html">SEXP_t</a> *cobj);
<a name="l00289"></a>00289 
<a name="l00290"></a>00290 <span class="comment">/*</span>
<a name="l00291"></a>00291 <span class="comment"> * messages</span>
<a name="l00292"></a>00292 <span class="comment"> */</span>
<a name="l00293"></a>00293 
<a name="l00299"></a>00299 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gac9b4a7caacf1c9c8e043424af5059f9a" title="Create a new message that can be added to a collected object.">probe_msg_creat</a>(<a class="code" href="group__OVALSYS.html#ga8ee215c8a9e2910e0595d0d32af688bc" title="Message level.">oval_message_level_t</a> level, <span class="keywordtype">char</span> *message);
<a name="l00300"></a>00300 
<a name="l00307"></a>00307 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gac4147ce4854994815f00b8895ab575b7" title="Create a new message that can be added to a collected object.">probe_msg_creatf</a>(<a class="code" href="group__OVALSYS.html#ga8ee215c8a9e2910e0595d0d32af688bc" title="Message level.">oval_message_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...) <a class="code" href="struct____attribute____.html">__attribute__</a>((format(printf, 2, 3), nonnull(2)));
<a name="l00308"></a>00308 
<a name="l00309"></a>00309 <span class="comment">/*</span>
<a name="l00310"></a>00310 <span class="comment"> * entities</span>
<a name="l00311"></a>00311 <span class="comment"> */</span>
<a name="l00312"></a>00312 
<a name="l00321"></a>00321 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga16e28dc2212c2cb4823270d5b89796e8" title="Create a new list of entities.">probe_ent_creat</a>(const <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs, <a class="code" href="structSEXP.html">SEXP_t</a> * val, ...);
<a name="l00322"></a>00322 
<a name="l00330"></a>00330 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gaf25568074f3fd20b740fa1a7772b62e8" title="Create a new entity.">probe_ent_creat1</a>(const <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * attrs, <a class="code" href="structSEXP.html">SEXP_t</a> * val);
<a name="l00331"></a>00331 
<a name="l00339"></a>00339 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga26150d99efb18ef3893f55526048297f" title="Add a new attribute to an entity.">probe_ent_attr_add</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * ent, const <span class="keywordtype">char</span> *name, <a class="code" href="structSEXP.html">SEXP_t</a> * val);
<a name="l00340"></a>00340 
<a name="l00346"></a>00346 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga73598523f63abab6f4229bbd9daa9dba" title="Get the value of an entity.">probe_ent_getval</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);
<a name="l00347"></a>00347 
<a name="l00355"></a>00355 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga3ff2cd8dba0ce124e8c1557f83ece7e0" title="Get the list of values of an entity.">probe_ent_getvals</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent, <a class="code" href="structSEXP.html">SEXP_t</a> ** res);
<a name="l00356"></a>00356 
<a name="l00362"></a>00362 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gaf2b69d899ddd53c161f162c7d9e4dbbc" title="Get the value of an entity&#39;s attribute.">probe_ent_getattrval</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent, const <span class="keywordtype">char</span> *name);
<a name="l00363"></a>00363 
<a name="l00369"></a>00369 <span class="keywordtype">bool</span> <a class="code" href="group__PROBEAPI.html#gade2da190db42b69de3a82df73ddf92da" title="Check whether the specified attribute exists.">probe_ent_attrexists</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent, const <span class="keywordtype">char</span> *name);
<a name="l00370"></a>00370 
<a name="l00376"></a>00376 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gabd1dbeb0c28df011d6a2aceb400bf1cb" title="Set the OVAL data type of an entity.">probe_ent_setdatatype</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * ent, <a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> type);
<a name="l00377"></a>00377 
<a name="l00382"></a>00382 <a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> <a class="code" href="group__PROBEAPI.html#ga63df6b0800c386aa946dd79088893f05" title="Get the OVAL data type of an entity.">probe_ent_getdatatype</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);
<a name="l00383"></a>00383 
<a name="l00389"></a>00389 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga78fa4b2ed51c75dc331f2b30305be587" title="Set entity&#39;s mask.">probe_ent_setmask</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * ent, <span class="keywordtype">bool</span> mask);
<a name="l00390"></a>00390 
<a name="l00395"></a>00395 <span class="keywordtype">bool</span> <a class="code" href="group__PROBEAPI.html#gaa18871c25a66d86317af2998703d3834" title="Get entity&#39;s mask.">probe_ent_getmask</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);
<a name="l00396"></a>00396 
<a name="l00402"></a>00402 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga19a9b8b09ebcb61389d792eeb4a450ee" title="Set entity&#39;s status.">probe_ent_setstatus</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * ent, <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> status);
<a name="l00403"></a>00403 
<a name="l00408"></a>00408 <a class="code" href="group__OVALSYS.html#gacf14e82865b7254b573e9a98e7fae422" title="System characteristics status.">oval_syschar_status_t</a> <a class="code" href="group__PROBEAPI.html#gaf6f8c32f4222562df8396b6ce8e8afc0" title="Get entity status.">probe_ent_getstatus</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);
<a name="l00409"></a>00409 
<a name="l00414"></a>00414 <span class="keywordtype">char</span> *<a class="code" href="group__PROBEAPI.html#ga01ea603ba88ab456b6501709311bc3ff" title="Get the name of an entity.">probe_ent_getname</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);
<a name="l00415"></a>00415 
<a name="l00423"></a>00423 <span class="keywordtype">size_t</span> <a class="code" href="group__PROBEAPI.html#ga8327d5fcb919ace33e748995242121d5" title="Get the name of an entity.">probe_ent_getname_r</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">size_t</span> buflen);
<a name="l00424"></a>00424 
<a name="l00429"></a>00429 <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#gaaa9687fb52f3ecba96ea03e71759505c" title="Free the memory allocated by the probe_* functions.">probe_free</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * obj);
<a name="l00430"></a>00430 
<a name="l00437"></a>00437 <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#ga3356c734255a89cd50a85a51b0264711" title="Set all of the missing attributes of the &#39;behaviors&#39; entity to default values.">probe_filebehaviors_canonicalize</a>(<a class="code" href="structSEXP.html">SEXP_t</a> **behaviors);
<a name="l00438"></a>00438 
<a name="l00445"></a>00445 <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#gadd208ff0d819b99f5084c52d3f070b1f" title="Set all of the missing attributes of the &#39;behaviors&#39; entity to default values.">probe_tfc54behaviors_canonicalize</a>(<a class="code" href="structSEXP.html">SEXP_t</a> **behaviors);
<a name="l00446"></a>00446 
<a name="l00447"></a><a class="code" href="group__PROBEAPI.html#gad69bb1533565f81eb97329ad8999a274">00447</a> <span class="preprocessor">#define PROBE_EINVAL     1      </span>
<a name="l00448"></a><a class="code" href="group__PROBEAPI.html#ga665325994bad09304d8200537d93642b">00448</a> <span class="preprocessor">#define PROBE_ENOELM     2      </span>
<a name="l00449"></a><a class="code" href="group__PROBEAPI.html#gac40d965d6387fc705aea7e17dd7680ba">00449</a> <span class="preprocessor">#define PROBE_ENOVAL     3      </span>
<a name="l00450"></a><a class="code" href="group__PROBEAPI.html#ga74bcecc6555100a7238fdc65f0d6148b">00450</a> <span class="preprocessor">#define PROBE_ENOATTR    4      </span>
<a name="l00451"></a><a class="code" href="group__PROBEAPI.html#ga9a5597ef21583fc083506d20a214761a">00451</a> <span class="preprocessor">#define PROBE_EINIT      5      </span>
<a name="l00452"></a><a class="code" href="group__PROBEAPI.html#gaa21674196b5cb001c28278c9514be185">00452</a> <span class="preprocessor">#define PROBE_ENOMEM     6      </span>
<a name="l00453"></a><a class="code" href="group__PROBEAPI.html#gaa6a7dd0ff32488e301fc8b9420acf55c">00453</a> <span class="preprocessor">#define PROBE_EOPNOTSUPP 7      </span>
<a name="l00454"></a><a class="code" href="group__PROBEAPI.html#ga46a7aab37ba4784bd48fd1e5928ce96e">00454</a> <span class="preprocessor">#define PROBE_ERANGE     8      </span>
<a name="l00455"></a><a class="code" href="group__PROBEAPI.html#gaf657b90fcfba95adaae13b5052304c63">00455</a> <span class="preprocessor">#define PROBE_EDOM       9      </span>
<a name="l00456"></a><a class="code" href="group__PROBEAPI.html#ga4f022024f2cd09d1d61896e5c2c38255">00456</a> <span class="preprocessor">#define PROBE_EFAULT    10      </span>
<a name="l00457"></a><a class="code" href="group__PROBEAPI.html#ga788a3096bb8194ad2cc1d5a05ac8cdf0">00457</a> <span class="preprocessor">#define PROBE_EACCESS   11      </span>
<a name="l00458"></a><a class="code" href="group__PROBEAPI.html#ga17111637d17fa23099a5db55a244d708">00458</a> <span class="preprocessor">#define PROBE_ESETEVAL  12      </span>
<a name="l00459"></a><a class="code" href="group__PROBEAPI.html#ga06b962b819862cec7b8d5db3435d2ca7">00459</a> <span class="preprocessor">#define PROBE_ENOENT    13      </span>
<a name="l00460"></a><a class="code" href="group__PROBEAPI.html#ga9d4910b622976895a10f5dfc8c505bcf">00460</a> <span class="preprocessor">#define PROBE_ENOOBJ    14      </span>
<a name="l00461"></a><a class="code" href="group__PROBEAPI.html#ga47e75cf6deaeff709e482781fb21b95c">00461</a> <span class="preprocessor">#define PROBE_ECONNABORTED 15   </span>
<a name="l00462"></a><a class="code" href="group__PROBEAPI.html#ga82a47bf338d851f206d5b57af891023e">00462</a> <span class="preprocessor">#define PROBE_ESYSTEM  253      </span>
<a name="l00463"></a><a class="code" href="group__PROBEAPI.html#ga851f1cb9529e4ac8d3e4ab659492dac6">00463</a> <span class="preprocessor">#define PROBE_EFATAL   254      </span>
<a name="l00464"></a><a class="code" href="group__PROBEAPI.html#gac7ffdc136441d8e231cdf0907c2dd03f">00464</a> <span class="preprocessor">#define PROBE_EUNKNOWN 255      </span>
<a name="l00466"></a>00466 <span class="preprocessor">#define OVAL_STATUS_UNKNOWN      SYSCHAR_STATUS_UNKNOWN</span>
<a name="l00467"></a>00467 <span class="preprocessor"></span><span class="preprocessor">#define OVAL_STATUS_ERROR        SYSCHAR_STATUS_ERROR</span>
<a name="l00468"></a>00468 <span class="preprocessor"></span><span class="preprocessor">#define OVAL_STATUS_EXISTS       SYSCHAR_STATUS_EXISTS</span>
<a name="l00469"></a>00469 <span class="preprocessor"></span><span class="preprocessor">#define OVAL_STATUS_DOESNOTEXIST SYSCHAR_STATUS_DOES_NOT_EXIST</span>
<a name="l00470"></a>00470 <span class="preprocessor"></span><span class="preprocessor">#define OVAL_STATUS_NOTCOLLECTED SYSCHAR_STATUS_NOT_COLLECTED</span>
<a name="l00471"></a>00471 <span class="preprocessor"></span>
<a name="l00472"></a><a class="code" href="group__PROBEAPI.html#gabf31b82ea668b210dc889e8706674fca">00472</a> <span class="preprocessor">#define PROBECMD_STE_FETCH 1 </span>
<a name="l00473"></a><a class="code" href="group__PROBEAPI.html#ga568b36409fa7ad30440d7b9b339db22d">00473</a> <span class="preprocessor">#define PROBECMD_OBJ_EVAL  2 </span>
<a name="l00474"></a><a class="code" href="group__PROBEAPI.html#gafaa4a590a3406b83092502eb0d05b98e">00474</a> <span class="preprocessor">#define PROBECMD_RESET     3 </span>
<a name="l00476"></a>00476 <span class="preprocessor">void *probe_init(void) __attribute__ ((unused));</span>
<a name="l00477"></a>00477 <span class="preprocessor"></span><span class="keywordtype">void</span> probe_fini(<span class="keywordtype">void</span> *) <a class="code" href="struct____attribute____.html">__attribute__</a> ((unused));
<a name="l00478"></a>00478 
<a name="l00479"></a>00479 typedef struct <a class="code" href="structprobe__ctx.html">probe_ctx</a> <a class="code" href="structprobe__ctx.html">probe_ctx</a>;
<a name="l00480"></a>00480 
<a name="l00481"></a>00481 <span class="keywordtype">int</span> probe_main(probe_ctx *, <span class="keywordtype">void</span> *) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull(1)));
<a name="l00482"></a>00482 
<a name="l00483"></a>00483 <span class="preprocessor">#define PROBE_VARREF_HANDLING 0</span>
<a name="l00484"></a>00484 <span class="preprocessor"></span><span class="preprocessor">#define PROBE_RESULT_CACHING  1</span>
<a name="l00485"></a>00485 <span class="preprocessor"></span>
<a name="l00486"></a>00486 <span class="keywordtype">int</span> probe_setoption(<span class="keywordtype">int</span> option, ...);
<a name="l00487"></a>00487 
<a name="l00488"></a>00488 <span class="keywordtype">bool</span> probe_item_filtered(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *item, <span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *filters);
<a name="l00489"></a>00489 
<a name="l00490"></a>00490 <span class="keywordtype">int</span> probe_result_additem(<a class="code" href="structSEXP.html">SEXP_t</a> *result, <a class="code" href="structSEXP.html">SEXP_t</a> *item);
<a name="l00491"></a>00491 
<a name="l00499"></a>00499 <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga78ae5e19aac6bb96d5539c420c737e48" title="Collect generated item (i.e.">probe_item_collect</a>(probe_ctx *ctx, <a class="code" href="structSEXP.html">SEXP_t</a> *item);
<a name="l00500"></a>00500 
<a name="l00507"></a>00507 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga0a484e1649def57c75ba232bea408712" title="Return reference to the input object.">probe_ctx_getobject</a>(probe_ctx *ctx);
<a name="l00508"></a>00508 
<a name="l00514"></a>00514 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga175723d1728c2191576dc128da5931c6" title="Return reference to the output object (aka collected object).">probe_ctx_getresult</a>(probe_ctx *ctx);
<a name="l00515"></a>00515 
<a name="l00516"></a><a class="code" href="structprobe__elmatr__t.html">00516</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00517"></a>00517         <a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> type;
<a name="l00518"></a>00518         <span class="keywordtype">void</span>           *value;
<a name="l00519"></a>00519 } <a class="code" href="structprobe__elmatr__t.html">probe_elmatr_t</a>;
<a name="l00520"></a>00520 
<a name="l00521"></a>00521 <a class="code" href="structSEXP.html">SEXP_t</a> *probe_item_create(<a class="code" href="group__OVAL.html#ga99498f525c1a0282ef45557fc882f97f" title="Unknown subtypes.">oval_subtype_t</a> item_subtype, <a class="code" href="structprobe__elmatr__t.html">probe_elmatr_t</a> *item_attributes[], ...);
<a name="l00522"></a>00522 
<a name="l00523"></a>00523 <span class="preprocessor">#define PROBE_ENT_AREF(ent, dst, attr_name, invalid_exp)                \</span>
<a name="l00524"></a>00524 <span class="preprocessor">        do {                                                            \</span>
<a name="l00525"></a>00525 <span class="preprocessor">                if (((dst) = probe_ent_getattrval(ent, attr_name)) == NULL) { \</span>
<a name="l00526"></a>00526 <span class="preprocessor">                        _F(&quot;Attribute `%s&#39; is missing!\n&quot;, attr_name);  \</span>
<a name="l00527"></a>00527 <span class="preprocessor">                        invalid_exp                                     \</span>
<a name="l00528"></a>00528 <span class="preprocessor">                }                                                       \</span>
<a name="l00529"></a>00529 <span class="preprocessor">        } while(0)</span>
<a name="l00530"></a>00530 <span class="preprocessor"></span>
<a name="l00531"></a>00531 <span class="preprocessor">#define PROBE_ENT_STRVAL(ent, dst, dstlen, invalid_exp, zerolen_exp)    \</span>
<a name="l00532"></a>00532 <span class="preprocessor">        do {                                                    \</span>
<a name="l00533"></a>00533 <span class="preprocessor">                SEXP_t *___r;                                   \</span>
<a name="l00534"></a>00534 <span class="preprocessor">                                                                \</span>
<a name="l00535"></a>00535 <span class="preprocessor">                if ((___r = probe_ent_getval(ent)) == NULL) {   \</span>
<a name="l00536"></a>00536 <span class="preprocessor">                        _W(&quot;Entity has no value!\n&quot;);           \</span>
<a name="l00537"></a>00537 <span class="preprocessor">                        invalid_exp                             \</span>
<a name="l00538"></a>00538 <span class="preprocessor">                } else {                                        \</span>
<a name="l00539"></a>00539 <span class="preprocessor">                        if (!SEXP_stringp(___r)) {              \</span>
<a name="l00540"></a>00540 <span class="preprocessor">                                _F(&quot;Invalid type\n&quot;);           \</span>
<a name="l00541"></a>00541 <span class="preprocessor">                                SEXP_free(___r);                \</span>
<a name="l00542"></a>00542 <span class="preprocessor">                                invalid_exp                     \</span>
<a name="l00543"></a>00543 <span class="preprocessor">                        }                                       \</span>
<a name="l00544"></a>00544 <span class="preprocessor">                        if (SEXP_string_length(___r) == 0) {    \</span>
<a name="l00545"></a>00545 <span class="preprocessor">                                SEXP_free(___r);                \</span>
<a name="l00546"></a>00546 <span class="preprocessor">                                zerolen_exp                     \</span>
<a name="l00547"></a>00547 <span class="preprocessor">                        } else {                                \</span>
<a name="l00548"></a>00548 <span class="preprocessor">                                SEXP_string_cstr_r(___r, dst, dstlen); \</span>
<a name="l00549"></a>00549 <span class="preprocessor">                                SEXP_free(___r);                \</span>
<a name="l00550"></a>00550 <span class="preprocessor">                        }                                       \</span>
<a name="l00551"></a>00551 <span class="preprocessor">                }                                               \</span>
<a name="l00552"></a>00552 <span class="preprocessor">        } while (0)</span>
<a name="l00553"></a>00553 <span class="preprocessor"></span>
<a name="l00554"></a>00554 <span class="preprocessor">#define PROBE_ENT_I32VAL(ent, dst, invalid_exp)                 \</span>
<a name="l00555"></a>00555 <span class="preprocessor">        do {                                                    \</span>
<a name="l00556"></a>00556 <span class="preprocessor">                SEXP_t *___r;                                   \</span>
<a name="l00557"></a>00557 <span class="preprocessor">                                                                \</span>
<a name="l00558"></a>00558 <span class="preprocessor">                if ((___r = probe_ent_getval(ent)) == NULL) {   \</span>
<a name="l00559"></a>00559 <span class="preprocessor">                        _W(&quot;Entity has no value!\n&quot;);           \</span>
<a name="l00560"></a>00560 <span class="preprocessor">                        invalid_exp                             \</span>
<a name="l00561"></a>00561 <span class="preprocessor">                } else {                                        \</span>
<a name="l00562"></a>00562 <span class="preprocessor">                        if (!SEXP_numberp(___r)) {              \</span>
<a name="l00563"></a>00563 <span class="preprocessor">                                _F(&quot;Invalid type\n&quot;);           \</span>
<a name="l00564"></a>00564 <span class="preprocessor">                                SEXP_free(___r);                \</span>
<a name="l00565"></a>00565 <span class="preprocessor">                                invalid_exp                     \</span>
<a name="l00566"></a>00566 <span class="preprocessor">                        }                                       \</span>
<a name="l00567"></a>00567 <span class="preprocessor">                        dst = SEXP_number_geti_32(___r);        \</span>
<a name="l00568"></a>00568 <span class="preprocessor">                        SEXP_free(___r);                        \</span>
<a name="l00569"></a>00569 <span class="preprocessor">                }                                               \</span>
<a name="l00570"></a>00570 <span class="preprocessor">        } while (0)</span>
<a name="l00571"></a>00571 <span class="preprocessor"></span>
<a name="l00572"></a>00572 <span class="preprocessor">#endif                          </span><span class="comment">/* PROBE_API_H */</span>
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon Jul 25 2011 for Open SCAP Library by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>