FreeBSD Device Drivers contains the following chapters.
Provides an overview and introduction to basic device driver programming concepts and terminology.
Describes FreeBSD’s kernel memory management routines.
Teaches you how to communicate with and control your device drivers from user space.
Discusses the problems and solutions associated with multithreaded programming and concurrent execution.
Describes delaying code execution and asynchronous code execution, and explains why these tasks are needed.
Contains the first of several occasions where I walk you through a real-world device driver.
Covers the infrastructure used by FreeBSD to manage the hardware devices on the system. From here on, I deal exclusively with real hardware.
Discusses interrupt handling in FreeBSD.
Walks through lpt(4)
, the parallel port printer driver, in its entirety.
Covers port-mapped I/O and memory-mapped I/O.
Reviews the parts of ipmi(4)
, the Intelligent Platform Management Interface driver, which uses port-mapped I/O and memory-mapped I/O.
Explains how to use Direct Memory Access (DMA) in FreeBSD.
Teaches you how to manage storage devices, such as disk drives, flash memory, and so on.
Provides an overview and introduction to Common Access Method (CAM), which you’ll use to manage host bus adapters.
Teaches you how to manage USB devices. It also walks through ulpt(4)
, the USB printer driver, in its entirety.
Describes the data structures used by network drivers. It also goes over Message Signaled Interrupts (MSI).
Examines the packet reception and transmission components of em(4)
, the Intel PCI Gigabit Ethernet adapter driver.
18.226.28.197