Open SCAP Library
Loading...
Searching...
No Matches
oval_system_characteristics.h
Go to the documentation of this file.
1
16/*
17 * Copyright 2009--2014 Red Hat Inc., Durham, North Carolina.
18 * All Rights Reserved.
19 *
20 * This library is free software; you can redistribute it and/or
21 * modify it under the terms of the GNU Lesser General Public
22 * License as published by the Free Software Foundation; either
23 * version 2.1 of the License, or (at your option) any later version.
24 *
25 * This library is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28 * Lesser General Public License for more details.
29 *
30 * You should have received a copy of the GNU Lesser General Public
31 * License along with this library; if not, write to the Free Software
32 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 *
34 * Authors:
35 * "David Niemoller" <David.Niemoller@g2-inc.com>
36 * Šimon Lukašík
37 */
38
39
40#ifndef OVAL_SYSTEM_CHARACTERISTICS
41#define OVAL_SYSTEM_CHARACTERISTICS
42
43#include "oscap.h"
44#include "oscap_source.h"
45#include "oval_types.h"
46#include "oval_definitions.h"
47#include "oscap_export.h"
48
50typedef enum {
51 SYSCHAR_FLAG_UNKNOWN = 0,
52 SYSCHAR_FLAG_ERROR = 1,
53 SYSCHAR_FLAG_COMPLETE = 2,
54 SYSCHAR_FLAG_INCOMPLETE = 3,
55 SYSCHAR_FLAG_DOES_NOT_EXIST = 4,
56 SYSCHAR_FLAG_NOT_COLLECTED = 5,
57 SYSCHAR_FLAG_NOT_APPLICABLE = 6
59
61typedef enum {
62 SYSCHAR_STATUS_UNKNOWN = 0,
63 SYSCHAR_STATUS_ERROR = 1,
64 SYSCHAR_STATUS_EXISTS = 2,
65 SYSCHAR_STATUS_DOES_NOT_EXIST = 3,
66 SYSCHAR_STATUS_NOT_COLLECTED = 4
68
70typedef enum {
71 OVAL_MESSAGE_LEVEL_NONE = 0,
72 OVAL_MESSAGE_LEVEL_DEBUG = 1,
73 OVAL_MESSAGE_LEVEL_INFO = 2,
74 OVAL_MESSAGE_LEVEL_WARNING = 3,
75 OVAL_MESSAGE_LEVEL_ERROR = 4,
76 OVAL_MESSAGE_LEVEL_FATAL = 5
78
79OSCAP_API const char *oval_syschar_collection_flag_get_text(oval_syschar_collection_flag_t flag);
80OSCAP_API const char *oval_syschar_status_get_text(oval_syschar_status_t status);
81OSCAP_API const char *oval_message_level_text(oval_message_level_t);
82
83
84
85
86
87
95
102struct oval_sysinfo;
107
122struct oval_syschar;
128
135struct oval_sysint;
141
151struct oval_sysitem;
157
161struct oval_sysent;
167
172struct oval_message;
177
187
188
189
190
191
198OSCAP_API struct oval_syschar_model *oval_syschar_model_new(struct oval_definition_model *definition_model);
199
208OSCAP_API int oval_syschar_model_import_source(struct oval_syschar_model *model, struct oscap_source *source);
209
220OSCAP_API int oval_syschar_model_export(struct oval_syschar_model *, const char *file);
226OSCAP_API void oval_syschar_model_free(struct oval_syschar_model *model);
227
232OSCAP_API void oval_syschar_model_set_generator(struct oval_syschar_model *model, struct oval_generator *generator);
242OSCAP_API void oval_syschar_model_set_sysinfo(struct oval_syschar_model *model, struct oval_sysinfo *sysinfo);
249OSCAP_API struct oval_generator *oval_syschar_model_get_generator(struct oval_syschar_model *model);
255OSCAP_API struct oval_definition_model *oval_syschar_model_get_definition_model(struct oval_syschar_model *model);
261OSCAP_API struct oval_syschar_iterator *oval_syschar_model_get_syschars(struct oval_syschar_model *model);
267OSCAP_API struct oval_sysinfo *oval_syschar_model_get_sysinfo(struct oval_syschar_model *model);
275OSCAP_API struct oval_syschar *oval_syschar_model_get_syschar(struct oval_syschar_model *model, const char *object_id);
280OSCAP_API int oval_syschar_model_compute_variable(struct oval_syschar_model *, struct oval_variable *);
281OSCAP_API oval_syschar_collection_flag_t oval_variable_get_collection_flag(struct oval_variable *);
285OSCAP_API struct oval_sysitem *oval_syschar_model_get_sysitem(struct oval_syschar_model *, const char *);
302OSCAP_API struct oval_sysinfo *oval_sysinfo_new(struct oval_syschar_model *);
307OSCAP_API struct oval_sysinfo *oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo);
311OSCAP_API void oval_sysinfo_free(struct oval_sysinfo *);
312
320OSCAP_API void oval_sysinfo_set_os_name(struct oval_sysinfo *, char *);
324OSCAP_API void oval_sysinfo_set_os_version(struct oval_sysinfo *, char *);
328OSCAP_API void oval_sysinfo_set_os_architecture(struct oval_sysinfo *, char *);
332OSCAP_API void oval_sysinfo_set_primary_host_name(struct oval_sysinfo *, char *);
336OSCAP_API void oval_sysinfo_add_interface(struct oval_sysinfo *, struct oval_sysint *);
347OSCAP_API char *oval_sysinfo_get_os_name(struct oval_sysinfo *);
348
353OSCAP_API char *oval_sysinfo_get_os_version(struct oval_sysinfo *);
354
359OSCAP_API char *oval_sysinfo_get_os_architecture(struct oval_sysinfo *);
360
365OSCAP_API char *oval_sysinfo_get_primary_host_name(struct oval_sysinfo *);
366
371OSCAP_API struct oval_sysint_iterator *oval_sysinfo_get_interfaces(struct oval_sysinfo *);
381OSCAP_API bool oval_sysinfo_iterator_has_more(struct oval_sysinfo_iterator *);
385OSCAP_API struct oval_sysinfo *oval_sysinfo_iterator_next(struct oval_sysinfo_iterator *);
389OSCAP_API void oval_sysinfo_iterator_free(struct oval_sysinfo_iterator *);
406OSCAP_API struct oval_syschar *oval_syschar_new(struct oval_syschar_model *, struct oval_object *);
411OSCAP_API struct oval_syschar *oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar);
415OSCAP_API void oval_syschar_free(struct oval_syschar *);
416
424OSCAP_API void oval_syschar_add_variable_binding(struct oval_syschar *, struct oval_variable_binding *);
428OSCAP_API void oval_syschar_set_flag(struct oval_syschar *model, oval_syschar_collection_flag_t flag);
432OSCAP_API void oval_syschar_set_object(struct oval_syschar *, struct oval_object *);
438OSCAP_API int oval_syschar_get_variable_instance(const struct oval_syschar *syschar);
445OSCAP_API void oval_syschar_set_variable_instance(struct oval_syschar *syschar, int variable_instance_in);
449OSCAP_API void oval_syschar_add_sysitem(struct oval_syschar *, struct oval_sysitem *);
453OSCAP_API void oval_syschar_add_message(struct oval_syschar *syschar, struct oval_message *message);
457OSCAP_API void oval_syschar_add_new_message(struct oval_syschar *syschar, char *text, oval_message_level_t level);
469
474OSCAP_API struct oval_message_iterator *oval_syschar_get_messages(struct oval_syschar *);
475
480OSCAP_API struct oval_object *oval_syschar_get_object(struct oval_syschar *);
481
486OSCAP_API struct oval_variable_binding_iterator *oval_syschar_get_variable_bindings(struct oval_syschar *);
487
492OSCAP_API struct oval_sysitem_iterator *oval_syschar_get_sysitem(struct oval_syschar *);
502OSCAP_API bool oval_syschar_iterator_has_more(struct oval_syschar_iterator *);
506OSCAP_API struct oval_syschar *oval_syschar_iterator_next(struct oval_syschar_iterator *);
510OSCAP_API void oval_syschar_iterator_free(struct oval_syschar_iterator *);
527OSCAP_API struct oval_sysint *oval_sysint_new(struct oval_syschar_model *);
532OSCAP_API struct oval_sysint *oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint);
536OSCAP_API void oval_sysint_free(struct oval_sysint *);
537
545OSCAP_API void oval_sysint_set_name(struct oval_sysint *, char *);
549OSCAP_API void oval_sysint_set_ip_address(struct oval_sysint *, char *);
553OSCAP_API void oval_sysint_set_mac_address(struct oval_sysint *, char *);
564OSCAP_API char *oval_sysint_get_name(struct oval_sysint *);
565
570OSCAP_API char *oval_sysint_get_ip_address(struct oval_sysint *);
571
576OSCAP_API char *oval_sysint_get_mac_address(struct oval_sysint *);
586OSCAP_API bool oval_sysint_iterator_has_more(struct oval_sysint_iterator *);
590OSCAP_API struct oval_sysint *oval_sysint_iterator_next(struct oval_sysint_iterator *);
594OSCAP_API void oval_sysint_iterator_free(struct oval_sysint_iterator *);
611OSCAP_API struct oval_sysitem *oval_sysitem_new(struct oval_syschar_model *, const char *id);
616OSCAP_API struct oval_sysitem *oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_data);
620OSCAP_API void oval_sysitem_free(struct oval_sysitem *);
621
629OSCAP_API void oval_sysitem_set_status(struct oval_sysitem *, oval_syschar_status_t);
633OSCAP_API void oval_sysitem_set_subtype(struct oval_sysitem *sysitem, oval_subtype_t subtype);
637OSCAP_API void oval_sysitem_add_message(struct oval_sysitem *, struct oval_message *);
641OSCAP_API void oval_sysitem_add_sysent(struct oval_sysitem *, struct oval_sysent *);
652OSCAP_API char *oval_sysitem_get_id(struct oval_sysitem *);
662OSCAP_API struct oval_sysent_iterator *oval_sysitem_get_sysents(struct oval_sysitem *);
667OSCAP_API struct oval_message_iterator *oval_sysitem_get_messages(struct oval_sysitem *);
672OSCAP_API oval_subtype_t oval_sysitem_get_subtype(struct oval_sysitem *);
682OSCAP_API bool oval_sysitem_iterator_has_more(struct oval_sysitem_iterator *);
686OSCAP_API struct oval_sysitem *oval_sysitem_iterator_next(struct oval_sysitem_iterator *);
690OSCAP_API void oval_sysitem_iterator_free(struct oval_sysitem_iterator *);
707OSCAP_API struct oval_sysent *oval_sysent_new(struct oval_syschar_model *);
712OSCAP_API struct oval_sysent *oval_sysent_clone(struct oval_syschar_model *new_model, struct oval_sysent *old_item);
716OSCAP_API void oval_sysent_free(struct oval_sysent *);
724OSCAP_API void oval_sysent_set_name(struct oval_sysent *sysent, char *name);
728OSCAP_API void oval_sysent_set_value(struct oval_sysent *sysent, char *value);
732OSCAP_API void oval_sysent_add_record_field(struct oval_sysent *, struct oval_record_field *);
736OSCAP_API void oval_sysent_set_status(struct oval_sysent *sysent, oval_syschar_status_t status);
740OSCAP_API void oval_sysent_set_datatype(struct oval_sysent *sysent, oval_datatype_t type);
744OSCAP_API void oval_sysent_set_mask(struct oval_sysent *sysent, int mask);
755OSCAP_API char *oval_sysent_get_name(struct oval_sysent *);
756
761OSCAP_API char *oval_sysent_get_value(struct oval_sysent *);
762
766OSCAP_API struct oval_record_field_iterator *oval_sysent_get_record_fields(struct oval_sysent *);
767
772OSCAP_API oval_syschar_status_t oval_sysent_get_status(struct oval_sysent *);
773
778OSCAP_API oval_datatype_t oval_sysent_get_datatype(struct oval_sysent *);
779
784OSCAP_API int oval_sysent_get_mask(struct oval_sysent *);
794OSCAP_API bool oval_sysent_iterator_has_more(struct oval_sysent_iterator *);
798OSCAP_API struct oval_sysent *oval_sysent_iterator_next(struct oval_sysent_iterator *);
802OSCAP_API void oval_sysent_iterator_free(struct oval_sysent_iterator *);
818OSCAP_API void oval_record_field_set_status(struct oval_record_field *, oval_syschar_status_t);
827OSCAP_API oval_syschar_status_t oval_record_field_get_status(struct oval_record_field *);
833OSCAP_API struct oval_message *oval_message_new(void);
838OSCAP_API struct oval_message *oval_message_clone(struct oval_message *old_message);
842OSCAP_API void oval_message_free(struct oval_message *);
843
851OSCAP_API void oval_message_set_text(struct oval_message *, char *);
855OSCAP_API void oval_message_set_level(struct oval_message *, oval_message_level_t);
866OSCAP_API char *oval_message_get_text(struct oval_message *message);
881OSCAP_API bool oval_message_iterator_has_more(struct oval_message_iterator *oc_message);
885OSCAP_API struct oval_message *oval_message_iterator_next(struct oval_message_iterator *oc_message);
889OSCAP_API void oval_message_iterator_free(struct oval_message_iterator *oc_message);
896OSCAP_API struct oval_variable_binding *oval_variable_binding_new(struct oval_variable *, char *);
902 struct oval_definition_model *);
906OSCAP_API void oval_variable_binding_free(struct oval_variable_binding *);
907
915OSCAP_API void oval_variable_binding_set_variable(struct oval_variable_binding *, struct oval_variable *);
919OSCAP_API void oval_variable_binding_add_value(struct oval_variable_binding *, char *);
930OSCAP_API struct oval_variable *oval_variable_binding_get_variable(struct oval_variable_binding *);
935OSCAP_API struct oval_string_iterator *oval_variable_binding_get_values(struct oval_variable_binding *);
945OSCAP_API bool oval_variable_binding_iterator_has_more(struct oval_variable_binding_iterator *);
949OSCAP_API struct oval_variable_binding *oval_variable_binding_iterator_next(struct oval_variable_binding_iterator *);
953OSCAP_API void oval_variable_binding_iterator_free(struct oval_variable_binding_iterator *);
960#endif
oval_datatype_t
Datatypes.
Definition oval_definitions.h:149
OSCAP_API int oval_syschar_model_import_source(struct oval_syschar_model *model, struct oscap_source *source)
Import the content from the oscap_source into an oval_syschar_model.
Definition oval_sysModel.c:233
OSCAP_API struct oval_message * oval_message_clone(struct oval_message *old_message)
Definition oval_message.c:62
OSCAP_API struct oval_sysitem * oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_data)
Definition oval_sysItem.c:76
OSCAP_API int oval_syschar_get_variable_instance(const struct oval_syschar *syschar)
Gets the variable_instance attribute of the syschar.
Definition oval_syschar.c:376
OSCAP_API char * oval_sysinfo_get_os_architecture(struct oval_sysinfo *)
Get operating system architecture.
Definition oval_sysInfo.c:174
OSCAP_API void oval_syschar_model_free(struct oval_syschar_model *model)
Free memory allocated to a specified syschar model.
Definition oval_sysModel.c:139
OSCAP_API char * oval_sysent_get_name(struct oval_sysent *)
Get system data item name.
Definition oval_sysEnt.c:130
OSCAP_API char * oval_sysinfo_get_os_version(struct oval_sysinfo *)
Get operating system version.
Definition oval_sysInfo.c:161
OSCAP_API int oval_syschar_model_bind_variable_model(struct oval_syschar_model *, struct oval_variable_model *)
Bind a variable model to the definitions bound to the syschar model.
Definition oval_sysModel.c:267
oval_syschar_collection_flag_t
System characteristics result flag.
Definition oval_system_characteristics.h:50
OSCAP_API oval_syschar_collection_flag_t oval_syschar_get_flag(struct oval_syschar *)
Get system characteristic flag.
Definition oval_syschar.c:58
OSCAP_API struct oval_sysinfo * oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo)
Definition oval_sysInfo.c:71
OSCAP_API char * oval_sysint_get_ip_address(struct oval_sysint *)
Get interface IP address.
Definition oval_sysInterface.c:84
OSCAP_API struct oval_syschar_model * oval_syschar_model_new(struct oval_definition_model *definition_model)
Create new oval_syschar_model.
Definition oval_sysModel.c:69
OSCAP_API char * oval_sysinfo_get_os_name(struct oval_sysinfo *)
Get operating system name.
Definition oval_sysInfo.c:145
OSCAP_API struct oval_variable_binding * oval_variable_binding_clone(struct oval_variable_binding *, struct oval_definition_model *)
Definition oval_variableBinding.c:120
oval_message_level_t
Message level.
Definition oval_system_characteristics.h:70
OSCAP_API char * oval_sysinfo_get_primary_host_name(struct oval_sysinfo *)
Get primary host name of the tested machine.
Definition oval_sysInfo.c:187
OSCAP_API oval_message_level_t oval_message_get_level(struct oval_message *message)
Get OVAL message level.
Definition oval_message.c:110
OSCAP_API char * oval_sysitem_get_id(struct oval_sysitem *)
Get system data ID.
Definition oval_sysItem.c:149
OSCAP_API struct oval_sysent * oval_sysent_clone(struct oval_syschar_model *new_model, struct oval_sysent *old_item)
Definition oval_sysEnt.c:74
OSCAP_API struct oval_sysint * oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint)
Definition oval_sysInterface.c:125
oval_syschar_status_t
System characteristics status.
Definition oval_system_characteristics.h:61
OSCAP_API struct oval_syschar * oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar)
Definition oval_syschar.c:166
OSCAP_API char * oval_sysent_get_value(struct oval_sysent *)
Get system data item value.
Definition oval_sysEnt.c:144
OSCAP_API char * oval_message_get_text(struct oval_message *message)
Get OVAL message text.
Definition oval_message.c:102
OSCAP_API char * oval_sysint_get_name(struct oval_sysint *)
Get interface name.
Definition oval_sysInterface.c:69
OSCAP_API char * oval_sysint_get_mac_address(struct oval_sysint *)
Get interface MAC address.
Definition oval_sysInterface.c:99
OSCAP_API void oval_syschar_set_variable_instance(struct oval_syschar *syschar, int variable_instance_in)
Sets the variable_instance attribute of the syschar.
Definition oval_syschar.c:382
OSCAP_API struct oval_syschar_model * oval_syschar_model_clone(struct oval_syschar_model *)
Copy an oval_syschar_model.
Definition oval_sysModel.c:119
OSCAP_API oval_syschar_status_t oval_sysitem_get_status(struct oval_sysitem *)
Get system data status.
Definition oval_sysItem.c:179
OSCAP_API int oval_syschar_model_export(struct oval_syschar_model *, const char *file)
Export system characteristics into file.
Definition oval_sysModel.c:397
oval_subtype_t
Unknown subtypes.
Definition oval_types.h:127
General OpenScap functions and types.
Definition oscap_source.c:66
Oval definition model.
Definition oval_defModel.c:53
Definition oval_generator.c:47
OVAL message.
Definition oval_message.c:45
An Oval_object instance describes a set of items to look for on an instrumented host platform.
Definition oval_object.c:45
Definition oval_recordField.c:35
OVAL System Characteristics model.
Definition oval_sysModel.c:56
Characteristics bound to an Oval_object.
Definition oval_syschar.c:47
Definition oval_sysEnt.c:48
General instrumented host description.
Definition oval_sysInfo.c:45
Network interface description.
Definition oval_sysInterface.c:45
Each instance of Oval_sysitem represents one item.
Definition oval_sysItem.c:45
Binding of an value to an OVAL variable.
Definition oval_variableBinding.c:45
The OVAL variable model facilitates access to external variable value bindings used to to constrain t...
Definition oval_varModel.c:56
An oval variable resolves an oval_value stream which specifies constraints for oval_object s and ova...
Definition oval_variable.c:50