00001
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
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
00143 struct oval_sysdata;
00148 struct oval_sysdata_iterator;
00149
00160 struct oval_sysitem;
00165 struct oval_sysitem_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
00195 int oval_syschar_model_import(struct oval_syschar_model *model, struct oscap_import_source *source, void *user_arg);
00202 struct oval_syschar_model *oval_syschar_model_new(struct oval_definition_model *definition_model);
00208 struct oval_syschar_model *oval_syschar_model_clone(struct oval_syschar_model *);
00213 int oval_syschar_model_export(struct oval_syschar_model *, struct oscap_export_target *);
00219 void oval_syschar_model_free(struct oval_syschar_model *model);
00220
00229 void oval_syschar_model_bind_variable_model(struct oval_syschar_model *, struct oval_variable_model *);
00233 void oval_syschar_model_add_syschar(struct oval_syschar_model *model, struct oval_syschar *syschar);
00237 void oval_syschar_model_add_sysdata(struct oval_syschar_model *model, struct oval_sysdata *sysdata);
00241 void oval_syschar_model_set_sysinfo(struct oval_syschar_model *model, struct oval_sysinfo *sysinfo);
00245 void oval_syschar_model_add_variable_binding(struct oval_syschar_model *model, struct oval_variable_binding *binding);
00252 void oval_syschar_model_lock(struct oval_syschar_model *syschar_model);
00264 struct oval_definition_model *oval_syschar_model_get_definition_model(struct oval_syschar_model *model);
00270 struct oval_syschar_iterator *oval_syschar_model_get_syschars(struct oval_syschar_model *model);
00276 struct oval_sysinfo *oval_syschar_model_get_sysinfo(struct oval_syschar_model *model);
00284 struct oval_syschar *oval_syschar_model_get_syschar(struct oval_syschar_model *model, char *object_id);
00289 oval_syschar_collection_flag_t oval_syschar_model_get_variable_collection_flag(struct oval_syschar_model *,
00290 struct oval_variable *);
00295 struct oval_value_iterator *oval_syschar_model_get_variable_values(struct oval_syschar_model *, struct oval_variable *);
00299 struct oval_sysdata *oval_syschar_model_get_sysdata(struct oval_syschar_model *, char *);
00305 bool oval_syschar_model_is_locked(struct oval_syschar_model *syschar_model);
00318 int oval_syschar_model_probe_objects(struct oval_syschar_model *);
00324 int oval_syschar_model_probe_sysinfo(struct oval_syschar_model *);
00334 bool oval_syschar_model_is_valid(struct oval_syschar_model *syschar_model);
00345 struct oval_sysinfo *oval_sysinfo_new(struct oval_syschar_model *);
00350 struct oval_sysinfo *oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo);
00354 void oval_sysinfo_free(struct oval_sysinfo *);
00355
00363 void oval_sysinfo_set_os_name(struct oval_sysinfo *, char *);
00367 void oval_sysinfo_set_os_version(struct oval_sysinfo *, char *);
00371 void oval_sysinfo_set_os_architecture(struct oval_sysinfo *, char *);
00375 void oval_sysinfo_set_primary_host_name(struct oval_sysinfo *, char *);
00379 void oval_sysinfo_add_interface(struct oval_sysinfo *, struct oval_sysint *);
00390 char *oval_sysinfo_get_os_name(struct oval_sysinfo *);
00391
00396 char *oval_sysinfo_get_os_version(struct oval_sysinfo *);
00397
00402 char *oval_sysinfo_get_os_architecture(struct oval_sysinfo *);
00403
00408 char *oval_sysinfo_get_primary_host_name(struct oval_sysinfo *);
00409
00414 struct oval_sysint_iterator *oval_sysinfo_get_interfaces(struct oval_sysinfo *);
00420 bool oval_sysinfo_is_locked(struct oval_sysinfo *sysinfo);
00430 bool oval_sysinfo_iterator_has_more(struct oval_sysinfo_iterator *);
00434 struct oval_sysinfo *oval_sysinfo_iterator_next(struct oval_sysinfo_iterator *);
00438 void oval_sysinfo_iterator_free(struct oval_sysinfo_iterator *);
00449 bool oval_sysinfo_is_valid(struct oval_sysinfo *sysinfo);
00460 struct oval_syschar *oval_syschar_new(struct oval_syschar_model *, struct oval_object *);
00465 struct oval_syschar *oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar);
00469 void oval_syschar_free(struct oval_syschar *);
00470
00478 void oval_syschar_add_variable_binding(struct oval_syschar *, struct oval_variable_binding *);
00482 void oval_syschar_set_flag(struct oval_syschar *model, oval_syschar_collection_flag_t flag);
00486 void oval_syschar_set_object(struct oval_syschar *, struct oval_object *);
00490 void oval_syschar_add_sysdata(struct oval_syschar *, struct oval_sysdata *);
00494 void oval_syschar_add_message(struct oval_syschar *syschar, struct oval_message *message);
00505 oval_syschar_collection_flag_t oval_syschar_get_flag(struct oval_syschar *);
00506
00511 struct oval_message_iterator *oval_syschar_get_messages(struct oval_syschar *);
00512
00517 struct oval_object *oval_syschar_get_object(struct oval_syschar *);
00518
00523 struct oval_variable_binding_iterator *oval_syschar_get_variable_bindings(struct oval_syschar *);
00524
00529 struct oval_sysdata_iterator *oval_syschar_get_sysdata(struct oval_syschar *);
00535 bool oval_syschar_is_locked(struct oval_syschar *syschar);
00545 bool oval_syschar_iterator_has_more(struct oval_syschar_iterator *);
00549 struct oval_syschar *oval_syschar_iterator_next(struct oval_syschar_iterator *);
00553 void oval_syschar_iterator_free(struct oval_syschar_iterator *);
00568 bool oval_syschar_is_valid(struct oval_syschar *syschar);
00579 struct oval_sysint *oval_sysint_new(struct oval_syschar_model *);
00584 struct oval_sysint *oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint);
00588 void oval_sysint_free(struct oval_sysint *);
00589
00597 void oval_sysint_set_name(struct oval_sysint *, char *);
00601 void oval_sysint_set_ip_address(struct oval_sysint *, char *);
00605 void oval_sysint_set_mac_address(struct oval_sysint *, char *);
00616 char *oval_sysint_get_name(struct oval_sysint *);
00617
00622 char *oval_sysint_get_ip_address(struct oval_sysint *);
00623
00628 char *oval_sysint_get_mac_address(struct oval_sysint *);
00634 bool oval_sysint_is_locked(struct oval_sysint *sysint);
00644 bool oval_sysint_iterator_has_more(struct oval_sysint_iterator *);
00648 struct oval_sysint *oval_sysint_iterator_next(struct oval_sysint_iterator *);
00652 void oval_sysint_iterator_free(struct oval_sysint_iterator *);
00663 bool oval_sysint_is_valid(struct oval_sysint *sysint);
00674 struct oval_sysdata *oval_sysdata_new(struct oval_syschar_model *, char *id);
00679 struct oval_sysdata *oval_sysdata_clone(struct oval_syschar_model *new_model, struct oval_sysdata *old_data);
00683 void oval_sysdata_free(struct oval_sysdata *);
00684
00692 void oval_sysdata_set_status(struct oval_sysdata *, oval_syschar_status_t);
00696 void oval_sysdata_set_subtype(struct oval_sysdata *sysdata, oval_subtype_t subtype);
00700 void oval_sysdata_set_message(struct oval_sysdata *data, char *message);
00704 void oval_sysdata_set_message_level(struct oval_sysdata *data, oval_message_level_t level);
00708 void oval_sysdata_add_item(struct oval_sysdata *, struct oval_sysitem *);
00719 char *oval_sysdata_get_id(struct oval_sysdata *);
00724 oval_syschar_status_t oval_sysdata_get_status(struct oval_sysdata *);
00729 struct oval_sysitem_iterator *oval_sysdata_get_items(struct oval_sysdata *);
00734 char *oval_sysdata_get_message(struct oval_sysdata *);
00739 oval_message_level_t oval_sysdata_get_message_level(struct oval_sysdata *);
00744 oval_subtype_t oval_sysdata_get_subtype(struct oval_sysdata *);
00750 bool oval_sysdata_is_locked(struct oval_sysdata *sysdata);
00760 bool oval_sysdata_iterator_has_more(struct oval_sysdata_iterator *);
00764 struct oval_sysdata *oval_sysdata_iterator_next(struct oval_sysdata_iterator *);
00768 void oval_sysdata_iterator_free(struct oval_sysdata_iterator *);
00781 bool oval_sysdata_is_valid(struct oval_sysdata *sysdata);
00792 struct oval_sysitem *oval_sysitem_new(struct oval_syschar_model *);
00797 struct oval_sysitem *oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_item);
00801 void oval_sysitem_free(struct oval_sysitem *);
00809 void oval_sysitem_set_name(struct oval_sysitem *sysitem, char *name);
00813 void oval_sysitem_set_value(struct oval_sysitem *sysitem, char *value);
00817 void oval_sysitem_set_status(struct oval_sysitem *sysitem, oval_syschar_status_t status);
00821 void oval_sysitem_set_datatype(struct oval_sysitem *sysitem, oval_datatype_t type);
00825 void oval_sysitem_set_mask(struct oval_sysitem *sysitem, int mask);
00836 char *oval_sysitem_get_name(struct oval_sysitem *);
00837
00842 char *oval_sysitem_get_value(struct oval_sysitem *);
00843
00848 oval_syschar_status_t oval_sysitem_get_status(struct oval_sysitem *);
00849
00854 oval_datatype_t oval_sysitem_get_datatype(struct oval_sysitem *);
00855
00860 int oval_sysitem_get_mask(struct oval_sysitem *);
00866 bool oval_sysitem_is_locked(struct oval_sysitem *sysitem);
00876 bool oval_sysitem_iterator_has_more(struct oval_sysitem_iterator *);
00880 struct oval_sysitem *oval_sysitem_iterator_next(struct oval_sysitem_iterator *);
00884 void oval_sysitem_iterator_free(struct oval_sysitem_iterator *);
00895 bool oval_sysitem_is_valid(struct oval_sysitem *sysitem);
00905 struct oval_message *oval_message_new(void);
00910 struct oval_message *oval_message_clone(struct oval_message *old_message);
00914 void oval_message_free(struct oval_message *);
00915
00923 void oval_message_set_text(struct oval_message *, char *);
00927 void oval_message_set_level(struct oval_message *, oval_message_level_t);
00938 char *oval_message_get_text(struct oval_message *message);
00943 oval_message_level_t oval_message_get_level(struct oval_message *message);
00949 bool oval_message_is_locked(struct oval_message *message);
00959 bool oval_message_iterator_has_more(struct oval_message_iterator *oc_message);
00963 struct oval_message *oval_message_iterator_next(struct oval_message_iterator *oc_message);
00967 void oval_message_iterator_free(struct oval_message_iterator *oc_message);
00978 bool oval_message_is_valid(struct oval_message *message);
00979
00980
00981
00982
00983
00987 struct oval_variable_binding *oval_variable_binding_new(struct oval_variable *, char *);
00992 struct oval_variable_binding *oval_variable_binding_clone(struct oval_variable_binding *,
00993 struct oval_definition_model *);
00997 void oval_variable_binding_free(struct oval_variable_binding *);
00998
01006 void oval_variable_binding_set_variable(struct oval_variable_binding *, struct oval_variable *);
01010 void oval_variable_binding_set_value(struct oval_variable_binding *, char *);
01021 struct oval_variable *oval_variable_binding_get_variable(struct oval_variable_binding *);
01026 char *oval_variable_binding_get_value(struct oval_variable_binding *);
01036 bool oval_variable_binding_iterator_has_more(struct oval_variable_binding_iterator *);
01040 struct oval_variable_binding *oval_variable_binding_iterator_next(struct oval_variable_binding_iterator *);
01044 void oval_variable_binding_iterator_free(struct oval_variable_binding_iterator *);
01051 #endif