<!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: probe-api.h Source File</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 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 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_dec16e0beb5f79ab6b40e328203e2e32.html">OVAL</a></li><li class="navelem"><a class="el" href="dir_d57a52ee0ad0cdc1d71df7a41be84a06.html">probes</a></li><li class="navelem"><a class="el" href="dir_9124926755697119e47582e1c4e427f8.html">public</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">probe-api.h</div> </div> </div><!--header--> <div class="contents"> <a href="probe-api_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/*</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * Copyright 2009 Red Hat Inc., Durham, North Carolina.</span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * All Rights Reserved.</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> *</span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * This library is free software; you can redistribute it and/or</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * License as published by the Free Software Foundation; either</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> *</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * This library is distributed in the hope that it will be useful, </span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * Lesser General Public License for more details.</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> *</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * License along with this library; if not, write to the Free Software </span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> *</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * Authors:</span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * Daniel Kopecek <dkopecek@redhat.com></span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> */</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#pragma once</span></div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef PROBE_API_H</span></div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span><span class="preprocessor">#define PROBE_API_H</span></div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include <seap.h></span></div> <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include <stdarg.h></span></div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include <stdint.h></span></div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include <stdbool.h></span></div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include <pthread.h></span></div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include <<a class="code" href="oval__definitions_8h.html">oval_definitions.h</a>></span></div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include <<a class="code" href="oval__system__characteristics_8h.html">oval_system_characteristics.h</a>></span></div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include <<a class="code" href="oval__results_8h.html">oval_results.h</a>></span></div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include <<a class="code" href="oval__types_8h.html">oval_types.h</a>></span></div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/*</span></div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * items</span></div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> */</span></div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <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 specified format.">probe_item_build</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">/* SEXP_t *probe_item_creat (const char *name, SEXP_t *attrs, ...); */</span></div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <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, ...);</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <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);</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <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);</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <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);</div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga816e3a0f4022b42e80adb37e712217a1" title="Set item'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);</div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> <div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gad25f90c27a7f5a76abd4348a2777b138" title="Set status of an item'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);</div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">struct </span><a class="code" href="structid__desc__t.html" title="Holds information for item ids generation.">id_desc_t</a>;</div> <div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <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);</div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <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);</div> <div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#define probe_item_getent(item, name, n) probe_obj_getent (item, name, n)</span></div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">/*</span></div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> * attributes</span></div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"> */</span></div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <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, ...);</div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">/*</span></div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> * objects</span></div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> */</span></div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> <div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <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 specified format.">probe_obj_build</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div> <div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <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, ...);</div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <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);</div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div> <div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <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);</div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div> <div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga5d150dec132971e7c564ce61fab05f3b" title="Get the value of an object'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);</div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div> <div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gace27f5edf64bb92b2eac845828fc16a8" title="Get the list of values of an object'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);</div> <div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div> <div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#ga0c4b1bdebc81320bd48a3517a8309247" title="Get the value of an object'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);</div> <div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <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);</div> <div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div> <div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#gabc311067d7dc968de8aa5c640632f015" title="Set objects'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);</div> <div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div> <div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga44a9fff23baac451bb3619b619b77690" title="Set status of an object'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);</div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div> <div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <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);</div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div> <div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <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);</div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">/*</span></div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment"> * collected objects</span></div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"> */</span></div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <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 class="code" href="structSEXP.html">SEXP_t</a> *mask_list);</div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <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);</div> <div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <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);</div> <div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <a class="code" href="structSEXP.html">SEXP_t</a> *probe_cobj_get_mask(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *cobj);</div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <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);</div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <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);</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <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);</div> <div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <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);</div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <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,</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="group__OVALSYS.html#ga6ca9feb1c89087dbae7c7d3074a378c9" title="System characteristics result flag.">oval_syschar_collection_flag_t</a> f2,</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="group__OVALDEF.html#ga695dd73f42848ceb78bc9c9b3794e08c" title="Set operations.">oval_setobject_operation_t</a> op);</div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <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);</div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">/*</span></div> <div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment"> * messages</span></div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment"> */</span></div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <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);</div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div> <div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <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)));</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment">/*</span></div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment"> * entities</span></div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment"> */</span></div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div> <div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <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, ...);</div> <div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div> <div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <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);</div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div> <div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <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);</div> <div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <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);</div> <div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <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);</div> <div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gaf2b69d899ddd53c161f162c7d9e4dbbc" title="Get the value of an entity's attribute.">probe_ent_getattrval</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent, const <span class="keywordtype">char</span> *name);</div> <div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div> <div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <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);</div> <div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div> <div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <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);</div> <div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div> <div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <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);</div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga78fa4b2ed51c75dc331f2b30305be587" title="Set entity's mask.">probe_ent_setmask</a>(<a class="code" href="structSEXP.html">SEXP_t</a> * ent, <span class="keywordtype">bool</span> mask);</div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div> <div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="keywordtype">bool</span> <a class="code" href="group__PROBEAPI.html#gaa18871c25a66d86317af2998703d3834" title="Get entity's mask.">probe_ent_getmask</a>(const <a class="code" href="structSEXP.html">SEXP_t</a> * ent);</div> <div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div> <div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga19a9b8b09ebcb61389d792eeb4a450ee" title="Set entity'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);</div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div> <div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <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);</div> <div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div> <div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <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);</div> <div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div> <div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <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);</div> <div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div> <div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <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);</div> <div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div> <div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#ga3356c734255a89cd50a85a51b0264711" title="Set all of the missing attributes of the 'behaviors' entity to default values.">probe_filebehaviors_canonicalize</a>(<a class="code" href="structSEXP.html">SEXP_t</a> **behaviors);</div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keywordtype">void</span> <a class="code" href="group__PROBEAPI.html#gadd208ff0d819b99f5084c52d3f070b1f" title="Set all of the missing attributes of the 'behaviors' entity to default values.">probe_tfc54behaviors_canonicalize</a>(<a class="code" href="structSEXP.html">SEXP_t</a> **behaviors);</div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div> <div class="line"><a name="l00448"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gad69bb1533565f81eb97329ad8999a274"> 448</a></span> <span class="preprocessor">#define PROBE_EINVAL 1 </span></div> <div class="line"><a name="l00449"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga665325994bad09304d8200537d93642b"> 449</a></span> <span class="preprocessor">#define PROBE_ENOELM 2 </span></div> <div class="line"><a name="l00450"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gac40d965d6387fc705aea7e17dd7680ba"> 450</a></span> <span class="preprocessor">#define PROBE_ENOVAL 3 </span></div> <div class="line"><a name="l00451"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga74bcecc6555100a7238fdc65f0d6148b"> 451</a></span> <span class="preprocessor">#define PROBE_ENOATTR 4 </span></div> <div class="line"><a name="l00452"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga9a5597ef21583fc083506d20a214761a"> 452</a></span> <span class="preprocessor">#define PROBE_EINIT 5 </span></div> <div class="line"><a name="l00453"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gaa21674196b5cb001c28278c9514be185"> 453</a></span> <span class="preprocessor">#define PROBE_ENOMEM 6 </span></div> <div class="line"><a name="l00454"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gaa6a7dd0ff32488e301fc8b9420acf55c"> 454</a></span> <span class="preprocessor">#define PROBE_EOPNOTSUPP 7 </span></div> <div class="line"><a name="l00455"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga46a7aab37ba4784bd48fd1e5928ce96e"> 455</a></span> <span class="preprocessor">#define PROBE_ERANGE 8 </span></div> <div class="line"><a name="l00456"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gaf657b90fcfba95adaae13b5052304c63"> 456</a></span> <span class="preprocessor">#define PROBE_EDOM 9 </span></div> <div class="line"><a name="l00457"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga4f022024f2cd09d1d61896e5c2c38255"> 457</a></span> <span class="preprocessor">#define PROBE_EFAULT 10 </span></div> <div class="line"><a name="l00458"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga788a3096bb8194ad2cc1d5a05ac8cdf0"> 458</a></span> <span class="preprocessor">#define PROBE_EACCESS 11 </span></div> <div class="line"><a name="l00459"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga17111637d17fa23099a5db55a244d708"> 459</a></span> <span class="preprocessor">#define PROBE_ESETEVAL 12 </span></div> <div class="line"><a name="l00460"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga06b962b819862cec7b8d5db3435d2ca7"> 460</a></span> <span class="preprocessor">#define PROBE_ENOENT 13 </span></div> <div class="line"><a name="l00461"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga9d4910b622976895a10f5dfc8c505bcf"> 461</a></span> <span class="preprocessor">#define PROBE_ENOOBJ 14 </span></div> <div class="line"><a name="l00462"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga47e75cf6deaeff709e482781fb21b95c"> 462</a></span> <span class="preprocessor">#define PROBE_ECONNABORTED 15 </span></div> <div class="line"><a name="l00463"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga82a47bf338d851f206d5b57af891023e"> 463</a></span> <span class="preprocessor">#define PROBE_ESYSTEM 253 </span></div> <div class="line"><a name="l00464"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga851f1cb9529e4ac8d3e4ab659492dac6"> 464</a></span> <span class="preprocessor">#define PROBE_EFATAL 254 </span></div> <div class="line"><a name="l00465"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gac7ffdc136441d8e231cdf0907c2dd03f"> 465</a></span> <span class="preprocessor">#define PROBE_EUNKNOWN 255 </span></div> <div class="line"><a name="l00467"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gabf31b82ea668b210dc889e8706674fca"> 467</a></span> <span class="preprocessor">#define PROBECMD_STE_FETCH 1 </span></div> <div class="line"><a name="l00468"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#ga568b36409fa7ad30440d7b9b339db22d"> 468</a></span> <span class="preprocessor">#define PROBECMD_OBJ_EVAL 2 </span></div> <div class="line"><a name="l00469"></a><span class="lineno"><a class="code" href="group__PROBEAPI.html#gafaa4a590a3406b83092502eb0d05b98e"> 469</a></span> <span class="preprocessor">#define PROBECMD_RESET 3 </span></div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor">void *probe_init(void) __attribute__ ((unused));</span></div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <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));</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span> typedef struct <a class="code" href="structprobe__ctx.html">probe_ctx</a> <a class="code" href="structprobe__ctx.html">probe_ctx</a>;</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <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)));</div> <div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div> <div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor">#define PROBE_VARREF_HANDLING 0</span></div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"></span><span class="preprocessor">#define PROBE_RESULT_CACHING 1</span></div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keywordtype">int</span> probe_setoption(<span class="keywordtype">int</span> option, ...);</div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <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);</div> <div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <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);</div> <div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div> <div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="keywordtype">int</span> <a class="code" href="group__PROBEAPI.html#ga78ae5e19aac6bb96d5539c420c737e48" title="Collect an item This function adds an item the collected object assosiated with the given probe conte...">probe_item_collect</a>(probe_ctx *ctx, <a class="code" href="structSEXP.html">SEXP_t</a> *item);</div> <div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div> <div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <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);</div> <div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <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);</div> <div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div> <div class="line"><a name="l00511"></a><span class="lineno"><a class="code" href="structprobe__elmatr__t.html"> 511</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> type;</div> <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordtype">void</span> *value;</div> <div class="line"><a name="l00514"></a><span class="lineno"> 514</span> } <a class="code" href="structprobe__elmatr__t.html">probe_elmatr_t</a>;</div> <div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div> <div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <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[], ...);</div> <div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div> <div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor">#define PROBE_ENT_AREF(ent, dst, attr_name, invalid_exp) \</span></div> <div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> do { \</span></div> <div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> if (((dst) = probe_ent_getattrval(ent, attr_name)) == NULL) { \</span></div> <div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> dE("Attribute `%s' is missing!\n", attr_name); \</span></div> <div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> invalid_exp \</span></div> <div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> } while(0)</span></div> <div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#define PROBE_ENT_STRVAL(ent, dst, dstlen, invalid_exp, zerolen_exp) \</span></div> <div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> do { \</span></div> <div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> SEXP_t *___r; \</span></div> <div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> \</span></div> <div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> if ((___r = probe_ent_getval(ent)) == NULL) { \</span></div> <div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> dW("Entity has no value!\n"); \</span></div> <div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> invalid_exp \</span></div> <div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> } else { \</span></div> <div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> if (!SEXP_stringp(___r)) { \</span></div> <div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> dE("Invalid type\n"); \</span></div> <div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> SEXP_free(___r); \</span></div> <div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> invalid_exp \</span></div> <div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> if (SEXP_string_length(___r) == 0) { \</span></div> <div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> SEXP_free(___r); \</span></div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> zerolen_exp \</span></div> <div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> } else { \</span></div> <div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> SEXP_string_cstr_r(___r, dst, dstlen); \</span></div> <div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> SEXP_free(___r); \</span></div> <div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> } while (0)</span></div> <div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor">#define PROBE_ENT_I32VAL(ent, dst, invalid_exp, nil_exp) \</span></div> <div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> do { \</span></div> <div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> SEXP_t *___r; \</span></div> <div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> \</span></div> <div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> if ((___r = probe_ent_getval(ent)) == NULL) { \</span></div> <div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> dW("Entity has no value!\n"); \</span></div> <div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> nil_exp; \</span></div> <div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> } else { \</span></div> <div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> if (!SEXP_numberp(___r)) { \</span></div> <div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> dE("Invalid type\n"); \</span></div> <div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> SEXP_free(___r); \</span></div> <div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> invalid_exp; \</span></div> <div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> } else { \</span></div> <div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> dst = SEXP_number_geti_32(___r); \</span></div> <div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> SEXP_free(___r); \</span></div> <div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> } \</span></div> <div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> } while (0)</span></div> <div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor">#endif </span><span class="comment">/* PROBE_API_H */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <a class="code" href="group__OVALDEF.html#ga3f00a63428c2b5db781a9c87ec73acd1" title="Operations.">oval_operation_t</a> probe_ent_getoperation(<a class="code" href="structSEXP.html">SEXP_t</a> *entity, <a class="code" href="group__OVALDEF.html#ga3f00a63428c2b5db781a9c87ec73acd1" title="Operations.">oval_operation_t</a> op);</div> <div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div> <div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="keywordtype">int</span> probe_item_add_msg(<a class="code" href="structSEXP.html">SEXP_t</a> *item, <a class="code" href="group__OVALSYS.html#ga8ee215c8a9e2910e0595d0d32af688bc" title="Message level.">oval_message_level_t</a> msglvl, <span class="keywordtype">char</span> *msgfmt, ...);</div> <div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div> <div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <a class="code" href="structSEXP.html">SEXP_t</a> *probe_entval_from_cstr(<a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">size_t</span> vallen);</div> <div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <a class="code" href="structSEXP.html">SEXP_t</a> *probe_ent_from_cstr(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="group__OVALDEF.html#gaf069fe2fb2a9ae3abe47cab55b89827e" title="Datatypes.">oval_datatype_t</a> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">size_t</span> vallen);</div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> oval_version_t probe_obj_get_schema_version(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *obj);</div> <div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div> <div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__PROBEAPI.html#gacf9254dd369f7eac65d8ec402ec18bad" title="Get object entity mask.">probe_obj_getmask</a>(<a class="code" href="structSEXP.html">SEXP_t</a> *obj);</div> <div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div> </div><!-- fragment --></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>