<!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: xccdf_policy Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Open SCAP Library </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-attribs">Data Fields</a> </div> <div class="headertitle"> <div class="title">xccdf_policy Struct Reference<div class="ingroups"><a class="el" href="group__XCCDF__POLICY.html">XCCDF_POLICY</a></div></div> </div> </div><!--header--> <div class="contents"> <p>XCCDF policy structure is abstract (class) structure of Profile element from benchmark. <a href="structxccdf__policy.html#details">More...</a></p> <p><code>#include <<a class="el" href="xccdf__policy_8h_source.html">xccdf_policy.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:ga29f80bb419da8c7801a88bfc68481dcd"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga29f80bb419da8c7801a88bfc68481dcd">xccdf_policy_new</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *<a class="el" href="structxccdf__policy.html#a0406fc13d1156dafcfab00b88767150f">model</a>, struct <a class="el" href="structxccdf__profile.html">xccdf_profile</a> *<a class="el" href="structxccdf__policy.html#aa9b356a88ddfb729745dc246d1da9614">profile</a>)</td></tr> <tr class="memdesc:ga29f80bb419da8c7801a88bfc68481dcd"><td class="mdescLeft"> </td><td class="mdescRight">Constructor of Policy structure. <a href="group__XCCDF__POLICY.html#ga29f80bb419da8c7801a88bfc68481dcd"></a><br/></td></tr> <tr class="memitem:ga9c8bf5e613dfdd9b33cd4e3b0ce44a0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9c8bf5e613dfdd9b33cd4e3b0ce44a0c"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga9c8bf5e613dfdd9b33cd4e3b0ce44a0c">xccdf_policy_free</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *)</td></tr> <tr class="memdesc:ga9c8bf5e613dfdd9b33cd4e3b0ce44a0c"><td class="mdescLeft"> </td><td class="mdescRight">Destructor of Policy structure. <br/></td></tr> <tr class="memitem:a55385ba195ed4f5fec1d80d4c1823178"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a55385ba195ed4f5fec1d80d4c1823178">xccdf_policy_resolve_fix_substitution</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__fix.html">xccdf_fix</a> *fix, struct <a class="el" href="structxccdf__result.html">xccdf_result</a> *test_result)</td></tr> <tr class="memdesc:a55385ba195ed4f5fec1d80d4c1823178"><td class="mdescLeft"> </td><td class="mdescRight">Resolve text substitution in given fix element. <a href="#a55385ba195ed4f5fec1d80d4c1823178"></a><br/></td></tr> <tr class="memitem:a21a7b4947beb21b58a25c5bea1318b52"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a21a7b4947beb21b58a25c5bea1318b52">xccdf_policy_get_value_of_item</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__item.html">xccdf_item</a> *item)</td></tr> <tr class="memdesc:a21a7b4947beb21b58a25c5bea1318b52"><td class="mdescLeft"> </td><td class="mdescRight">Get value of given value item in context of given policy. <a href="#a21a7b4947beb21b58a25c5bea1318b52"></a><br/></td></tr> <tr class="memitem:a85b303649033e9364d58e557955ef38f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a85b303649033e9364d58e557955ef38f">xccdf_policy_remediate</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__result.html">xccdf_result</a> *result)</td></tr> <tr class="memdesc:a85b303649033e9364d58e557955ef38f"><td class="mdescLeft"> </td><td class="mdescRight">Remediate all rule-results in the given result, with settings of given policy. <a href="#a85b303649033e9364d58e557955ef38f"></a><br/></td></tr> <tr class="memitem:a09a1faa9526b70e7ffbc4d18a70d9b41"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a09a1faa9526b70e7ffbc4d18a70d9b41">xccdf_policy_report_cb</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *sysname, void *rule)</td></tr> <tr class="memdesc:a09a1faa9526b70e7ffbc4d18a70d9b41"><td class="mdescLeft"> </td><td class="mdescRight">Report given "rule" to all callbacks with given sysname registered with the policy. <a href="#a09a1faa9526b70e7ffbc4d18a70d9b41"></a><br/></td></tr> <tr class="memitem:ae3768733365cb3d6ca2a86e0565c32b3"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__benchmark.html">xccdf_benchmark</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#ae3768733365cb3d6ca2a86e0565c32b3">xccdf_policy_get_benchmark</a> (const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr> <tr class="memdesc:ae3768733365cb3d6ca2a86e0565c32b3"><td class="mdescLeft"> </td><td class="mdescRight">Get XCCDF Benchmark for given policy. <a href="#ae3768733365cb3d6ca2a86e0565c32b3"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Getters</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>Return value is pointer to structure's member.</p> <p>Do not free unless you null the pointer in the structure. Use remove function otherwise. </p> </div></td></tr> <tr class="memitem:gac0862a26dae600ce48497cd11e12f22f"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gac0862a26dae600ce48497cd11e12f22f">xccdf_policy_get_model</a> (const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr> <tr class="memdesc:gac0862a26dae600ce48497cd11e12f22f"><td class="mdescLeft"> </td><td class="mdescRight">Get model from Policy (parent structure of Policy to access the benchmark) <a href="group__XCCDF__POLICY.html#gac0862a26dae600ce48497cd11e12f22f"></a><br/></td></tr> <tr class="memitem:ga7b7f39df7639c1d153e8cf6e3bd98753"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b7f39df7639c1d153e8cf6e3bd98753"></a> struct <br class="typebreak"/> xccdf_value_binding_iterator * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga7b7f39df7639c1d153e8cf6e3bd98753">xccdf_policy_get_values</a> (const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *item)</td></tr> <tr class="memdesc:ga7b7f39df7639c1d153e8cf6e3bd98753"><td class="mdescLeft"> </td><td class="mdescRight">Get Value Bindings from XCCDF Policy. <br/></td></tr> <tr class="memitem:ga97af79d841abbbbe6607c6109af5ad3e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__select__iterator.html">xccdf_select_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga97af79d841abbbbe6607c6109af5ad3e">xccdf_policy_get_selected_rules</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *)</td></tr> <tr class="memdesc:ga97af79d841abbbbe6607c6109af5ad3e"><td class="mdescLeft"> </td><td class="mdescRight">Get selected rules from policy. <a href="group__XCCDF__POLICY.html#ga97af79d841abbbbe6607c6109af5ad3e"></a><br/></td></tr> <tr class="memitem:ga5c031cf063b7fd4edc45c71d55488d63"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__profile.html">xccdf_profile</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga5c031cf063b7fd4edc45c71d55488d63">xccdf_policy_get_profile</a> (const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *)</td></tr> <tr class="memdesc:ga5c031cf063b7fd4edc45c71d55488d63"><td class="mdescLeft"> </td><td class="mdescRight">Get XCCDF Profile from Policy. <a href="group__XCCDF__POLICY.html#ga5c031cf063b7fd4edc45c71d55488d63"></a><br/></td></tr> <tr class="memitem:ga18e7a1b999050314284816996d46f7ca"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__select__iterator.html">xccdf_select_iterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga18e7a1b999050314284816996d46f7ca">xccdf_policy_get_selects</a> (const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *)</td></tr> <tr class="memdesc:ga18e7a1b999050314284816996d46f7ca"><td class="mdescLeft"> </td><td class="mdescRight">Get rules from Policy. <a href="group__XCCDF__POLICY.html#ga18e7a1b999050314284816996d46f7ca"></a><br/></td></tr> <tr class="memitem:gac3d9764faa0dd6a6de54503bc7b8b6fb"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gac3d9764faa0dd6a6de54503bc7b8b6fb">xccdf_policy_get_id</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr> <tr class="memdesc:gac3d9764faa0dd6a6de54503bc7b8b6fb"><td class="mdescLeft"> </td><td class="mdescRight">Get ID of XCCDF Profile that is implemented by XCCDF Policy. <a href="group__XCCDF__POLICY.html#gac3d9764faa0dd6a6de54503bc7b8b6fb"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Setters</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>For lists use add functions.</p> <p>Parameters of set functions are duplicated in memory and need to be freed by caller. </p> </div></td></tr> <tr class="memitem:ga0d83f932b1c6ac2161094d7c4126c276"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga0d83f932b1c6ac2161094d7c4126c276">xccdf_policy_add_select</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *, struct <a class="el" href="structxccdf__select.html">xccdf_select</a> *)</td></tr> <tr class="memdesc:ga0d83f932b1c6ac2161094d7c4126c276"><td class="mdescLeft"> </td><td class="mdescRight">Add rule to Policy. <a href="group__XCCDF__POLICY.html#ga0d83f932b1c6ac2161094d7c4126c276"></a><br/></td></tr> <tr class="memitem:gaf034ed2138343743a99e5e89d632701c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gaf034ed2138343743a99e5e89d632701c">xccdf_policy_set_selected</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, char *idref)</td></tr> <tr class="memdesc:gaf034ed2138343743a99e5e89d632701c"><td class="mdescLeft"> </td><td class="mdescRight">Set a new selector to the Policy structure. <a href="group__XCCDF__POLICY.html#gaf034ed2138343743a99e5e89d632701c"></a><br/></td></tr> <tr class="memitem:ga3738807d9e35ea11cc5b20638dc83815"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga3738807d9e35ea11cc5b20638dc83815">xccdf_policy_add_value</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *, struct <a class="el" href="structxccdf__value__binding.html">xccdf_value_binding</a> *)</td></tr> <tr class="memdesc:ga3738807d9e35ea11cc5b20638dc83815"><td class="mdescLeft"> </td><td class="mdescRight">Add value binding to the Policy structure. <a href="group__XCCDF__POLICY.html#ga3738807d9e35ea11cc5b20638dc83815"></a><br/></td></tr> <tr class="memitem:ga4843dfd6b6543450204cd3fa9fe4286f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga4843dfd6b6543450204cd3fa9fe4286f">xccdf_policy_is_item_selected</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *id)</td></tr> <tr class="memdesc:ga4843dfd6b6543450204cd3fa9fe4286f"><td class="mdescLeft"> </td><td class="mdescRight">Get the selection settings of the item. <a href="group__XCCDF__POLICY.html#ga4843dfd6b6543450204cd3fa9fe4286f"></a><br/></td></tr> <tr class="memitem:gafd3e5d89a8bc259470fd63c53c9c92e3"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__select.html">xccdf_select</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gafd3e5d89a8bc259470fd63c53c9c92e3">xccdf_policy_get_select_by_id</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *item_id)</td></tr> <tr class="memdesc:gafd3e5d89a8bc259470fd63c53c9c92e3"><td class="mdescLeft"> </td><td class="mdescRight">Get select from policy by specified ID of XCCDF Item. <a href="group__XCCDF__POLICY.html#gafd3e5d89a8bc259470fd63c53c9c92e3"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Evaluators</div></td></tr> <tr class="memitem:gad09ba99431d50108e4b475506c177b3d"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__result.html">xccdf_result</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gad09ba99431d50108e4b475506c177b3d">xccdf_policy_evaluate</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr> <tr class="memdesc:gad09ba99431d50108e4b475506c177b3d"><td class="mdescLeft"> </td><td class="mdescRight">Call the checking engine for each selected rule in given policy structure. <a href="group__XCCDF__POLICY.html#gad09ba99431d50108e4b475506c177b3d"></a><br/></td></tr> <tr class="memitem:ga5d741243d1b2e062bb802be5f145944c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga5d741243d1b2e062bb802be5f145944c">xccdf_policy_resolve</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr> <tr class="memdesc:ga5d741243d1b2e062bb802be5f145944c"><td class="mdescLeft"> </td><td class="mdescRight">Resolve benchmark by applying all refine_rules and refine_values to rules / values of benchmark. <a href="group__XCCDF__POLICY.html#ga5d741243d1b2e062bb802be5f145944c"></a><br/></td></tr> <tr class="memitem:ga639d867b0f8b7fd93c7d9aa178cfcf25"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga639d867b0f8b7fd93c7d9aa178cfcf25">xccdf_policy_generate_fix</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__result.html">xccdf_result</a> *result, const char *sys, int output_fd)</td></tr> <tr class="memdesc:ga639d867b0f8b7fd93c7d9aa178cfcf25"><td class="mdescLeft"> </td><td class="mdescRight">Generate remediation prescription (presumably a remediation script). <a href="group__XCCDF__POLICY.html#ga639d867b0f8b7fd93c7d9aa178cfcf25"></a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a> Data Fields</h2></td></tr> <tr class="memitem:a0406fc13d1156dafcfab00b88767150f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0406fc13d1156dafcfab00b88767150f"></a> struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a0406fc13d1156dafcfab00b88767150f">model</a></td></tr> <tr class="memdesc:a0406fc13d1156dafcfab00b88767150f"><td class="mdescLeft"> </td><td class="mdescRight">XCCDF Policy model. <br/></td></tr> <tr class="memitem:aa9b356a88ddfb729745dc246d1da9614"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9b356a88ddfb729745dc246d1da9614"></a> struct <a class="el" href="structxccdf__profile.html">xccdf_profile</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#aa9b356a88ddfb729745dc246d1da9614">profile</a></td></tr> <tr class="memdesc:aa9b356a88ddfb729745dc246d1da9614"><td class="mdescLeft"> </td><td class="mdescRight">Profile structure (from benchmark) <br/></td></tr> <tr class="memitem:ad1d1c70c1fbb0e47c62b98011ab9ad7c"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__list.html">oscap_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#ad1d1c70c1fbb0e47c62b98011ab9ad7c">selects</a></td></tr> <tr class="memdesc:ad1d1c70c1fbb0e47c62b98011ab9ad7c"><td class="mdescLeft"> </td><td class="mdescRight">A list of all selects. <a href="#ad1d1c70c1fbb0e47c62b98011ab9ad7c"></a><br/></td></tr> <tr class="memitem:a6439c166d042a4a66361bdaf066de2bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6439c166d042a4a66361bdaf066de2bb"></a> struct <a class="el" href="structoscap__list.html">oscap_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a6439c166d042a4a66361bdaf066de2bb">values</a></td></tr> <tr class="memdesc:a6439c166d042a4a66361bdaf066de2bb"><td class="mdescLeft"> </td><td class="mdescRight">Bound values of profile. <br/></td></tr> <tr class="memitem:a0fb9cc7a5d3e90013bcb311d50f892f7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0fb9cc7a5d3e90013bcb311d50f892f7"></a> struct <a class="el" href="structoscap__list.html">oscap_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a0fb9cc7a5d3e90013bcb311d50f892f7">results</a></td></tr> <tr class="memdesc:a0fb9cc7a5d3e90013bcb311d50f892f7"><td class="mdescLeft"> </td><td class="mdescRight">List of XCCDF results. <br/></td></tr> <tr class="memitem:a22580480019cc3a680691337330bb29b"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__htable.html">oscap_htable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a22580480019cc3a680691337330bb29b">selected_internal</a></td></tr> <tr class="memdesc:a22580480019cc3a680691337330bb29b"><td class="mdescLeft"> </td><td class="mdescRight">A hash which for given item points to the latest selector applicable. <a href="#a22580480019cc3a680691337330bb29b"></a><br/></td></tr> <tr class="memitem:a167438142bcd5b8c8256a328d4ad07bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a167438142bcd5b8c8256a328d4ad07bc"></a> struct <a class="el" href="structoscap__htable.html">oscap_htable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structxccdf__policy.html#a167438142bcd5b8c8256a328d4ad07bc">selected_final</a></td></tr> <tr class="memdesc:a167438142bcd5b8c8256a328d4ad07bc"><td class="mdescLeft"> </td><td class="mdescRight">A hash which for given item defines final selection. <br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>XCCDF policy structure is abstract (class) structure of Profile element from benchmark. </p> <p>Policy structure that abstract benchmark's profile.</p> <p>Structure contains rules and bound values to abstract these lists from the benchmark file. Can be modified temporaly so changes can be discarded or saved to the existing model. </p> </div><hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ae3768733365cb3d6ca2a86e0565c32b3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structxccdf__benchmark.html">xccdf_benchmark</a> * xccdf_policy_get_benchmark </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td> <td class="paramname"><em>policy</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get XCCDF Benchmark for given policy. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">policy</td><td>XCCDF Policy </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>the benchmark element or NULL. </dd></dl> </div> </div> <a class="anchor" id="a21a7b4947beb21b58a25c5bea1318b52"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char * xccdf_policy_get_value_of_item </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td> <td class="paramname"><em>policy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structxccdf__item.html">xccdf_item</a> * </td> <td class="paramname"><em>item</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get value of given value item in context of given policy. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">policy</td><td>XCCDF policy </td></tr> <tr><td class="paramname">item</td><td>the xccdf:Value to resolve </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>string representation of resolved value_instance. </dd></dl> <dl class="retval"><dt>Return values:</dt><dd> <table class="retval"> <tr><td class="paramname">NULL</td><td>indicates failure </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a85b303649033e9364d58e557955ef38f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int xccdf_policy_remediate </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td> <td class="paramname"><em>policy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structxccdf__result.html">xccdf_result</a> * </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Remediate all rule-results in the given result, with settings of given policy. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">policy</td><td>XCCDF Policy </td></tr> <tr><td class="paramname">result</td><td>TestResult containing rule-results to remediate </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a09a1faa9526b70e7ffbc4d18a70d9b41"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int xccdf_policy_report_cb </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td> <td class="paramname"><em>policy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>sysname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>rule</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Report given "rule" to all callbacks with given sysname registered with the policy. </p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">policy</td><td>XCCDF Policy </td></tr> <tr><td class="paramname">sysname</td><td>identifier of the reporting callback </td></tr> <tr><td class="paramname">rule</td><td>pointer to xccdf:Rule or xccdf:rule-result </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>zero on success. Non zero value may indicate user interuption or error. </dd></dl> </div> </div> <a class="anchor" id="a55385ba195ed4f5fec1d80d4c1823178"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int xccdf_policy_resolve_fix_substitution </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td> <td class="paramname"><em>policy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structxccdf__fix.html">xccdf_fix</a> * </td> <td class="paramname"><em>fix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structxccdf__result.html">xccdf_result</a> * </td> <td class="paramname"><em>test_result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Resolve text substitution in given fix element. </p> <p>Use given <a class="el" href="structxccdf__policy.html" title="XCCDF policy structure is abstract (class) structure of Profile element from benchmark.">xccdf_policy</a> settings for resolving.</p> <dl class="params"><dt>Parameters:</dt><dd> <table class="params"> <tr><td class="paramname">policy</td><td>XCCDF policy used for substitution </td></tr> <tr><td class="paramname">fix</td><td>a fix element to modify </td></tr> <tr><td class="paramname">test_resut</td><td>the TestResult for xccdf:fact resolution </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns:</dt><dd>0 on success, 1 on failure, other value indicate warning </dd></dl> </div> </div> <hr/><h2>Field Documentation</h2> <a class="anchor" id="a22580480019cc3a680691337330bb29b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structoscap__htable.html">oscap_htable</a>* xccdf_policy::selected_internal</td> </tr> </table> </div><div class="memdoc"> <p>A hash which for given item points to the latest selector applicable. </p> <p>There might not be one. Note that it migth be a selector for cluster-id. </p> </div> </div> <a class="anchor" id="ad1d1c70c1fbb0e47c62b98011ab9ad7c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structoscap__list.html">oscap_list</a>* xccdf_policy::selects</td> </tr> </table> </div><div class="memdoc"> <p>A list of all selects. </p> <p>Either from profile or later added through API. </p> </div> </div> <hr/>The documentation for this struct was generated from the following files:<ul> <li>xccdf_policy.c</li> <li><a class="el" href="xccdf__policy_8h_source.html">xccdf_policy.h</a></li> <li><a class="el" href="xccdf__policy__priv_8h_source.html">xccdf_policy_priv.h</a></li> </ul> </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>