00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OVAL_SYSTEM_CHARACTERISTICS
00024 #define OVAL_SYSTEM_CHARACTERISTICS
00025
00026 #include "oval_definitions.h"
00027
00035
00036 typedef enum {
00037 SYSCHAR_FLAG_UNKNOWN = 0,
00038 SYSCHAR_FLAG_ERROR = 1,
00039 SYSCHAR_FLAG_COMPLETE = 2,
00040 SYSCHAR_FLAG_INCOMPLETE = 3,
00041 SYSCHAR_FLAG_DOES_NOT_EXIST = 4,
00042 SYSCHAR_FLAG_NOT_COLLECTED = 5,
00043 SYSCHAR_FLAG_NOT_APPLICABLE = 6
00044 } oval_syschar_collection_flag_t;
00045
00047 typedef enum {
00048 SYSCHAR_STATUS_UNKNOWN = 0,
00049 SYSCHAR_STATUS_ERROR = 1,
00050 SYSCHAR_STATUS_EXISTS = 2,
00051 SYSCHAR_STATUS_DOES_NOT_EXIST = 3,
00052 SYSCHAR_STATUS_NOT_COLLECTED = 4
00053 } oval_syschar_status_t;
00081 struct oval_syschar_model;
00082
00113 struct oval_sysint;
00118 struct oval_sysint_iterator;
00150 struct oval_sysinfo;
00155 struct oval_sysinfo_iterator;
00195 struct oval_syschar;
00200 struct oval_syschar_iterator;
00231 struct oval_sysdata;
00236 struct oval_sysdata_iterator;
00272 struct oval_sysitem;
00277 struct oval_sysitem_iterator;
00287 struct oval_syschar_model *oval_syschar_model_new(struct oval_definition_model *definition_model);
00292 bool oval_syschar_model_is_valid(struct oval_syschar_model *syschar_model);
00298 bool oval_syschar_model_is_locked(struct oval_syschar_model *syschar_model);
00305 void oval_syschar_model_lock(struct oval_syschar_model *syschar_model);
00310 struct oval_syschar_model *oval_syschar_model_clone(struct oval_syschar_model *);
00316 void oval_syschar_model_free(struct oval_syschar_model *model);
00317
00323 struct oval_definition_model *oval_syschar_model_get_definition_model(struct oval_syschar_model *model);
00329 struct oval_syschar_iterator *oval_syschar_model_get_syschars(struct oval_syschar_model *model);
00330
00336 struct oval_sysinfo *oval_syschar_model_get_sysinfo(struct oval_syschar_model *model);
00337
00346 struct oval_syschar *oval_syschar_model_get_syschar(struct oval_syschar_model *model, char *object_id);
00347
00352 void oval_syschar_model_bind_variable_model(struct oval_syschar_model *, struct oval_variable_model *);
00353
00358 void oval_syschar_model_probe_objects(struct oval_syschar_model *);
00359
00364 oval_syschar_collection_flag_t oval_syschar_model_get_variable_collection_flag(struct oval_syschar_model *,
00365 struct oval_variable *);
00366
00371 struct oval_value_iterator *oval_syschar_model_get_variable_values(struct oval_syschar_model *, struct oval_variable *);
00375 struct oval_sysdata *oval_syschar_model_get_sysdata(struct oval_syschar_model *, char *);
00379 void oval_syschar_model_add_syschar(struct oval_syschar_model *model, struct oval_syschar *syschar);
00383 void oval_syschar_model_add_sysdata(struct oval_syschar_model *model, struct oval_sysdata *sysdata);
00387 void oval_syschar_model_set_sysinfo(struct oval_syschar_model *model, struct oval_sysinfo *sysinfo);
00391 void oval_syschar_model_add_variable_binding(struct oval_syschar_model *model, struct oval_variable_binding *binding);
00392
00397 int oval_syschar_model_export(struct oval_syschar_model *, struct oscap_export_target *);
00398
00403 int oval_syschar_model_import(struct oval_syschar_model *model, struct oscap_import_source *source, void *user_arg);
00404
00408 bool oval_sysint_iterator_has_more(struct oval_sysint_iterator *);
00412 struct oval_sysint *oval_sysint_iterator_next(struct oval_sysint_iterator *);
00416 void oval_sysint_iterator_free(struct oval_sysint_iterator *);
00417
00422 char *oval_sysint_get_name(struct oval_sysint *);
00423
00428 char *oval_sysint_get_ip_address(struct oval_sysint *);
00429
00434 char *oval_sysint_get_mac_address(struct oval_sysint *);
00438 bool oval_sysinfo_iterator_has_more(struct oval_sysinfo_iterator *);
00442 struct oval_sysinfo *oval_sysinfo_iterator_next(struct oval_sysinfo_iterator *);
00446 void oval_sysinfo_iterator_free(struct oval_sysinfo_iterator *);
00447
00452 char *oval_sysinfo_get_os_name(struct oval_sysinfo *);
00453
00458 char *oval_sysinfo_get_os_version(struct oval_sysinfo *);
00459
00464 char *oval_sysinfo_get_os_architecture(struct oval_sysinfo *);
00465
00470 char *oval_sysinfo_get_primary_host_name(struct oval_sysinfo *);
00471
00476 struct oval_sysint_iterator *oval_sysinfo_get_interfaces(struct oval_sysinfo *);
00480 bool oval_sysdata_iterator_has_more(struct oval_sysdata_iterator *);
00484 struct oval_sysdata *oval_sysdata_iterator_next(struct oval_sysdata_iterator *);
00488 void oval_sysdata_iterator_free(struct oval_sysdata_iterator *);
00489
00494 oval_subtype_t oval_sysdata_get_subtype(struct oval_sysdata *);
00495
00500 char *oval_sysdata_get_id(struct oval_sysdata *);
00501
00506 oval_syschar_status_t oval_sysdata_get_status(struct oval_sysdata *);
00507
00512 struct oval_sysitem_iterator *oval_sysdata_get_items(struct oval_sysdata *);
00513
00518 char *oval_sysdata_get_message(struct oval_sysdata *);
00519
00524 oval_message_level_t oval_sysdata_get_message_level(struct oval_sysdata *);
00528 bool oval_sysitem_iterator_has_more(struct oval_sysitem_iterator *);
00532 struct oval_sysitem *oval_sysitem_iterator_next(struct oval_sysitem_iterator *);
00536 void oval_sysitem_iterator_free(struct oval_sysitem_iterator *);
00537
00542 char *oval_sysitem_get_name(struct oval_sysitem *);
00543
00548 char *oval_sysitem_get_value(struct oval_sysitem *);
00549
00554 oval_syschar_status_t oval_sysitem_get_status(struct oval_sysitem *);
00555
00560 oval_datatype_t oval_sysitem_get_datatype(struct oval_sysitem *);
00561
00566 int oval_sysitem_get_mask(struct oval_sysitem *);
00570 bool oval_syschar_iterator_has_more(struct oval_syschar_iterator *);
00574 struct oval_syschar *oval_syschar_iterator_next(struct oval_syschar_iterator *);
00578 void oval_syschar_iterator_free(struct oval_syschar_iterator *);
00579
00584 oval_syschar_collection_flag_t oval_syschar_get_flag(struct oval_syschar *);
00585
00590 struct oval_message_iterator *oval_syschar_get_messages(struct oval_syschar *);
00591
00596 struct oval_object *oval_syschar_get_object(struct oval_syschar *);
00597
00602 struct oval_variable_binding_iterator *oval_syschar_get_variable_bindings(struct oval_syschar *);
00603
00608 struct oval_sysdata_iterator *oval_syschar_get_sysdata(struct oval_syschar *);
00609
00610 const char *oval_syschar_collection_flag_get_text(oval_syschar_collection_flag_t flag);
00611 const char *oval_syschar_status_get_text(oval_syschar_status_t status);
00612
00616 struct oval_sysint *oval_sysint_new(struct oval_syschar_model *);
00621 bool oval_sysint_is_valid(struct oval_sysint *sysint);
00627 bool oval_sysint_is_locked(struct oval_sysint *sysint);
00631 struct oval_sysint *oval_sysint_clone(struct oval_syschar_model *new_model, struct oval_sysint *old_sysint);
00635 void oval_sysint_free(struct oval_sysint *);
00639 void oval_sysint_set_name(struct oval_sysint *, char *);
00643 void oval_sysint_set_ip_address(struct oval_sysint *, char *);
00647 void oval_sysint_set_mac_address(struct oval_sysint *, char *);
00651 struct oval_sysinfo *oval_sysinfo_new(struct oval_syschar_model *);
00656 bool oval_sysinfo_is_valid(struct oval_sysinfo *sysinfo);
00662 bool oval_sysinfo_is_locked(struct oval_sysinfo *sysinfo);
00666 struct oval_sysinfo *oval_sysinfo_clone(struct oval_syschar_model *new_model, struct oval_sysinfo *old_sysinfo);
00670 void oval_sysinfo_free(struct oval_sysinfo *);
00674 void oval_sysinfo_set_os_name(struct oval_sysinfo *, char *);
00678 void oval_sysinfo_set_os_version(struct oval_sysinfo *, char *);
00682 void oval_sysinfo_set_os_architecture(struct oval_sysinfo *, char *);
00686 void oval_sysinfo_set_primary_host_name(struct oval_sysinfo *, char *);
00690 void oval_sysinfo_add_interface(struct oval_sysinfo *, struct oval_sysint *);
00694 struct oval_sysdata *oval_sysdata_new(struct oval_syschar_model *, char *id);
00699 bool oval_sysdata_is_valid(struct oval_sysdata *sysdata);
00705 bool oval_sysdata_is_locked(struct oval_sysdata *sysdata);
00709 struct oval_sysdata *oval_sysdata_clone(struct oval_syschar_model *new_model, struct oval_sysdata *old_data);
00713 void oval_sysdata_free(struct oval_sysdata *);
00717 void oval_sysdata_set_status(struct oval_sysdata *, oval_syschar_status_t);
00721 void oval_sysdata_set_subtype(struct oval_sysdata *sysdata, oval_subtype_t subtype);
00725 void oval_sysdata_set_message(struct oval_sysdata *data, char *message);
00729 void oval_sysdata_set_message_level(struct oval_sysdata *data, oval_message_level_t level);
00733 void oval_sysdata_add_item(struct oval_sysdata *, struct oval_sysitem *);
00737 struct oval_syschar *oval_syschar_new(struct oval_syschar_model *, struct oval_object *);
00742 bool oval_syschar_is_valid(struct oval_syschar *syschar);
00748 bool oval_syschar_is_locked(struct oval_syschar *syschar);
00752 struct oval_syschar *oval_syschar_clone(struct oval_syschar_model *new_model, struct oval_syschar *old_syschar);
00756 void oval_syschar_free(struct oval_syschar *);
00760 void oval_syschar_add_message(struct oval_syschar *syschar, struct oval_message *message);
00764 void oval_syschar_set_flag(struct oval_syschar *model, oval_syschar_collection_flag_t flag);
00768 void oval_syschar_set_object(struct oval_syschar *, struct oval_object *);
00772 void oval_syschar_add_variable_binding(struct oval_syschar *, struct oval_variable_binding *);
00776 void oval_syschar_add_sysdata(struct oval_syschar *, struct oval_sysdata *);
00780 struct oval_sysitem *oval_sysitem_new(struct oval_syschar_model *);
00785 bool oval_sysitem_is_valid(struct oval_sysitem *sysitem);
00791 bool oval_sysitem_is_locked(struct oval_sysitem *sysitem);
00795 struct oval_sysitem *oval_sysitem_clone(struct oval_syschar_model *new_model, struct oval_sysitem *old_item);
00799 void oval_sysitem_free(struct oval_sysitem *);
00803 void oval_sysitem_set_name(struct oval_sysitem *sysitem, char *name);
00807 void oval_sysitem_set_value(struct oval_sysitem *sysitem, char *value);
00811 void oval_sysitem_set_status(struct oval_sysitem *sysitem, oval_syschar_status_t status);
00815 void oval_sysitem_set_datatype(struct oval_sysitem *sysitem, oval_datatype_t type);
00819 void oval_sysitem_set_mask(struct oval_sysitem *sysitem, int mask);
00824 #endif