Open SCAP Library
|
00001 00008 /* 00009 * Copyright 2009 Red Hat Inc., Durham, North Carolina. 00010 * All Rights Reserved. 00011 * 00012 * This library is free software; you can redistribute it and/or 00013 * modify it under the terms of the GNU Lesser General Public 00014 * License as published by the Free Software Foundation; either 00015 * version 2.1 of the License, or (at your option) any later version. 00016 * 00017 * This library is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 * Lesser General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU Lesser General Public 00023 * License along with this library; if not, write to the Free Software 00024 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00025 * 00026 * Authors: 00027 * "David Niemoller" <David.Niemoller@g2-inc.com> 00028 */ 00029 00030 #ifndef OVAL_DEFINITIONS_IMPL 00031 #define OVAL_DEFINITIONS_IMPL 00032 00033 #include <libxml/xmlreader.h> 00034 #include "public/oval_definitions.h" 00035 #include "oval_parser_impl.h" 00036 #include "oval_agent_api_impl.h" 00037 #include "oval_string_map_impl.h" 00038 #include "../common/util.h" 00039 00040 OSCAP_HIDDEN_START; 00041 00042 oval_family_t oval_family_parse(xmlTextReaderPtr); 00043 oval_subtype_t oval_subtype_parse(xmlTextReaderPtr); 00044 oval_affected_family_t oval_affected_family_parse(xmlTextReaderPtr); 00045 oval_operator_t oval_operator_parse(xmlTextReaderPtr, char *, oval_operator_t); 00046 oval_operation_t oval_operation_parse(xmlTextReaderPtr, char *, oval_operation_t); 00047 oval_definition_class_t oval_definition_class_parse(xmlTextReaderPtr); 00048 oval_existence_t oval_existence_parse(xmlTextReaderPtr, char *, oval_existence_t); 00049 oval_check_t oval_check_parse(xmlTextReaderPtr, char *, oval_check_t); 00050 oval_entity_type_t oval_entity_type_parse(xmlTextReaderPtr); 00051 oval_datatype_t oval_datatype_parse(xmlTextReaderPtr, char *, oval_datatype_t); 00052 oval_entity_varref_type_t oval_entity_varref_type_parse(xmlTextReaderPtr); 00053 oval_setobject_type_t oval_set_type_parse(xmlTextReaderPtr); 00054 oval_setobject_operation_t oval_set_operation_parse(xmlTextReaderPtr, char *, oval_setobject_operation_t); 00055 oval_filter_action_t oval_filter_action_parse(xmlTextReaderPtr, char *, oval_filter_action_t); 00056 oval_variable_type_t oval_variable_type_parse(xmlTextReaderPtr); 00057 oval_component_type_t oval_component_type_parse(xmlTextReaderPtr); 00058 oval_arithmetic_operation_t oval_arithmetic_operation_parse(xmlTextReaderPtr, char *, oval_arithmetic_operation_t); 00059 oval_datetime_format_t oval_datetime_format_parse(xmlTextReaderPtr, char *, oval_arithmetic_operation_t); 00060 oval_message_level_t oval_message_level_parse(xmlTextReaderPtr, char *, oval_message_level_t); 00061 void oval_variable_set_type(struct oval_variable *variable, oval_variable_type_t type); 00062 00063 typedef void (*oval_affected_consumer) (struct oval_affected *, void *); 00064 int oval_affected_parse_tag(xmlTextReaderPtr reader, 00065 struct oval_parser_context *context, oval_affected_consumer, void *); 00066 00067 int oval_test_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *); 00068 xmlNode *oval_test_to_dom(struct oval_test *, xmlDoc *, xmlNode *); 00069 00070 xmlNode *oval_criteria_node_to_dom(struct oval_criteria_node *, xmlDoc *, xmlNode *); 00071 typedef void (*oval_criteria_consumer) (struct oval_criteria_node *, void *); 00072 int oval_criteria_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_criteria_consumer, void *); 00073 00074 typedef void (*oval_reference_consumer) (struct oval_reference *, void *); 00075 int oval_reference_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_reference_consumer, void *); 00076 00077 int oval_definition_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *); 00078 xmlNode *oval_definition_to_dom(struct oval_definition *, xmlDoc *, xmlNode *); 00079 00080 int oval_object_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *); 00081 xmlNode *oval_object_to_dom(struct oval_object *, xmlDoc *, xmlNode *); 00082 struct oval_object *oval_object_clone2(struct oval_definition_model *, struct oval_object *, char *); 00083 struct oval_object *oval_object_create_internal(struct oval_object *, char *); 00084 struct oval_object *oval_object_get_base_obj(struct oval_object *); 00085 00086 int oval_state_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *); 00087 xmlNode *oval_state_to_dom(struct oval_state *, xmlDoc *, xmlNode *); 00088 00089 int oval_variable_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *); 00090 xmlNode *oval_variable_to_dom(struct oval_variable *, xmlDoc *, xmlNode *); 00091 00092 void oval_variable_binding_to_dom(struct oval_variable_binding *, xmlDoc *, xmlNode *); 00093 typedef void (*oval_variable_binding_consumer) (struct oval_variable_binding *, void *); 00094 int oval_variable_binding_parse_tag 00095 (xmlTextReaderPtr, struct oval_parser_context *, oval_variable_binding_consumer, void *); 00096 00097 const char *oval_variable_type_get_text(oval_variable_type_t); 00098 00099 typedef void (*oval_filter_consumer) (struct oval_filter *, void *); 00100 int oval_filter_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_filter_consumer, void *); 00101 xmlNode *oval_filter_to_dom(struct oval_filter *, xmlDoc *, xmlNode *); 00102 00103 typedef void (*oval_object_content_consumer) (struct oval_object_content *, void *); 00104 xmlNode *oval_object_content_to_dom(struct oval_object_content *, xmlDoc *, xmlNode *); 00105 int oval_object_content_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_object_content_consumer, void *); 00106 struct oval_filter *oval_object_content_get_filter(struct oval_object_content *); 00107 void oval_object_content_set_filter(struct oval_object_content *, struct oval_filter *); 00108 00109 int oval_state_content_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oscap_consumer_func, void *); 00110 xmlNode *oval_state_content_to_dom(struct oval_state_content *, xmlDoc *, xmlNode *); 00111 00112 typedef void (*oval_behavior_consumer) (struct oval_behavior *, void *); 00113 int oval_behavior_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, 00114 oval_family_t, oval_behavior_consumer, void *); 00115 00116 int oval_entity_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oscap_consumer_func, void *); 00117 xmlNode *oval_entity_to_dom(struct oval_entity *, xmlDoc *, xmlNode *); 00118 00119 int oval_record_field_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, 00120 oscap_consumer_func, void *, oval_record_field_type_t); 00121 xmlNode *oval_record_field_to_dom(struct oval_record_field *, bool, xmlDoc *, xmlNode *); 00122 00123 typedef void (*oval_set_consumer) (struct oval_setobject *, void *); 00124 int oval_set_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_set_consumer, void *); 00125 xmlNode *oval_set_to_dom(struct oval_setobject *, xmlDoc *, xmlNode *); 00126 void oval_set_propagate_filters(struct oval_definition_model *, struct oval_setobject *, char *); 00127 00128 typedef void (*oval_value_consumer) (struct oval_value *, void *); 00129 int oval_value_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_value_consumer, void *); 00130 xmlNode *oval_value_to_dom(struct oval_value *, xmlDoc *, xmlNode *); 00131 int oval_value_cast(struct oval_value *value, oval_datatype_t new_dt); 00132 00133 oval_syschar_collection_flag_t oval_component_compute(struct oval_syschar_model *sysmod, struct oval_component *component, 00134 struct oval_collection *value_collection); 00135 oval_syschar_collection_flag_t oval_component_query(oval_probe_session_t *sess, struct oval_component *component, 00136 struct oval_collection *value_collection); 00137 int oval_probe_session_query_object(oval_probe_session_t *sess, struct oval_object *object); 00138 typedef void (*oval_component_consumer) (struct oval_component *, void *); 00139 int oval_component_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oval_component_consumer, void *); 00140 xmlNode *oval_component_to_dom(struct oval_component *, xmlDoc *, xmlNode *); 00141 00142 typedef void (*oval_message_consumer) (struct oval_message *, void *); 00143 int oval_message_parse_tag(xmlTextReaderPtr, struct oval_parser_context *, oscap_consumer_func, void *); 00144 void oval_message_to_dom(struct oval_message *, xmlDoc *, xmlNode *); 00145 00146 int oval_generator_parse_tag(xmlTextReader *, struct oval_parser_context *, void *user); 00147 xmlNode *oval_generator_to_dom(struct oval_generator *, xmlDocPtr, xmlNode *); 00148 00149 xmlDoc *oval_definition_model_get_metadata_doc(struct oval_definition_model *); 00150 void oval_definition_model_add_definition(struct oval_definition_model *, struct oval_definition *); 00151 void oval_definition_model_add_test(struct oval_definition_model *, struct oval_test *); 00152 void oval_definition_model_add_object(struct oval_definition_model *, struct oval_object *); 00153 void oval_definition_model_add_state(struct oval_definition_model *, struct oval_state *); 00154 void oval_definition_model_add_variable(struct oval_definition_model *, struct oval_variable *); 00155 00156 void oval_definition_model_optimize_by_filter_propagation(struct oval_definition_model *); 00157 00158 struct oval_collection *oval_variable_model_get_values_ref(struct oval_variable_model *, char *); 00159 int oval_variable_bind_ext_var(struct oval_variable *, struct oval_variable_model *, char *); 00160 00161 //Synthetic object subtype for probing system info. 00162 #define OVAL_INDEPENDENT_SYSCHAR_SUBTYPE 7999 00163 00164 OSCAP_HIDDEN_END 00165 #endif