Not all settings of configuration items will lead to a coherent configuration; for example, the use of a timeout facility might require the existence of timer support, so if the one is required the other cannot be removed. Coherence is policed by means of consistency rules (in particular, the goal expressions that appear as CDL items requires and active_if attributes [see above]). A violation of consistency rules creates a conflict, which must be resolved in order to ensure a consistent configuration. Conflict resolution can be performed manually or with the assistance of the eCos tools. Conflicts come in the following flavors:
An unresolved conflict means that there is a reference to an entity that is not yet in the current configuration
An illegal value conflict is caused when a configuration item is set to a value that is not permitted (that is, a legal_values goal expression is failing)
An evaluation exception conflict is caused when the evaluation of an expression would fail (for example, because of a division by zero)
An unsatisfied goal conflict is caused by a failing requires goal expression
A bad data conflict arises only rarely, and corresponds to badly constructed CDL. Such a conflict can only be resolved by reference to the CDL writer.