Open SCAP Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
xccdf_policy_engine_priv.h
1 /*
2  * Copyright 2014 Red Hat Inc., Durham, North Carolina.
3  * All Rights Reserved.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Authors:
20  * Simon Lukasik <slukasik@redhat.com>
21  *
22  */
23 
24 #pragma once
25 #ifndef _OSCAP_XCCDF_POLICY_ENGINE_PRIV_H
26 #define _OSCAP_XCCDF_POLICY_ENGINE_PRIV_H
27 
28 #include "common/util.h"
29 #include "common/list.h"
30 #include "public/xccdf_policy.h"
31 
32 OSCAP_HIDDEN_START;
33 
39 struct xccdf_policy_engine;
40 
49 struct xccdf_policy_engine *xccdf_policy_engine_new(char *sys, xccdf_policy_engine_eval_fn eval_fn, void *usr, xccdf_policy_engine_query_fn query_fn);
50 
55 bool xccdf_policy_engine_filter(struct xccdf_policy_engine *cb, const char *sysname);
56 
68 xccdf_test_result_type_t xccdf_policy_engine_eval(struct xccdf_policy_engine *engine, struct xccdf_policy *policy, const char *definition_id, const char *href_id, struct oscap_list *value_bindings, struct xccdf_check_import_iterator *check_import_it);
69 
78 struct oscap_stringlist *xccdf_policy_engine_query(struct xccdf_policy_engine *engine, xccdf_policy_engine_query_t query_type, void *query_data);
79 
80 OSCAP_HIDDEN_END;
81 
82 #endif
A collection of strings.
Definition: oscap_text.h:59
Open-scap XCCDF Policy library interface.
xccdf_test_result_type_t(* xccdf_policy_engine_eval_fn)(struct xccdf_policy *policy, const char *rule_id, const char *definition_id, const char *href_if, struct xccdf_value_binding_iterator *value_binding_it, struct xccdf_check_import_iterator *check_imports_it, void *user_data)
Type of function which implements OpenSCAP checking engine.
Definition: xccdf_policy.h:98
Check import iterator.
Definition: xccdf_benchmark.h:539
Definition: xccdf_policy_engine.c:33
xccdf_test_result_type_t
Test result.
Definition: xccdf_benchmark.h:168
Definition: list.h:54
void * usr
User data structure.
Definition: xccdf_policy_engine.c:36
xccdf_policy_engine_query_fn query_fn
query callback function
Definition: xccdf_policy_engine.c:37
struct oscap_stringlist * xccdf_policy_engine_query(struct xccdf_policy_engine *engine, xccdf_policy_engine_query_t query_type, void *query_data)
Execute the query function of the given checking engine.
Definition: xccdf_policy_engine.c:72
XCCDF policy structure is abstract (class) structure of Profile element from benchmark.
Definition: xccdf_policy_priv.h:58
xccdf_policy_engine_query_t
Type of a query over checking-engine data.
Definition: xccdf_policy.h:70
xccdf_test_result_type_t xccdf_policy_engine_eval(struct xccdf_policy_engine *engine, struct xccdf_policy *policy, const char *definition_id, const char *href_id, struct oscap_list *value_bindings, struct xccdf_check_import_iterator *check_import_it)
Execute the eval function of the given checking engine.
Definition: xccdf_policy_engine.c:57
void *(* xccdf_policy_engine_query_fn)(void *, xccdf_policy_engine_query_t, void *)
Type of function which implements queries defined within xccdf_policy_engine_query_t.
Definition: xccdf_policy.h:88