Name

Property implements — Enabling this option provides one instance of a more general interface.

Synopsis

cdl_option <name> {
  implements <interface>
  …
}

Description

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.

Example

cdl_option CYGSEM_KERNEL_SCHED_MLQUEUE {
  display       "Multi-level queue scheduler"
  default_value 1
  implements    CYGINT_KERNEL_SCHEDULER
  …
}

See Also

Command cdl_interface.