Open SCAP Library
|
00001 00016 /* 00017 * Copyright 2009-2010 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 */ 00037 00038 00039 #ifndef OVAL_SYSTEM_CHARACTERISTICS 00040 #define OVAL_SYSTEM_CHARACTERISTICS 00041 00042 #include "oval_types.h" 00043 #include "oval_definitions.h" 00044 00046 typedef enum { 00047 SYSCHAR_FLAG_UNKNOWN = 0, 00048 SYSCHAR_FLAG_ERROR = 1, 00049 SYSCHAR_FLAG_COMPLETE = 2, 00050 SYSCHAR_FLAG_INCOMPLETE = 3, 00051 SYSCHAR_FLAG_DOES_NOT_EXIST = 4, 00052 SYSCHAR_FLAG_NOT_COLLECTED = 5, 00053 SYSCHAR_FLAG_NOT_APPLICABLE = 6 00054 } oval_syschar_collection_flag_t; 00055 00057 typedef enum { 00058 SYSCHAR_STATUS_UNKNOWN = 0, 00059 SYSCHAR_STATUS_ERROR = 1, 00060 SYSCHAR_STATUS_EXISTS = 2, 00061 SYSCHAR_STATUS_DOES_NOT_EXIST = 3, 00062 SYSCHAR_STATUS_NOT_COLLECTED = 4 00063 } oval_syschar_status_t; 00064 00066 typedef enum { 00067 OVAL_MESSAGE_LEVEL_NONE = 0, 00068 OVAL_MESSAGE_LEVEL_DEBUG = 1, 00069 OVAL_MESSAGE_LEVEL_INFO = 2, 00070 OVAL_MESSAGE_LEVEL_WARNING = 3, 00071 OVAL_MESSAGE_LEVEL_ERROR = 4, 00072 OVAL_MESSAGE_LEVEL_FATAL = 5 00073 } oval_message_level_t; 00074 00075 const char *oval_syschar_collection_flag_get_text(oval_syschar_collection_flag_t flag); 00076 const char *oval_syschar_status_get_text(oval_syschar_status_t status); 00077 const char *oval_message_level_text(oval_message_level_t); 00078 00079 00080 00081 00082 00083 00090 struct oval_syschar_model; 00091 00098 struct oval_sysinfo; 00102 struct oval_sysinfo_iterator; 00103 00118 struct oval_syschar; 00123 struct oval_syschar_iterator; 00124 00131 struct oval_sysint; 00136 struct oval_sysint_iterator; 00137 00147 struct oval_sysitem; 00152 struct oval_sysitem_iterator; 00153 00157 struct oval_sysent; 00162 struct oval_sysent_iterator; 00163 00168 struct oval_message; 00172 struct oval_message_iterator; 00173 00178 struct oval_variable_binding; 00182 struct oval_variable_binding_iterator; 00183 00184 00185 00186 00187 00194 struct oval_syschar_model *oval_syschar_model_new(struct oval_definition_model *definition_model); 00195 00204 int oval_syschar_model_import(struct oval_syschar_model *model, const char *file); 00210 struct oval_syschar_model *oval_syschar_model_clone(struct oval_syschar_model *); 00215 int oval_syschar_model_export(struct oval_syschar_model *, const char *file); 00221 void oval_syschar_model_free(struct oval_syschar_model *model); 00222 00227 void oval_syschar_model_set_generator(struct oval_syschar_model *model, struct oval_generator *generator); 00233 int oval_syschar_model_bind_variable_model(struct oval_syschar_model *, struct oval_variable_model *); 00237 void oval_syschar_model_set_sysinfo(struct oval_syschar_model *model, struct oval_sysinfo *sysinfo); 00244 struct oval_generator *oval_syschar_model_get_generator(struct oval_syschar_model *model); 00250 struct oval_definition_model *oval_syschar_model_get_definition_model(struct oval_syschar_model *model); 00256 struct oval_syschar_iterator *oval_syschar_model_get_syschars(struct oval_syschar_model *model); 00262 struct oval_sysinfo *oval_syschar_model_get_sysinfo(struct oval_syschar_model *model); 00270 struct oval_syschar *oval_syschar_model_get_syschar(struct oval_syschar_model *model, const char *object_id); 00275 int oval_syschar_model_compute_variable(struct oval_syschar_model *, struct oval_variable *); 00276 oval_syschar_collection_flag_t oval_variable_get_collection_flag(struct oval_variable *); 00280 struct oval_sysitem *oval_syschar_model_get_sysitem(struct oval_syschar_model *, const char *); 00297 struct oval_sysinfo *oval_sysinfo_new(struct oval_syschar_model *); 00302 struct oval_sysinfo *oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo); 00306 void oval_sysinfo_free(struct oval_sysinfo *); 00307 00315 void oval_sysinfo_set_os_name(struct oval_sysinfo *, char *); 00319 void oval_sysinfo_set_os_version(struct oval_sysinfo *, char *); 00323 void oval_sysinfo_set_os_architecture(struct oval_sysinfo *, char *); 00327 void oval_sysinfo_set_primary_host_name(struct oval_sysinfo *, char *); 00331 void oval_sysinfo_add_interface(struct oval_sysinfo *, struct oval_sysint *); 00342 char *oval_sysinfo_get_os_name(struct oval_sysinfo *); 00343 00348 char *oval_sysinfo_get_os_version(struct oval_sysinfo *); 00349 00354 char *oval_sysinfo_get_os_architecture(struct oval_sysinfo *); 00355 00360 char *oval_sysinfo_get_primary_host_name(struct oval_sysinfo *); 00361 00366 struct oval_sysint_iterator *oval_sysinfo_get_interfaces(struct oval_sysinfo *); 00376 bool oval_sysinfo_iterator_has_more(struct oval_sysinfo_iterator *); 00380 struct oval_sysinfo *oval_sysinfo_iterator_next(struct oval_sysinfo_iterator *); 00384 void oval_sysinfo_iterator_free(struct oval_sysinfo_iterator *); 00401 struct oval_syschar *oval_syschar_new(struct oval_syschar_model *, struct oval_object *); 00406 struct oval_syschar *oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar); 00410 void oval_syschar_free(struct oval_syschar *); 00411 00419 void oval_syschar_add_variable_binding(struct oval_syschar *, struct oval_variable_binding *); 00423 void oval_syschar_set_flag(struct oval_syschar *model, oval_syschar_collection_flag_t flag); 00427 void oval_syschar_set_object(struct oval_syschar *, struct oval_object *); 00431 void oval_syschar_add_sysitem(struct oval_syschar *, struct oval_sysitem *); 00435 void oval_syschar_add_message(struct oval_syschar *syschar, struct oval_message *message); 00439 void oval_syschar_add_new_message(struct oval_syschar *syschar, char *text, oval_message_level_t level); 00450 oval_syschar_collection_flag_t oval_syschar_get_flag(struct oval_syschar *); 00451 00456 struct oval_message_iterator *oval_syschar_get_messages(struct oval_syschar *); 00457 00462 struct oval_object *oval_syschar_get_object(struct oval_syschar *); 00463 00468 struct oval_variable_binding_iterator *oval_syschar_get_variable_bindings(struct oval_syschar *); 00469 00474 struct oval_sysitem_iterator *oval_syschar_get_sysitem(struct oval_syschar *); 00484 bool oval_syschar_iterator_has_more(struct oval_syschar_iterator *); 00488 struct oval_syschar *oval_syschar_iterator_next(struct oval_syschar_iterator *); 00492 void oval_syschar_iterator_free(struct oval_syschar_iterator *); 00509 struct oval_sysint *oval_sysint_new(struct oval_syschar_model *); 00514 struct oval_sysint *oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint); 00518 void oval_sysint_free(struct oval_sysint *); 00519 00527 void oval_sysint_set_name(struct oval_sysint *, char *); 00531 void oval_sysint_set_ip_address(struct oval_sysint *, char *); 00535 void oval_sysint_set_mac_address(struct oval_sysint *, char *); 00546 char *oval_sysint_get_name(struct oval_sysint *); 00547 00552 char *oval_sysint_get_ip_address(struct oval_sysint *); 00553 00558 char *oval_sysint_get_mac_address(struct oval_sysint *); 00568 bool oval_sysint_iterator_has_more(struct oval_sysint_iterator *); 00572 struct oval_sysint *oval_sysint_iterator_next(struct oval_sysint_iterator *); 00576 void oval_sysint_iterator_free(struct oval_sysint_iterator *); 00593 struct oval_sysitem *oval_sysitem_new(struct oval_syschar_model *, const char *id); 00598 struct oval_sysitem *oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_data); 00602 void oval_sysitem_free(struct oval_sysitem *); 00603 00611 void oval_sysitem_set_status(struct oval_sysitem *, oval_syschar_status_t); 00615 void oval_sysitem_set_subtype(struct oval_sysitem *sysitem, oval_subtype_t subtype); 00619 void oval_sysitem_add_message(struct oval_sysitem *, struct oval_message *); 00623 void oval_sysitem_add_sysent(struct oval_sysitem *, struct oval_sysent *); 00634 char *oval_sysitem_get_id(struct oval_sysitem *); 00639 oval_syschar_status_t oval_sysitem_get_status(struct oval_sysitem *); 00644 struct oval_sysent_iterator *oval_sysitem_get_sysents(struct oval_sysitem *); 00649 struct oval_message_iterator *oval_sysitem_get_messages(struct oval_sysitem *); 00654 oval_subtype_t oval_sysitem_get_subtype(struct oval_sysitem *); 00664 bool oval_sysitem_iterator_has_more(struct oval_sysitem_iterator *); 00668 struct oval_sysitem *oval_sysitem_iterator_next(struct oval_sysitem_iterator *); 00672 void oval_sysitem_iterator_free(struct oval_sysitem_iterator *); 00689 struct oval_sysent *oval_sysent_new(struct oval_syschar_model *); 00694 struct oval_sysent *oval_sysent_clone(struct oval_syschar_model *new_model, struct oval_sysent *old_item); 00698 void oval_sysent_free(struct oval_sysent *); 00706 void oval_sysent_set_name(struct oval_sysent *sysent, char *name); 00710 void oval_sysent_set_value(struct oval_sysent *sysent, char *value); 00714 void oval_sysent_add_record_field(struct oval_sysent *, struct oval_record_field *); 00718 void oval_sysent_set_status(struct oval_sysent *sysent, oval_syschar_status_t status); 00722 void oval_sysent_set_datatype(struct oval_sysent *sysent, oval_datatype_t type); 00726 void oval_sysent_set_mask(struct oval_sysent *sysent, int mask); 00737 char *oval_sysent_get_name(struct oval_sysent *); 00738 00743 char *oval_sysent_get_value(struct oval_sysent *); 00744 00748 struct oval_record_field_iterator *oval_sysent_get_record_fields(struct oval_sysent *); 00749 00754 oval_syschar_status_t oval_sysent_get_status(struct oval_sysent *); 00755 00760 oval_datatype_t oval_sysent_get_datatype(struct oval_sysent *); 00761 00766 int oval_sysent_get_mask(struct oval_sysent *); 00776 bool oval_sysent_iterator_has_more(struct oval_sysent_iterator *); 00780 struct oval_sysent *oval_sysent_iterator_next(struct oval_sysent_iterator *); 00784 void oval_sysent_iterator_free(struct oval_sysent_iterator *); 00800 void oval_record_field_set_status(struct oval_record_field *, oval_syschar_status_t); 00809 oval_syschar_status_t oval_record_field_get_status(struct oval_record_field *); 00815 struct oval_message *oval_message_new(void); 00820 struct oval_message *oval_message_clone(struct oval_message *old_message); 00824 void oval_message_free(struct oval_message *); 00825 00833 void oval_message_set_text(struct oval_message *, char *); 00837 void oval_message_set_level(struct oval_message *, oval_message_level_t); 00848 char *oval_message_get_text(struct oval_message *message); 00853 oval_message_level_t oval_message_get_level(struct oval_message *message); 00863 bool oval_message_iterator_has_more(struct oval_message_iterator *oc_message); 00867 struct oval_message *oval_message_iterator_next(struct oval_message_iterator *oc_message); 00871 void oval_message_iterator_free(struct oval_message_iterator *oc_message); 00878 struct oval_variable_binding *oval_variable_binding_new(struct oval_variable *, char *); 00883 struct oval_variable_binding *oval_variable_binding_clone(struct oval_variable_binding *, 00884 struct oval_definition_model *); 00888 void oval_variable_binding_free(struct oval_variable_binding *); 00889 00897 void oval_variable_binding_set_variable(struct oval_variable_binding *, struct oval_variable *); 00901 void oval_variable_binding_add_value(struct oval_variable_binding *, char *); 00912 struct oval_variable *oval_variable_binding_get_variable(struct oval_variable_binding *); 00917 struct oval_string_iterator *oval_variable_binding_get_values(struct oval_variable_binding *); 00927 bool oval_variable_binding_iterator_has_more(struct oval_variable_binding_iterator *); 00931 struct oval_variable_binding *oval_variable_binding_iterator_next(struct oval_variable_binding_iterator *); 00935 void oval_variable_binding_iterator_free(struct oval_variable_binding_iterator *); 00942 #endif