NAME | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO |
DDI
Provides device driver interface services.
Device Driver Interface (DDI) defines several layers of APIs between different driver components. Typically an API is defined for each class of bus or device, as a part of the DDI.
The DDI set of APIs is logically structured in 2 layers:
The Bus Driver's APIs
The Device Driver's APIs
The Bus driver's APIs are provided by the lower layers of driver components, and are built upon the DKI services. This set of drivers can itself be composed of multiple sub-layers to reflect the busses' hierarchy of a given platform.
As all different classes of I/O busses share a subset of features, and then have their particular specificities, a common subset of services has been defined in an API called "Common Bus Driver API". This API is independent of the bus class, and may be provided by a given bus driver in addition to its class specific set of services. This results in a "Common Bus Driver API" which can be used to implement simple multi-bus device drivers, and in a collection of bus class specific APIs write bus-aware device drivers.
The following table lists bus class APIs currently available in the ChorusOS DDI:
Name | Alias | API Header | API Name |
"bus" | BUS_CLASS | <ddi/bus/bus.h> | Common bus API |
"pci" | PCI_CLASS | <ddi/pci/pci.h> | PCI bus API |
"isa" | ISA_CLASS | <ddi/isa/isa.h> | ISA bus API |
"vme" | VME_CLASS | <ddi/vme/vme.h> | VME bus API |
The Device driver's APIs are provided by the higher layers of driver components, and are typically built upon the Bus Driver APIs. A different API is provided for each different "class" of device. Each of these APIs may be used by a driver's client application to manage the associated devices.
The following table lists device class APIs currently available in the ChorusOS DDI.
Name | Alias | API Header | API Name |
"timer" | TIMER_CLASS | <ddi/timer/timer.h> | Timer devices API |
"uart" | UART_CLASS | <ddi/uart/uart.h> | UART devices API |
"rtc" | RTC_CLASS | <ddi/rtc/rtc.h> | Real Time Clock API |
"ether" | ETHER_CLASS | <ddi/net/ether/ether.h> | Ethernet devices API |
"flahs" | FLASH_CLASS | <ddi/flash/flash.h> | Flash devices API |
"nvram" | NVRAM_CLASS | <ddi/nvram/nvram.h> | NVRAM devices API |
"bench" | BENCH_CLASS | <ddi/bench/bench.h> | Bench devices API |
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
intro(9DKI), bus(9DDI), pci(9DDI), isa(9DDI), nvram(9DDI), timer(9DDI), uart(9DDI), rtc(9DDI), ether(9DDI), flash(9DDI), vme(9DDI), bench(9DDI)
Description
Bench Device Driver Interface
Common Bus Driver Interface
Ethernet Device Driver Interface
Flash Device Driver Interface
ISA Bus Driver Interface
Generic Representation of Network Frames
NVRAM Device Driver Interface
PCI Bus Driver Interface
QUICC bus driver interface
RIC Device Driver Interface
RTC Device Driver Interface
TIMER Device Driver Interface
UART Device Driver Interface
VME Bus Driver Interface
NAME | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO |