The CDL interface concept provides an abstraction mechanism that can
be useful in many different circumstances. Essentially an interface is
a calculated option whose value is the number of active and enabled
options which implement that interface. For example the interface
CYGINT_KERNEL_SCHEDULER
has a value corresponding
to the number of schedulers in the system, typically just one.
The implements property takes a single argument, which should be the name of an interface. This interface may be defined in the same package as the implementor or in some other package. In the latter case it may sometimes be appropriate for the implementor or the implementor's package to have a requires property for the package containing the interface. An option may contain multiple implements properties. It is possible for an option to implement a given interface multiple times, and on occasion this is actually useful.