Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > d10250e1485b7c1121583bcab932c663 > files > 35

lkmpg-1.1.0-19.mga4.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Index</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Linux Kernel Module Programming Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Where From Here?"
HREF="x1488.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"
>The Linux Kernel Module Programming Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1488.html"
ACCESSKEY="P"
>Prev</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
>Index</H1
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1497"
></A
>Symbols</H2
><DL
><DT
>/etc/conf.modules,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DT
>/etc/modules.conf,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DT
>/proc filesystem,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>
  </DT
><DT
>/proc/interrupts,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>/proc/ksyms,
    <A
HREF="c435.htm#AEN451"
>Functions available to modules</A
>,
    <A
HREF="c435.htm#AEN493"
>Name Space</A
>,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DT
>/proc/meminfo,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>
  </DT
><DT
>/proc/modules,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>
  </DT
><DT
>2.2 changes,
    <A
HREF="a1357.htm#AEN1359"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>_IO,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>_IOR,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>_IOW,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>_IOWR,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>_NSIG_WORDS,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>__exit,
    <A
HREF="x281.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
  </DT
><DT
>__init,
    <A
HREF="x281.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
  </DT
><DT
>__initdata,
    <A
HREF="x281.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
  </DT
><DT
>__initfunction(),
    <A
HREF="x281.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
  </DT
><DT
>__NO_VERSION__,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1556"
></A
>A</H2
><DL
><DT
>asm
  </DT
><DD
><DL
><DT
>uaccess.h,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>asm/uaccess.h,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1565"
></A
>B</H2
><DL
><DT
>BH_IMMEDIATE,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>blocking processes,
    <A
HREF="c1012.htm#AEN1014"
>Blocking Processes</A
>
  </DT
><DT
>blocking, how to avoid,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>bottom half,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>busy,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1582"
></A
>C</H2
><DL
><DT
>carnivore
  </DT
><DD
><DL
><DT
>large,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>cleanup_module(),
    <A
HREF="c147.htm#AEN149"
>Hello, World (part 1): The Simplest Module</A
>
  </DT
><DT
>close,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>code space,
    <A
HREF="c435.htm#AEN510"
>Code space</A
>
  </DT
><DT
>coffee,
    <A
HREF="c435.htm#AEN540"
>Major and Minor Numbers</A
>
  </DT
><DT
>CPU
  </DT
><DD
><DL
><DT
>multiple,
    <A
HREF="c1294.htm#AEN1296"
>Symmetrical Multi-Processing</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>crontab,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>ctrl-c,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>current task,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1613"
></A
>D</H2
><DL
><DT
>DEFAULT_MESSAGE_LOGLEVEL,
    <A
HREF="c147.htm#INTRODUCINGPRINTK"
>Introducing printk()</A
>
  </DT
><DT
>defining ioctls,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>device file
  </DT
><DD
><DL
><DT
>character,
    <A
HREF="c577.htm#AEN579"
>Character Device Drivers</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>device files
  </DT
><DD
><DL
><DT
>input to,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>write to,
    <A
HREF="c854.htm#AEN856"
>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="AEN1631"
></A
>E</H2
><DL
><DT
>EAGAIN,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>EINTR,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>elf_i386,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>ENTRY(system call),
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>entry.S,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1648"
></A
>F</H2
><DL
><DT
>file,
    <A
HREF="c577.htm#AEN609"
>The file structure</A
>
  </DT
><DT
>filesystem
  </DT
><DD
><DL
><DT
>/proc,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>registration,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>filesystem registration,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>file_operations,
    <A
HREF="c577.htm#AEN584"
>The file_operations Structure</A
>
  </DT
><DT
>file_operations structure,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>flush,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1671"
></A
>G</H2
><DL
><DT
>get_user,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1677"
></A
>H</H2
><DL
><DT
>handlers
  </DT
><DD
><DL
><DT
>interrupt,
    <A
HREF="c1208.htm#AEN1210"
>Interrupt Handlers</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>housekeeping,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>Hurd,
    <A
HREF="c435.htm#AEN510"
>Code space</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1689"
></A
>I</H2
><DL
><DT
>inb,
    <A
HREF="c1208.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DT
>init_module(),
    <A
HREF="c147.htm#AEN149"
>Hello, World (part 1): The Simplest Module</A
>
  </DT
><DT
>inode,
    <A
HREF="c577.htm#AEN609"
>The file structure</A
>,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>
  </DT
><DT
>inode_operations structure,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>input
  </DT
><DD
><DL
><DT
>using /proc for,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>insmod,
    <A
HREF="x208.htm"
>Compiling Kernel Modules</A
>,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>Intel architecture
  </DT
><DD
><DL
><DT
>keyboard,
    <A
HREF="c1208.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>interrupt 0x80,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>interrupt handlers,
    <A
HREF="c1208.htm#AEN1210"
>Interrupt Handlers</A
>
  </DT
><DT
>interruptible_sleep_on,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>interrupts,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
><DT
>disabling,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>ioctl,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
><DT
>defining,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>official assignment,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>irqs,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1740"
></A
>K</H2
><DL
><DT
>kernel
  </DT
><DD
><DL
><DT
>versions,
    <A
HREF="a1357.htm#AEN1359"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>kernel versions,
    <A
HREF="c577.htm#AEN703"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
><DT
>kerneld,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DT
>kernel\_version,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>KERNEL_VERSION,
    <A
HREF="c577.htm#AEN703"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
><DT
>keyboard,
    <A
HREF="c1208.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DT
>kmod,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1764"
></A
>L</H2
><DL
><DT
>ld,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>libraries
  </DT
><DD
><DL
><DT
>standard,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>library function,
    <A
HREF="c435.htm#AEN451"
>Functions available to modules</A
>
  </DT
><DT
>LINUX_VERSION_CODE,
    <A
HREF="c577.htm#AEN703"
>Writing Modules for Multiple Kernel Versions</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1779"
></A
>M</H2
><DL
><DT
>major number,
    <A
HREF="c435.htm#AEN540"
>Major and Minor Numbers</A
>
  </DT
><DD
><DL
><DT
>dynamic allocation,
    <A
HREF="c577.htm#AEN631"
>Registering A Device</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>mark_bh,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>memory segments,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>microkernel,
    <A
HREF="c435.htm#AEN510"
>Code space</A
>
  </DT
><DT
>minor number,
    <A
HREF="c435.htm#AEN540"
>Major and Minor Numbers</A
>
  </DT
><DT
>mknod,
    <A
HREF="c435.htm#AEN540"
>Major and Minor Numbers</A
>
  </DT
><DT
>modem,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>module
  </DT
><DD
><DL
><DT
>parameters,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>module parameters,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>module.h,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DT
>modules.conf
  </DT
><DD
><DL
><DT
>alias,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>comment,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>keep,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>options,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>path,
    <A
HREF="x49.htm"
>How Do Modules Get Into The Kernel?</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>MODULE_AUTHOR(),
    <A
HREF="x321.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>module_cleanup,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>MODULE_DESCRIPTION(),
    <A
HREF="x321.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>module_exit,
    <A
HREF="x257.htm"
>Hello World (part 2)</A
>
  </DT
><DT
>module_init,
    <A
HREF="x257.htm"
>Hello World (part 2)</A
>
  </DT
><DT
>module_interruptible_sleep_on,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>MODULE_LICENSE(),
    <A
HREF="x321.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>MODULE_PARM,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>module_permissions,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>module_sleep_on,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>MODULE_SUPPORTED_DEVICE(),
    <A
HREF="x321.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DT
>module_wake_up,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>MOD_DEC_USE_COUNT,
    <A
HREF="c577.htm#AEN661"
>Unregistering A Device</A
>
  </DT
><DT
>MOD_INC_USE_COUNT,
    <A
HREF="c577.htm#AEN661"
>Unregistering A Device</A
>,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>MOD_IN_USE,
    <A
HREF="c577.htm#AEN661"
>Unregistering A Device</A
>
  </DT
><DT
>monolithic kernel,
    <A
HREF="c435.htm#AEN510"
>Code space</A
>
  </DT
><DT
>multi-processing,
    <A
HREF="c1294.htm#AEN1296"
>Symmetrical Multi-Processing</A
>
  </DT
><DT
>multi-tasking,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>multitasking,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1885"
></A
>N</H2
><DL
><DT
>namespace pollution,
    <A
HREF="c435.htm#AEN493"
>Name Space</A
>
  </DT
><DT
>Neutrino,
    <A
HREF="c435.htm#AEN510"
>Code space</A
>
  </DT
><DT
>non-blocking,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1896"
></A
>O</H2
><DL
><DT
>official ioctl assignment,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>O_NONBLOCK,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1904"
></A
>P</H2
><DL
><DT
>permission,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>pointer
  </DT
><DD
><DL
><DT
>current,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>printk
  </DT
><DD
><DL
><DT
>replacing,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>printk(),
    <A
HREF="c147.htm#INTRODUCINGPRINTK"
>Introducing printk()</A
>
  </DT
><DT
>proc
  </DT
><DD
><DL
><DT
>using for input,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>proc file
  </DT
><DD
><DL
><DT
>ksyms,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>processes
  </DT
><DD
><DL
><DT
>blocking,
    <A
HREF="c1012.htm#AEN1014"
>Blocking Processes</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>killing,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>waking up,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>processing
  </DT
><DD
><DL
><DT
>multi,
    <A
HREF="c1294.htm#AEN1296"
>Symmetrical Multi-Processing</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>proc_dir_entry,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>proc_register,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>proc_register_dynamic,
    <A
HREF="c722.htm#AEN724"
>The /proc File System</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>putting processes to sleep,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>put_user,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1958"
></A
>Q</H2
><DL
><DT
>queue_task,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>queue_task_irq,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1969"
></A
>R</H2
><DL
><DT
>read,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
><DT
>in the kernel,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>reference count,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>refund policy,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DT
>register_chrdev,
    <A
HREF="c577.htm#AEN631"
>Registering A Device</A
>
  </DT
><DT
>request_irq(),
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>rmmod,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DD
><DL
><DT
>preventing,
    <A
HREF="c577.htm#AEN661"
>Unregistering A Device</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1994"
></A
>S</H2
><DL
><DT
>SA_INTERRUPT,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>SA_SHIRQ,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>scheduler,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>scheduling tasks,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>segment
  </DT
><DD
><DL
><DT
>memory,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>serial port,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DT
>shutdown,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>SIGINT,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>signal,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>signals,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>sleep
  </DT
><DD
><DL
><DT
>putting processes to,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>sleep_on,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>SMP,
    <A
HREF="c1294.htm#AEN1296"
>Symmetrical Multi-Processing</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>source file
  </DT
><DD
><DL
><DT
>chardev.c,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>chardev.h,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>hello-1.c,
    <A
HREF="c147.htm#AEN149"
>Hello, World (part 1): The Simplest Module</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>hello-2.c,
    <A
HREF="x257.htm"
>Hello World (part 2)</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>hello-3.c,
    <A
HREF="x281.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>hello-4.c,
    <A
HREF="x321.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>hello-5.c,
    <A
HREF="x354.htm"
>Passing Command Line Arguments to a Module</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>intrpt.c,
    <A
HREF="c1208.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>ioctl.c,
    <A
HREF="c854.htm#AEN856"
>Talking to Device Files (writes and IOCTLs)}</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>print_string.c,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>sched.c,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>sleep.c,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>start.c,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>stop.c,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DD
><DL
></DL
></DD
><DT
>syscall.c,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>source files
  </DT
><DD
><DL
><DT
>multiple,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>ssize_t,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>standard libraries,
    <A
HREF="c1320.htm#AEN1322"
>Common Pitfalls</A
>
  </DT
><DT
>strace,
    <A
HREF="c435.htm#AEN451"
>Functions available to modules</A
>,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>struct
  </DT
><DD
><DL
><DT
>tty,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>struct file_operations,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>struct inode_operations,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DT
>structure
  </DT
><DD
><DL
><DT
>file_operations,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>symbol table,
    <A
HREF="c435.htm#AEN493"
>Name Space</A
>
  </DT
><DT
>symmetrical multi-processing,
    <A
HREF="c1294.htm#AEN1296"
>Symmetrical Multi-Processing</A
>,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DT
>sync,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>system call,
    <A
HREF="c435.htm#AEN451"
>Functions available to modules</A
>,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DD
><DL
><DT
>open,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>system calls,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>sys_call_table,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
><DT
>sys_open,
    <A
HREF="c937.htm#AEN939"
>System Calls</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2124"
></A
>T</H2
><DL
><DT
>task,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DD
><DL
><DT
>current,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>tasks
  </DT
><DD
><DL
><DT
>scheduling,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>TASK_INTERRUPTIBLE,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>tq_immediate,
    <A
HREF="c1208.htm#AEN1217"
>Interrupt Handlers</A
>
  </DT
><DT
>tq_struct,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>tq_timer,
    <A
HREF="c1149.htm#AEN1151"
>Scheduling Tasks</A
>
  </DT
><DT
>tty_structure,
    <A
HREF="c1115.htm#AEN1117"
>Replacing printk</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2150"
></A
>V</H2
><DL
><DT
>version.h,
    <A
HREF="x385.htm"
>Modules Spanning Multiple Files</A
>
  </DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2155"
></A
>W</H2
><DL
><DT
>waking up processes,
    <A
HREF="c1012.htm#AEN1021"
>Replacing printk</A
>
  </DT
><DT
>write,
    <A
HREF="a1357.htm#AEN1366"
>Changes between 2.0 and 2.2</A
>
  </DT
><DD
><DL
><DT
>in the kernel,
    <A
HREF="c768.htm#AEN770"
>Using /proc For Input</A
>
  </DT
><DD
><DL
></DL
></DD
></DL
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x1488.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Where From Here?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>