Open SCAP Library

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
oscap_stringlist
A collection of strings.
Definition: oscap_text.h:59
xccdf_policy.h
Open-scap XCCDF Policy library interface.
xccdf_check_import_iterator
Check import iterator.
Definition: xccdf_benchmark.h:539
xccdf_policy_engine
Definition: xccdf_policy_engine.c:33
xccdf_policy_engine_query_fn
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
xccdf_test_result_type_t
xccdf_test_result_type_t
Test result.
Definition: xccdf_benchmark.h:168
oscap_list
Definition: list.h:54
xccdf_policy_engine_eval_fn
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
xccdf_policy_engine::usr
void * usr
User data structure.
Definition: xccdf_policy_engine.c:36
xccdf_policy_engine::query_fn
xccdf_policy_engine_query_fn query_fn
query callback function
Definition: xccdf_policy_engine.c:37
xccdf_policy_engine::xccdf_policy_engine_query
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
XCCDF policy structure is abstract (class) structure of Profile element from benchmark.
Definition: xccdf_policy_priv.h:58
xccdf_policy_engine_query_t
xccdf_policy_engine_query_t
Type of a query over checking-engine data.
Definition: xccdf_policy.h:70
xccdf_policy_engine::xccdf_policy_engine_eval
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