<HTML
><HEAD
><TITLE
>Index</TITLE
><META
NAME="GENERATOR"
CONTENT="Microsoft FrontPage 4.0"><LINK
REL="HOME"
TITLE="The Linux Kernel Module Programming Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Where From Here?"
HREF="x1483.html"></HEAD
><BODY
CLASS="INDEX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux内核驱动模块编程指南 (内核版本2.2, 2.4)</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1483.html"
ACCESSKEY="P"
>返回</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
> </TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="INDEX"
><H1
><A
NAME="DOC-INDEX"
></A
>索引</H1
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1492"
></A
>Symbols</H2
><DL
><DT
>/etc/conf.modules,
<A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
</DT
><DT
>/etc/modules.conf,
<A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
</DT
><DT
>/proc filesystem,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>
</DT
><DT
>/proc/interrupts,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>/proc/ksyms,
<A
HREF="c427.htm#AEN443"
>Functions available to modules</A
>,
<A
HREF="c427.htm#AEN485"
>Name Space</A
>,
<A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
</DT
><DT
>/proc/meminfo,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>
</DT
><DT
>/proc/modules,
<A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>
</DT
><DT
>2.2 changes,
<A
HREF="a1352.htm#AEN1354"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>_IO,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>_IOR,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>_IOW,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>_IOWR,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>_NSIG_WORDS,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>__exit,
<A
HREF="x277.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
</DT
><DT
>__init,
<A
HREF="x277.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
</DT
><DT
>__initdata,
<A
HREF="x277.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
</DT
><DT
>__initfunction(),
<A
HREF="x277.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
</DT
><DT
>__NO_VERSION__,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1551"
></A
>A</H2
><DL
><DT
>asm
</DT
><DD
><DL
><DT
>uaccess.h,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>asm/uaccess.h,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1560"
></A
>B</H2
><DL
><DT
>BH_IMMEDIATE,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>blocking processes,
<A
HREF="c1006.htm#AEN1008"
>Blocking Processes</A
>
</DT
><DT
>blocking, how to avoid,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>bottom half,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>busy,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1577"
></A
>C</H2
><DL
><DT
>carnivore
</DT
><DD
><DL
><DT
>large,
<A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>cleanup_module(),
<A
HREF="c143.htm#AEN145"
>Hello, World (part 1): The Simplest Module</A
>
</DT
><DT
>close,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>code space,
<A
HREF="c427.htm#AEN502"
>Code space</A
>
</DT
><DT
>coffee,
<A
HREF="c427.htm#AEN532"
>Major and Minor Numbers</A
>
</DT
><DT
>CPU
</DT
><DD
><DL
><DT
>multiple,
<A
HREF="c1289.htm#AEN1291"
>Symmetrical Multi-Processing</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>crontab,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>ctrl-c,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>current task,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1608"
></A
>D</H2
><DL
><DT
>DEFAULT_MESSAGE_LOGLEVEL,
<A
HREF="c143.htm#INTRODUCINGPRINTK"
>Introducing printk()</A
>
</DT
><DT
>defining ioctls,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>device file
</DT
><DD
><DL
><DT
>character,
<A
HREF="c569.htm#AEN571"
>Character Device Drivers</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>device files
</DT
><DD
><DL
><DT
>input to,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>write to,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1626"
></A
>E</H2
><DL
><DT
>EAGAIN,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>EINTR,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>elf_i386,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
><DT
>ENTRY(system call),
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>entry.S,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1643"
></A
>F</H2
><DL
><DT
>file,
<A
HREF="c569.htm#AEN601"
>The file structure</A
>
</DT
><DT
>filesystem
</DT
><DD
><DL
><DT
>/proc,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>registration,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>filesystem registration,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>file_operations,
<A
HREF="c569.htm#AEN576"
>The file_operations Structure</A
>
</DT
><DT
>file_operations structure,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>flush,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1666"
></A
>G</H2
><DL
><DT
>get_user,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1672"
></A
>H</H2
><DL
><DT
>handlers
</DT
><DD
><DL
><DT
>interrupt,
<A
HREF="c1204.htm#AEN1206"
>Interrupt Handlers</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>housekeeping,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>Hurd,