⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doc-index.html

📁 linux驱动开发
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<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" 
>&nbsp;</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,
    <A
HREF="c427.htm#AEN502"
>Code space</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1684"
></A
>I</H2
><DL
><DT
>inb,
    <A
HREF="c1204.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DT
>init_module(),
    <A
HREF="c143.htm#AEN145"
>Hello, World (part 1): The Simplest Module</A
>
  </DT
><DT
>inode,
    <A
HREF="c569.htm#AEN601"
>The file structure</A
>,
    <A
HREF="c714.htm#AEN716"
>The /proc File System</A
>
  </DT
><DT
>inode_operations structure,
    <A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
  </DT
><DT
>input
  </DT
><DD
><DL
><DT
>using /proc for,
    <A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>insmod,
    <A
HREF="x204.htm"
>Compiling Kernel Modules</A
>,
    <A
HREF="c929.htm#AEN931"
>System Calls</A
>
  </DT
><DT
>Intel architecture
  </DT
><DD
><DL
><DT
>keyboard,
    <A
HREF="c1204.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>interrupt 0x80,
    <A
HREF="c929.htm#AEN931"
>System Calls</A
>
  </DT
><DT
>interrupt handlers,
    <A
HREF="c1204.htm#AEN1206"
>Interrupt Handlers</A
>
  </DT
><DT
>interruptible_sleep_on,
    <A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
  </DT
><DT
>interrupts,
    <A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
><DT
>disabling,
    <A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>ioctl,
    <A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
><DT
>defining,
    <A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>official assignment,
    <A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>irqs,
    <A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1735"
></A
>K</H2
><DL
><DT
>kernel
  </DT
><DD
><DL
><DT
>versions,
    <A
HREF="a1352.htm#AEN1354"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>kernel versions,
    <A
HREF="c569.htm#AEN695"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
><DT
>kerneld,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DT
>kernel\_version,
    <A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>KERNEL_VERSION,
    <A
HREF="c569.htm#AEN695"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
><DT
>keyboard,
    <A
HREF="c1204.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DT
>kmod,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1759"
></A
>L</H2
><DL
><DT
>ld,
    <A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>libraries
  </DT
><DD
><DL
><DT
>standard,
    <A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>library function,
    <A
HREF="c427.htm#AEN443"
>Functions available to modules</A
>
  </DT
><DT
>LINUX_VERSION_CODE,
    <A
HREF="c569.htm#AEN695"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1774"
></A
>M</H2
><DL
><DT
>major number,
    <A
HREF="c427.htm#AEN532"
>Major and Minor Numbers</A
>
  </DT
><DD
><DL
><DT
>dynamic allocation,
    <A
HREF="c569.htm#AEN623"
>Registering A Device</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>mark_bh,
    <A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
  </DT
><DT
>memory segments,
    <A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
  </DT
><DT
>microkernel,
    <A
HREF="c427.htm#AEN502"
>Code space</A
>
  </DT
><DT
>minor number,
    <A
HREF="c427.htm#AEN532"
>Major and Minor Numbers</A
>
  </DT
><DT
>mknod,
    <A
HREF="c427.htm#AEN532"
>Major and Minor Numbers</A
>
  </DT
><DT
>modem,
    <A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>module
  </DT
><DD
><DL
><DT
>parameters,
    <A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>module parameters,
    <A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>module.h,
    <A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>modules.conf
  </DT
><DD
><DL
><DT
>alias,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>comment,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>keep,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>options,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>path,
    <A
HREF="x45.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>MODULE_AUTHOR(),
    <A
HREF="x317.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>module_cleanup,
    <A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
  </DT
><DT
>MODULE_DESCRIPTION(),
    <A
HREF="x317.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>module_exit,
    <A
HREF="x253.htm"
>Hello World (part 2)</A
>
  </DT
><DT
>module_init,
    <A
HREF="x253.htm"
>Hello World (part 2)</A
>
  </DT
><DT
>module_interruptible_sleep_on,
    <A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
  </DT
><DT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -