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:
Bus driver APIs.
Device driver APIs.
Bus driver 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 bus hierarchy of a given platform.
As all classes of I/O bus share a subset of features, and also have particular specificities, a common subset of services has been defined in an API called the "Common Bus Driver API". This API is independent of bus class and may be provided by a given bus driver in addition to its class specific set of services. The "Common Bus Driver API" can be used to implement simple multi-bus device drivers and in a collection of bus class specific APIs to develop 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 |
"busFi" | BUSFI_CLASS | <ddi/busfi/busfi.h> | Common Bus Fault Injection API |
"buscom" | BUSCOM_CLASS | <ddi/buscom/buscom.h> | Bus Communication API |
"busmux" | BUSMUX_CLASS | <ddi/busmux/busmux.h> | Basic Bus Communication Layer API |
"pci" | PCI_CLASS | <ddi/pci/pci.h> | PCI bus API |
"pciFi" | PCIFI_CLASS | <ddi/pcifi/pcifi.h> | PCI Fault Injection bus API |
"pcimngr" | PCIMNGR_CLASS | <ddi/pcimngr/pcimngr.h> | PCI resource manager bus API |
"pcmcia" | PCMCIA_CLASS | <ddi/pcmcia/pcmcia.h> | PCMCIA bus API |
"quicc" | QUICC_CLASS | <ddi/quicc/quicc.h> | QUICC bus API |
"isa" | ISA_CLASS | <ddi/isa/isa.h> | ISA bus API |
"isaFi" | ISAFI_CLASS | <ddi/isafi/isafi.h> | ISAFI bus API |
"vme" | VME_CLASS | <ddi/vme/vme.h> | VME bus API |
"ata" | ATA_CLASS | <ddi/ata/ata.h> | ATA bus API |
"generic_ata" | GENERIC_ATA_CLASS | <ddi/generic_ata/generic_ata.h> | GENERIC_ATA Bus Master API |
"mii" | MII_CLASS | <ddi/mii/mii.h> | Media Independent bus API |
The device driver 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 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 device API |
"diag" | DIAG_CLASS | <ddi/diag/diag.h> | Diag device API |
"disk" | DISK_CLASS | <ddi/disk/disk.h> | Disk device API |
"diskStat" | DISKSTAT_CLASS | <ddi/diskstat/diskstat.h> | DiskStat device API |
"uart" | UART_CLASS | <ddi/uart/uart.h> | UART device API |
"uartStat" | UARTSTAT_CLASS | <ddi/uartstat/uartstat.h> | RAw UART statistics API |
"rtc" | RTC_CLASS | <ddi/rtc/rtc.h> | Real Time Clock API |
"ether" | ETHER_CLASS | <ddi/net/ether/ether.h> | Ethernet device API |
"etherStat" | ETHERSTAT_CLASS | <ddi/net/etherstat/etherstat.h> | Raw Ethernet statistics API |
"flash" | FLASH_CLASS | <ddi/flash/flash.h> | Flash device API |
"flashCtl" | FLASHCTL_CLASS | <ddi/flashctl/flashctl.h> | Flash control device API |
"flashStat" | FLASHSTAT_CLASS | <ddi/flashstat/flashstat.h> | Raw flash statistics device API |
"hsc" | HSC_CLASS | <ddi/hsc/hsc.h> | Hot Swap Controller device API |
"keyboard" | KEYBOARD_CLASS | <ddi/keyboard/keyboard.h> | Keyboard device API |
"mngt" | MNGT_CLASS | <ddi/mngt/mngt.h> | Management device API |
"phy" | PHY_CLASS | <ddi/phy/phy.h> | Ethernet (802.3) PHY transceiver device API |
"mouse" | MOUSE_CLASS | <ddi/mouse/mouse.h> | Mouse device API |
"nvram" | NVRAM_CLASS | <ddi/nvram/nvram.h> | NVRAM device API |
"bench" | BENCH_CLASS | <ddi/bench/bench.h> | Bench device API |
"gpio" | GPIO_CLASS | <ddi/gpio/gpio.h> | GPIO device API |
"ric" | RIC_CLASS | <ddi/ric/ric.h> | RIC device API |
"rtc" | RTC_CLASS | <ddi/rtc/rtc.h> | RTC device API |
"pciswap" | PCISWAP_CLASS | <ddi/pciswap/pciswap.h> | CompactPCI hot swap device API |
"netFrame" | NETFRAME_CLASS | <ddi/netframe/netframe.h> | Generic Representation of Network Frames |
"wdtimer" | WDTIMER_CLASS | <ddi/wdtimer/wdtimer.h> | Watchdog Timer device API |
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
intro(9DKI), bus(9DDI), busFi(9DDI), pci(9DDI), pcmcia(9DDI), isa(9DDI), netFrame(9DDI), nvram(9DDI), timer(9DDI), uart(9DDI), quicc(9DDI), ric(9DDI), rtc(9DDI), ether(9DDI), flash(9DDI), vme(9DDI), bench(9DDI),keyboard(9DDI), mouse(9DDI), gpio(9DDI), wdtimer(9DDI), ata(9DDI)
NAME | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO