|
Open SCAP Library
|
00001 00016 /* 00017 * Copyright 2009--2014 Red Hat Inc., Durham, North Carolina. 00018 * All Rights Reserved. 00019 * 00020 * This library is free software; you can redistribute it and/or 00021 * modify it under the terms of the GNU Lesser General Public 00022 * License as published by the Free Software Foundation; either 00023 * version 2.1 of the License, or (at your option) any later version. 00024 * 00025 * This library is distributed in the hope that it will be useful, 00026 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00027 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00028 * Lesser General Public License for more details. 00029 * 00030 * You should have received a copy of the GNU Lesser General Public 00031 * License along with this library; if not, write to the Free Software 00032 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00033 * 00034 * Authors: 00035 * "David Niemoller" <David.Niemoller@g2-inc.com> 00036 * Šimon Lukašík 00037 */ 00038 00039 00040 #ifndef OVAL_SYSTEM_CHARACTERISTICS 00041 #define OVAL_SYSTEM_CHARACTERISTICS 00042 00043 #include "oscap.h" 00044 #include "oscap_source.h" 00045 #include "oval_types.h" 00046 #include "oval_definitions.h" 00047 00049 typedef enum { 00050 SYSCHAR_FLAG_UNKNOWN = 0, 00051 SYSCHAR_FLAG_ERROR = 1, 00052 SYSCHAR_FLAG_COMPLETE = 2, 00053 SYSCHAR_FLAG_INCOMPLETE = 3, 00054 SYSCHAR_FLAG_DOES_NOT_EXIST = 4, 00055 SYSCHAR_FLAG_NOT_COLLECTED = 5, 00056 SYSCHAR_FLAG_NOT_APPLICABLE = 6 00057 } oval_syschar_collection_flag_t; 00058 00060 typedef enum { 00061 SYSCHAR_STATUS_UNKNOWN = 0, 00062 SYSCHAR_STATUS_ERROR = 1, 00063 SYSCHAR_STATUS_EXISTS = 2, 00064 SYSCHAR_STATUS_DOES_NOT_EXIST = 3, 00065 SYSCHAR_STATUS_NOT_COLLECTED = 4 00066 } oval_syschar_status_t; 00067 00069 typedef enum { 00070 OVAL_MESSAGE_LEVEL_NONE = 0, 00071 OVAL_MESSAGE_LEVEL_DEBUG = 1, 00072 OVAL_MESSAGE_LEVEL_INFO = 2, 00073 OVAL_MESSAGE_LEVEL_WARNING = 3, 00074 OVAL_MESSAGE_LEVEL_ERROR = 4, 00075 OVAL_MESSAGE_LEVEL_FATAL = 5 00076 } oval_message_level_t; 00077 00078 const char *oval_syschar_collection_flag_get_text(oval_syschar_collection_flag_t flag); 00079 const char *oval_syschar_status_get_text(oval_syschar_status_t status); 00080 const char *oval_message_level_text(oval_message_level_t); 00081 00082 00083 00084 00085 00086 00093 struct oval_syschar_model; 00094 00101 struct oval_sysinfo; 00105 struct oval_sysinfo_iterator; 00106 00121 struct oval_syschar; 00126 struct oval_syschar_iterator; 00127 00134 struct oval_sysint; 00139 struct oval_sysint_iterator; 00140 00150 struct oval_sysitem; 00155 struct oval_sysitem_iterator; 00156 00160 struct oval_sysent; 00165 struct oval_sysent_iterator; 00166 00171 struct oval_message; 00175 struct oval_message_iterator; 00176 00181 struct oval_variable_binding; 00185 struct oval_variable_binding_iterator; 00186 00187 00188 00189 00190 00197 struct oval_syschar_model *oval_syschar_model_new(struct oval_definition_model *definition_model); 00198 00207 int oval_syschar_model_import_source(struct oval_syschar_model *model, struct oscap_source *source); 00208 00220 OSCAP_DEPRECATED(int oval_syschar_model_import(struct oval_syschar_model *model, const char *file)); 00226 struct oval_syschar_model *oval_syschar_model_clone(struct oval_syschar_model *); 00231 int oval_syschar_model_export(struct oval_syschar_model *, const char *file); 00237 void oval_syschar_model_free(struct oval_syschar_model *model); 00238 00243 void oval_syschar_model_set_generator(struct oval_syschar_model *model, struct oval_generator *generator); 00249 int oval_syschar_model_bind_variable_model(struct oval_syschar_model *, struct oval_variable_model *); 00253 void oval_syschar_model_set_sysinfo(struct oval_syschar_model *model, struct oval_sysinfo *sysinfo); 00260 struct oval_generator *oval_syschar_model_get_generator(struct oval_syschar_model *model); 00266 struct oval_definition_model *oval_syschar_model_get_definition_model(struct oval_syschar_model *model); 00272 struct oval_syschar_iterator *oval_syschar_model_get_syschars(struct oval_syschar_model *model); 00278 struct oval_sysinfo *oval_syschar_model_get_sysinfo(struct oval_syschar_model *model); 00286 struct oval_syschar *oval_syschar_model_get_syschar(struct oval_syschar_model *model, const char *object_id); 00291 int oval_syschar_model_compute_variable(struct oval_syschar_model *, struct oval_variable *); 00292 oval_syschar_collection_flag_t oval_variable_get_collection_flag(struct oval_variable *); 00296 struct oval_sysitem *oval_syschar_model_get_sysitem(struct oval_syschar_model *, const char *); 00313 struct oval_sysinfo *oval_sysinfo_new(struct oval_syschar_model *); 00318 struct oval_sysinfo *oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo); 00322 void oval_sysinfo_free(struct oval_sysinfo *); 00323 00331 void oval_sysinfo_set_os_name(struct oval_sysinfo *, char *); 00335 void oval_sysinfo_set_os_version(struct oval_sysinfo *, char *); 00339 void oval_sysinfo_set_os_architecture(struct oval_sysinfo *, char *); 00343 void oval_sysinfo_set_primary_host_name(struct oval_sysinfo *, char *); 00347 void oval_sysinfo_add_interface(struct oval_sysinfo *, struct oval_sysint *); 00358 char *oval_sysinfo_get_os_name(struct oval_sysinfo *); 00359 00364 char *oval_sysinfo_get_os_version(struct oval_sysinfo *); 00365 00370 char *oval_sysinfo_get_os_architecture(struct oval_sysinfo *); 00371 00376 char *oval_sysinfo_get_primary_host_name(struct oval_sysinfo *); 00377 00382 struct oval_sysint_iterator *oval_sysinfo_get_interfaces(struct oval_sysinfo *); 00392 bool oval_sysinfo_iterator_has_more(struct oval_sysinfo_iterator *); 00396 struct oval_sysinfo *oval_sysinfo_iterator_next(struct oval_sysinfo_iterator *); 00400 void oval_sysinfo_iterator_free(struct oval_sysinfo_iterator *); 00417 struct oval_syschar *oval_syschar_new(struct oval_syschar_model *, struct oval_object *); 00422 struct oval_syschar *oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar); 00426 void oval_syschar_free(struct oval_syschar *); 00427 00435 void oval_syschar_add_variable_binding(struct oval_syschar *, struct oval_variable_binding *); 00439 void oval_syschar_set_flag(struct oval_syschar *model, oval_syschar_collection_flag_t flag); 00443 void oval_syschar_set_object(struct oval_syschar *, struct oval_object *); 00449 int oval_syschar_get_variable_instance(const struct oval_syschar *syschar); 00456 void oval_syschar_set_variable_instance(struct oval_syschar *syschar, int variable_instance_in); 00460 void oval_syschar_add_sysitem(struct oval_syschar *, struct oval_sysitem *); 00464 void oval_syschar_add_message(struct oval_syschar *syschar, struct oval_message *message); 00468 void oval_syschar_add_new_message(struct oval_syschar *syschar, char *text, oval_message_level_t level); 00479 oval_syschar_collection_flag_t oval_syschar_get_flag(struct oval_syschar *); 00480 00485 struct oval_message_iterator *oval_syschar_get_messages(struct oval_syschar *); 00486 00491 struct oval_object *oval_syschar_get_object(struct oval_syschar *); 00492 00497 struct oval_variable_binding_iterator *oval_syschar_get_variable_bindings(struct oval_syschar *); 00498 00503 struct oval_sysitem_iterator *oval_syschar_get_sysitem(struct oval_syschar *); 00513 bool oval_syschar_iterator_has_more(struct oval_syschar_iterator *); 00517 struct oval_syschar *oval_syschar_iterator_next(struct oval_syschar_iterator *); 00521 void oval_syschar_iterator_free(struct oval_syschar_iterator *); 00538 struct oval_sysint *oval_sysint_new(struct oval_syschar_model *); 00543 struct oval_sysint *oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint); 00547 void oval_sysint_free(struct oval_sysint *); 00548 00556 void oval_sysint_set_name(struct oval_sysint *, char *); 00560 void oval_sysint_set_ip_address(struct oval_sysint *, char *); 00564 void oval_sysint_set_mac_address(struct oval_sysint *, char *); 00575 char *oval_sysint_get_name(struct oval_sysint *); 00576 00581 char *oval_sysint_get_ip_address(struct oval_sysint *); 00582 00587 char *oval_sysint_get_mac_address(struct oval_sysint *); 00597 bool oval_sysint_iterator_has_more(struct oval_sysint_iterator *); 00601 struct oval_sysint *oval_sysint_iterator_next(struct oval_sysint_iterator *); 00605 void oval_sysint_iterator_free(struct oval_sysint_iterator *); 00622 struct oval_sysitem *oval_sysitem_new(struct oval_syschar_model *, const char *id); 00627 struct oval_sysitem *oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_data); 00631 void oval_sysitem_free(struct oval_sysitem *); 00632 00640 void oval_sysitem_set_status(struct oval_sysitem *, oval_syschar_status_t); 00644 void oval_sysitem_set_subtype(struct oval_sysitem *sysitem, oval_subtype_t subtype); 00648 void oval_sysitem_add_message(struct oval_sysitem *, struct oval_message *); 00652 void oval_sysitem_add_sysent(struct oval_sysitem *, struct oval_sysent *); 00663 char *oval_sysitem_get_id(struct oval_sysitem *); 00668 oval_syschar_status_t oval_sysitem_get_status(struct oval_sysitem *); 00673 struct oval_sysent_iterator *oval_sysitem_get_sysents(struct oval_sysitem *); 00678 struct oval_message_iterator *oval_sysitem_get_messages(struct oval_sysitem *); 00683 oval_subtype_t oval_sysitem_get_subtype(struct oval_sysitem *); 00693 bool oval_sysitem_iterator_has_more(struct oval_sysitem_iterator *); 00697 struct oval_sysitem *oval_sysitem_iterator_next(struct oval_sysitem_iterator *); 00701 void oval_sysitem_iterator_free(struct oval_sysitem_iterator *); 00718 struct oval_sysent *oval_sysent_new(struct oval_syschar_model *); 00723 struct oval_sysent *oval_sysent_clone(struct oval_syschar_model *new_model, struct oval_sysent *old_item); 00727 void oval_sysent_free(struct oval_sysent *); 00735 void oval_sysent_set_name(struct oval_sysent *sysent, char *name); 00739 void oval_sysent_set_value(struct oval_sysent *sysent, char *value); 00743 void oval_sysent_add_record_field(struct oval_sysent *, struct oval_record_field *); 00747 void oval_sysent_set_status(struct oval_sysent *sysent, oval_syschar_status_t status); 00751 void oval_sysent_set_datatype(struct oval_sysent *sysent, oval_datatype_t type); 00755 void oval_sysent_set_mask(struct oval_sysent *sysent, int mask); 00766 char *oval_sysent_get_name(struct oval_sysent *); 00767 00772 char *oval_sysent_get_value(struct oval_sysent *); 00773 00777 struct oval_record_field_iterator *oval_sysent_get_record_fields(struct oval_sysent *); 00778 00783 oval_syschar_status_t oval_sysent_get_status(struct oval_sysent *); 00784 00789 oval_datatype_t oval_sysent_get_datatype(struct oval_sysent *); 00790 00795 int oval_sysent_get_mask(struct oval_sysent *); 00805 bool oval_sysent_iterator_has_more(struct oval_sysent_iterator *); 00809 struct oval_sysent *oval_sysent_iterator_next(struct oval_sysent_iterator *); 00813 void oval_sysent_iterator_free(struct oval_sysent_iterator *); 00829 void oval_record_field_set_status(struct oval_record_field *, oval_syschar_status_t); 00838 oval_syschar_status_t oval_record_field_get_status(struct oval_record_field *); 00844 struct oval_message *oval_message_new(void); 00849 struct oval_message *oval_message_clone(struct oval_message *old_message); 00853 void oval_message_free(struct oval_message *); 00854 00862 void oval_message_set_text(struct oval_message *, char *); 00866 void oval_message_set_level(struct oval_message *, oval_message_level_t); 00877 char *oval_message_get_text(struct oval_message *message); 00882 oval_message_level_t oval_message_get_level(struct oval_message *message); 00892 bool oval_message_iterator_has_more(struct oval_message_iterator *oc_message); 00896 struct oval_message *oval_message_iterator_next(struct oval_message_iterator *oc_message); 00900 void oval_message_iterator_free(struct oval_message_iterator *oc_message); 00907 struct oval_variable_binding *oval_variable_binding_new(struct oval_variable *, char *); 00912 struct oval_variable_binding *oval_variable_binding_clone(struct oval_variable_binding *, 00913 struct oval_definition_model *); 00917 void oval_variable_binding_free(struct oval_variable_binding *); 00918 00926 void oval_variable_binding_set_variable(struct oval_variable_binding *, struct oval_variable *); 00930 void oval_variable_binding_add_value(struct oval_variable_binding *, char *); 00941 struct oval_variable *oval_variable_binding_get_variable(struct oval_variable_binding *); 00946 struct oval_string_iterator *oval_variable_binding_get_values(struct oval_variable_binding *); 00956 bool oval_variable_binding_iterator_has_more(struct oval_variable_binding_iterator *); 00960 struct oval_variable_binding *oval_variable_binding_iterator_next(struct oval_variable_binding_iterator *); 00964 void oval_variable_binding_iterator_free(struct oval_variable_binding_iterator *); 00971 #endif
1.7.3