Preface

Writing Device Drivers provides information on developing drivers for character-oriented devices, block-oriented devices, network devices, SCSI
target and HBA devices, and USB devices for the Oracle Solaris Operating System
(Oracle Solaris OS). This book discusses how to develop multithreaded reentrant device drivers for
all architectures that conform to the Solaris OS DDI/DKI (Device Driver Interface, Driver-Kernel
Interface). A common driver programming approach is described that enables drivers to be
written without concern for platform-specific issues such as endianness and data ordering.

Note - This Solaris release supports systems that use the SPARC and x86 families of
processor architectures: UltraSPARC, SPARC64, AMD64, Pentium, and Xeon EM64T. For supported systems, see the Solaris OS: Hardware Compatibility Lists
at http://www.sun.com/bigadmin/hcl/. This document cites any implementation differences between the platform types.

Who Should Use This Book

This book is written for UNIX programmers who are familiar with UNIX device
drivers. Overview information is provided, but the book is not intended to serve
as a general tutorial on device drivers.

Note - The Oracle Solaris operating system (Oracle Solaris OS) runs on both SPARC
and x86 architectures. The Oracle Solaris OS also runs on both 64-bit and
32-bit address spaces. The information in this document applies to all platforms and
address spaces unless specifically noted.

Documentation, Support, and Training

Oracle Welcomes Your Comments

Oracle welcomes your comments and suggestions on the quality and usefulness of
its documentation. If you find any errors or have any other suggestions for
improvement, go to http://docs.sun.com and click Feedback. Indicate the title and part
number of the documentation along with the chapter, section, and page number, if available.
Please let us know if you want a reply.

Typographic Conventions

The following table describes the typographic conventions that are used in this book.

Table P-1 Typographic Conventions

Typeface

Meaning

Example

AaBbCc123

The
names of commands, files, and directories, and onscreen computer output

Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.

AaBbCc123

What you type, contrasted with onscreen computer output

machine_name%su

Password:

aabbcc123

Placeholder: replace with a real name or value

The command to remove a file
is rmfilename.

AaBbCc123

Book titles, new terms, and terms to be emphasized

Read Chapter 6
in the User's Guide.

A cache is a copy that is stored locally.

Do not
save the file.

Note: Some emphasized items appear bold online.

Shell Prompts in Command Examples

The following table shows the default UNIX system prompt and superuser prompt for
shells that are included in the Oracle Solaris OS. Note that the
default system prompt that is displayed in command examples varies, depending on
the Oracle Solaris release.