This chapter is extremely incomplete; it is basically only a bare skeleton.
This library provides default implementations of various functions needed by device drivers under the OSKit device driver framework. These default implementations can be used by the host OS, if appropriate, to make it easier to adopt the driver framework. The facilities provided include:
XXX: oskit_dev_init() call this to init libdev
XXX: oskit_dev_probe() call this after init to probe for devices
XXX Builds a hardware tree. An example hardware tree is shown in Figure 17.1.
Roughly. . . the library is initialized through a call to oskit_dev_init. It first does auto-configuration by calling the initialization and probe routines of the different driver sets. After auto-configuration, it builds a device tree representing the topology of the machine. While building the tree, it also organizes the drivers into “driver sets.” A driver set consists of driver that share a common set of properties. After initialization, the library is ready to perform I/O requests for the OS.
This function initializes the library.
This function probes for devices.
To be done.
Default implementation uses the LMM.
Provides a “simple buffer” implementation, in which buffers are simply regions of physically- and virtually-contiguous physical memory.
XXX to allocate and free IRQs, I/O ports, DMA channels, etc.