This book is organized into the following chapters.
Chapter 1, SunOS Kernel and Device Tree,provides an overview of the SunOSTM kernel and the manner in which it represents devices as nodes in a device tree.
Chapter 2, Hardware Overview discusses multiplatform hardware issues related to device drivers.
Chapter 3, Overview of SunOS Device Drivers gives an outline of the kinds of device drivers and their basic structure. It points out the common data access routines and concludes with an illustrated roadmap of common driver entry points and structures.
Chapter 4, Multithreading describes the mechanisms of the SunOS multithreaded kernel that are of interest to driver writers.
Chapter 5, Autoconfiguration details the support a driver must provide for autoconfiguration.
Chapter 6, Interrupt Handlers describes the interrupt handling mechanisms. These include registering, servicing, and removing interrupts.
Chapter 7, DMA describes direct memory access (DMA) and the DMA interfaces.
Chapter 8, Power Management covers the interfaces for Power ManagementTM, a framework designed to regulate and reduce the power consumed by computer systems and devices.
Chapter 9, Drivers for Character Devices describes the structure and functions of a driver for a character-oriented device.
Chapter 10, Drivers for Block Devices describes the structure and functions of a driver for a block-oriented device.
Chapter 11, Mapping Device or Kernel Memory describes the set of interfaces that allow device drivers to manage access to memory, control the context of user processes accessing a device, and take advantage of large data transfers using new MMU hardware.
Chapter 12, Device Context Management describes the set of interfaces that allow device drivers to manage user access to devices.
Chapter 13, SCSI Target Drivers outlines the Sun Common SCSI Architecture and describes the additional requirements of SCSI target drivers.
Chapter 14, SCSI Host Bus Adapter Drivers explains how to write a SCSI Host Bus Adapter (HBA) driver using the Sun Common SCSI Architecture (SCSA).
Chapter 15, Loading and Unloading Drivers provides information on compiling and linking a driver, and for installing it in the system.
Chapter 16, Debugging gives coding suggestions, debugging hints, a simple adb/kadb tutorial, and some hints on testing the driver.
Appendix A, Converting a SunOS 4.1 Device Driver to SunOS 5.7 gives hints on converting SunOS 4.1 drivers to SunOS 5.7.
Appendix B, Interface Transition List presents a list of DDI/DKI data access interface functions that have changed from Solaris 2.6 to Solaris 7. It also presents data access functions new to Solaris 7.
Appendix C, Summary of Solaris 7 DDI/DKI Services summarizes, by topic, the kernel functions device driver can use.
Appendix D, Sample Driver Source Code displays a list of sample drivers, and the location of the sample code in the DDK.
Appendix E, Driver Code Layout Structure presents header files and an outline of xx.c source code samples for a typical driver.
Appendix F, Making a Device Driver 64-Bit Ready provides guidelines for updating a device driver to run in a 64-bit environment.
Appendix G, Advanced Topics presents a collection of optional topics.