FreeBSD Device Driver Writer's Guide

Eric L. Hernes,

Wednesday, May 29, 1996

This document describes how to add a device driver to FreeBSD. It is not intended to be a tutorial on UNIX device drivers in general. It is intended for device driver authors, familiar with the UNIX device driver model, to work on FreeBSD.

1. Overview

2. Types of drivers.

2.1. Character
2.2. Block
2.3. Network
2.4. Line Discipline

3. Supported Busses

3.1. ISA -- Industry Standard Architecture
3.2. EISA -- Extended Industry Standard Architecture
3.3. PCI -- Peripheral Computer Interconnect
3.4. SCSI -- Small Computer Systems Interface

4. Linking Into the Kernel.

4.1. Standard Model
4.2. Loadable Kernel Module (LKM)
4.3. Device Type Idiosyncrasies
4.4. Bus Type Idiosyncrasies

5. Kernel Support

5.1. Data Structures
5.2. Functions

6. References.

FreeBSD Home Page