Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 3739

kernel-doc-2.6.32-71.14.1.el6.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>Preface</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="The Userspace I/O HOWTO" /><link rel="up" href="aboutthis.html" title="Chapter&#160;1.&#160;About this document" /><link rel="prev" href="aboutthis.html" title="Chapter&#160;1.&#160;About this document" /><link rel="next" href="ch01s03.html" title="Acknowledgments" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Preface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="aboutthis.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;1.&#160;About this document</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch01s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Preface"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preface"></a>Preface</h2></div></div></div><p>
	For many types of devices, creating a Linux kernel driver is
	overkill.  All that is really needed is some way to handle an
	interrupt and provide access to the memory space of the
	device.  The logic of controlling the device does not
	necessarily have to be within the kernel, as the device does
	not need to take advantage of any of other resources that the
	kernel provides.  One such common class of devices that are
	like this are for industrial I/O cards.
	</p><p>
	To address this situation, the userspace I/O system (UIO) was
	designed.  For typical industrial I/O cards, only a very small
	kernel module is needed. The main part of the driver will run in
	user space. This simplifies development and reduces the risk of
	serious bugs within a kernel module.
	</p><p>
	Please note that UIO is not an universal driver interface. Devices
	that are already handled well by other kernel subsystems (like
	networking or serial or USB) are no candidates for an UIO driver.
	Hardware that is ideally suited for an UIO driver fulfills all of
	the following:
	</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The device has memory that can be mapped. The device can be
	controlled completely by writing to this memory.</p></li><li class="listitem"><p>The device usually generates interrupts.</p></li><li class="listitem"><p>The device does not fit into one of the standard kernel
	subsystems.</p></li></ul></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aboutthis.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="aboutthis.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="ch01s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&#160;1.&#160;About this document&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Acknowledgments</td></tr></table></div></body></html>