Open SCAP Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
check_engine_plugin.h
Go to the documentation of this file.
1 
11 /*
12  * Copyright 2013 Red Hat Inc., Durham, North Carolina.
13  * All Rights Reserved.
14  *
15  * This library is free software; you can redistribute it and/or
16  * modify it under the terms of the GNU Lesser General Public
17  * License as published by the Free Software Foundation; either
18  * version 2.1 of the License, or (at your option) any later version.
19  *
20  * This library is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23  * Lesser General Public License for more details.
24  *
25  * You should have received a copy of the GNU Lesser General Public
26  * License along with this library; if not, write to the Free Software
27  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28  *
29  */
30 
31 #ifndef OPENSCAP_CHECK_ENGINE_PLUGIN_H_
32 #define OPENSCAP_CHECK_ENGINE_PLUGIN_H_
33 
34 #include "xccdf_policy.h"
35 
37 {
38  int _reserved; // FIXME: version checking?
39 
40  void *module_handle;
41  void *user_data;
42 
43  // NB: path hint is the input file path, can be used for relative path resolution
44 
45  // first arg: policy model to register with, second arg: path hint, third arg: user data
46  int (*register_fn)(struct xccdf_policy_model *, const char*, void**);
47  // first arg: policy model, second arg: user data
48  int (*cleanup_fn)(struct xccdf_policy_model *, void**);
49  // first arg: policy model, second arg: validate, third arg: path hint, fourth arg: user data
50  int (*export_results_fn)(struct xccdf_policy_model *, bool, const char*, void**);
51  // first arg: user data
52  const char *(*get_capabilities_fn)(void**);
53 };
54 
55 struct check_engine_plugin_def *check_engine_plugin_load2(const char* path, bool quiet);
56 struct check_engine_plugin_def *check_engine_plugin_load(const char* path);
57 void check_engine_plugin_unload(struct check_engine_plugin_def *plugin);
58 
59 int check_engine_plugin_register(struct check_engine_plugin_def *plugin, struct xccdf_policy_model *model, const char *path_hint);
60 int check_engine_plugin_cleanup(struct check_engine_plugin_def *plugin, struct xccdf_policy_model *model);
61 int check_engine_plugin_export_results(struct check_engine_plugin_def *plugin, struct xccdf_policy_model *model, bool validate, const char *path_hint);
62 const char *check_engine_plugin_get_capabilities(struct check_engine_plugin_def *plugin);
63 
68 
69 #define OPENSCAP_CHECK_ENGINE_PLUGIN_ENTRY OPENSCAP_CHECK_ENGINE_PLUGIN_ENTRY
70 
76 const char * const *check_engine_plugin_get_known_plugins(void);
77 
80 #endif
const char *const * check_engine_plugin_get_known_plugins(void)
Retrieves list of plugin names that are known to OpenSCAP.
Definition: check_engine_plugin.c:201
Open-scap XCCDF Policy library interface.
XCCDF policy model structure contains xccdf_benchmark as reference to Benchmark element in XML file a...
Definition: xccdf_policy_priv.h:39
int(* check_engine_plugin_entry_fn)(struct check_engine_plugin_def *)
This is the entry point of shared objects implementing extra check engines.
Definition: check_engine_plugin.h:67
Definition: check_engine_plugin.h:36