<index id='doc-index'>

<!-- This file was produced by collateindex.pl.         -->
<!-- Remove this comment if you edit this file by hand! -->
<!-- ULINK is abused here.

      The URL attribute holds the URL that points from the index entry
      back to the appropriate place in the output produced by the HTML
      stylesheet. (It's much easier to calculate this URL in the first
      pass.)

      The Role attribute holds the ID (either real or manufactured) of
      the corresponding INDEXTERM.  This is used by the print backends
      to produce page numbers.

      The entries below are sorted and collated into the correct order.
      Duplicates may be removed in the HTML backend, but in the print
      backends, it is impossible to suppress duplicate pages or coalesce
      sequences of pages into a range.
-->

<title>Index</title>

<indexdiv><title>Symbols</title>

<indexentry>
  <primaryie>/etc/conf.modules,
    <ulink url="x44.htm" role="AEN55">How Do Modules Get Into The Kernel?</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/etc/modules.conf,
    <ulink url="x44.htm" role="AEN52">How Do Modules Get Into The Kernel?</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/proc filesystem,
    <ulink url="c708.htm#AEN710" role="AEN712">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/proc/interrupts,
    <ulink url="c1254.htm#AEN1263" role="AEN1281">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/proc/kallsyms,
    <ulink url="c425.htm#AEN441" role="AEN447">Functions available to modules</ulink>,
    <ulink url="c425.htm#AEN483" role="AEN489">Name Space</ulink>,
    <ulink url="c1350.htm#AEN1352" role="AEN1362">Common Pitfalls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/proc/meminfo,
    <ulink url="c708.htm#AEN710" role="AEN726">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>/proc/modules,
    <ulink url="x44.htm" role="AEN46">How Do Modules Get Into The Kernel?</ulink>,
    <ulink url="c708.htm#AEN710" role="AEN723">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>2.6 changes,
    <ulink url="a1387.htm#AEN1389" role="AEN1391">Changes between 2.4 and 2.6</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>_IO,
    <ulink url="c890.htm#AEN892" role="AEN930">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>_IOR,
    <ulink url="c890.htm#AEN892" role="AEN932">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>_IOW,
    <ulink url="c890.htm#AEN892" role="AEN934">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>_IOWR,
    <ulink url="c890.htm#AEN892" role="AEN936">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>__exit,
    <ulink url="x245.htm" role="AEN255">Hello World (part 3): The __init and __exit Macros</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>__init,
    <ulink url="x245.htm" role="AEN249">Hello World (part 3): The __init and __exit Macros</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>__initdata,
    <ulink url="x245.htm" role="AEN252">Hello World (part 3): The __init and __exit Macros</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>__initfunction(),
    <ulink url="x245.htm" role="AEN258">Hello World (part 3): The __init and __exit Macros</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>B</title>

<indexentry>
  <primaryie>blocking processes,
    <ulink url="c1050.htm#AEN1052" role="AEN1054">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>blocking, how to avoid,
    <ulink url="c1050.htm#AEN1052" role="AEN1140">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>bottom half,
    <ulink url="c1254.htm#AEN1263" role="AEN1275">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>busy,
    <ulink url="c1050.htm#AEN1052" role="AEN1064">Blocking Processes</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>C</title>

<indexentry>
  <primaryie>carnivore
  </primaryie>
  <secondaryie>large,
    <ulink url="c1350.htm#AEN1352" role="AEN1370">Common Pitfalls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>cleanup_module(),
    <ulink url="c119.htm#AEN121" role="AEN135">Hello, World (part 1): The Simplest Module</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>code space,
    <ulink url="c425.htm#AEN500" role="AEN502">Code space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>coffee,
    <ulink url="c425.htm#AEN530" role="AEN547">Major and Minor Numbers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>copy_from_user,
    <ulink url="x769.htm" role="AEN781">Read and Write a /proc File</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>copy_to_user,
    <ulink url="x769.htm" role="AEN784">Read and Write a /proc File</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>CPU
  </primaryie>
  <secondaryie>multiple,
    <ulink url="c1324.htm#AEN1326" role="AEN1337">Symmetrical Multi-Processing</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>crontab,
    <ulink url="c1209.htm#AEN1211" role="AEN1220">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>ctrl-c,
    <ulink url="c1050.htm#AEN1052" role="AEN1113">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>current task,
    <ulink url="c1159.htm#AEN1161" role="AEN1173">Replacing printk</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>D</title>

<indexentry>
  <primaryie>DEFAULT_MESSAGE_LOGLEVEL,
    <ulink url="c119.htm#INTRODUCINGPRINTK" role="AEN160">Introducing printk()</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>defining ioctls,
    <ulink url="c890.htm#AEN892" role="AEN963">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>device file
  </primaryie>
  <secondaryie>character,
    <ulink url="c567.htm#AEN569" role="AEN571">Character Device Drivers</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>device files
  </primaryie>
  <secondaryie>input to,
    <ulink url="c890.htm#AEN892" role="AEN896">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
  <secondaryie>write to,
    <ulink url="c890.htm#AEN892" role="AEN899">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
</indexentry>

</indexdiv>
<indexdiv><title>E</title>

<indexentry>
  <primaryie>EAGAIN,
    <ulink url="c1050.htm#AEN1052" role="AEN1138">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>EINTR,
    <ulink url="c1050.htm#AEN1052" role="AEN1129">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>ENTRY(system call),
    <ulink url="c976.htm#AEN978" role="AEN1015">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>entry.S,
    <ulink url="c976.htm#AEN978" role="AEN1019">System Calls</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>F</title>

<indexentry>
  <primaryie>file,
    <ulink url="c567.htm#AEN599" role="AEN602">The file structure</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>filesystem
  </primaryie>
  <secondaryie>/proc,
    <ulink url="c708.htm#AEN710" role="AEN715">The /proc File System</ulink>
  </secondaryie>
  <secondaryie>registration,
    <ulink url="x810.htm" role="AEN823">Manage /proc file with standard filesystem</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>filesystem registration,
    <ulink url="x810.htm" role="AEN826">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>file_operations,
    <ulink url="c567.htm#AEN574" role="AEN577">The file_operations Structure</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>file_operations structure,
    <ulink url="x810.htm" role="AEN837">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>G</title>

<indexentry>
  <primaryie>get_user,
    <ulink url="x769.htm" role="AEN775">Read and Write a /proc File</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>H</title>

<indexentry>
  <primaryie>handlers
  </primaryie>
  <secondaryie>interrupt,
    <ulink url="c1254.htm#AEN1256" role="AEN1260">Interrupt Handlers</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>housekeeping,
    <ulink url="c1209.htm#AEN1211" role="AEN1218">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>Hurd,
    <ulink url="c425.htm#AEN500" role="AEN506">Code space</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>I</title>

<indexentry>
  <primaryie>inb,
    <ulink url="c1254.htm#KEYBOARD" role="AEN1311">Keyboards on the Intel Architecture</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>init_module(),
    <ulink url="c119.htm#AEN121" role="AEN132">Hello, World (part 1): The Simplest Module</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>inode,
    <ulink url="c567.htm#AEN599" role="AEN604">The file structure</ulink>,
    <ulink url="c708.htm#AEN710" role="AEN745">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>inode_operations structure,
    <ulink url="x810.htm" role="AEN831">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>insmod,
    <ulink url="x181.htm" role="AEN183">Compiling Kernel Modules</ulink>,
    <ulink url="c976.htm#AEN978" role="AEN992">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>Intel architecture
  </primaryie>
  <secondaryie>keyboard,
    <ulink url="c1254.htm#KEYBOARD" role="AEN1303">Keyboards on the Intel Architecture</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>interrupt 0x80,
    <ulink url="c976.htm#AEN978" role="AEN1005">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>interrupt handlers,
    <ulink url="c1254.htm#AEN1256" role="AEN1258">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>interruptible_sleep_on,
    <ulink url="c1050.htm#AEN1052" role="AEN1068">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>interrupts
  </primaryie>
  <secondaryie>disabling,
    <ulink url="c1350.htm#AEN1352" role="AEN1367">Common Pitfalls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>ioctl,
    <ulink url="c890.htm#AEN892" role="AEN894">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
  <secondaryie>defining,
    <ulink url="c890.htm#AEN892" role="AEN965">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
  <secondaryie>official assignment,
    <ulink url="c890.htm#AEN892" role="AEN945">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
</indexentry>

</indexdiv>
<indexdiv><title>K</title>

<indexentry>
  <primaryie>kernel
  </primaryie>
  <secondaryie>versions,
    <ulink url="a1387.htm#AEN1389" role="AEN1393">Changes between 2.4 and 2.6</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>kernel versions,
    <ulink url="c567.htm#AEN691" role="AEN693">Writing Modules for Multiple Kernel Versions</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>kerneld,
    <ulink url="x44.htm" role="AEN50">How Do Modules Get Into The Kernel?</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>KERNEL_VERSION,
    <ulink url="c567.htm#AEN691" role="AEN697">Writing Modules for Multiple Kernel Versions</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>keyboard,
    <ulink url="c1254.htm#KEYBOARD" role="AEN1301">Keyboards on the Intel Architecture</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>keyboard LEDs
  </primaryie>
  <secondaryie>flashing,
    <ulink url="x1194.htm" role="AEN1196">Flashing keyboard LEDs</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>kmod,
    <ulink url="x44.htm" role="AEN48">How Do Modules Get Into The Kernel?</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>L</title>

<indexentry>
  <primaryie>libraries
  </primaryie>
  <secondaryie>standard,
    <ulink url="c1350.htm#AEN1352" role="AEN1359">Common Pitfalls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>library function,
    <ulink url="c425.htm#AEN441" role="AEN443">Functions available to modules</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>LINUX_VERSION_CODE,
    <ulink url="c567.htm#AEN691" role="AEN695">Writing Modules for Multiple Kernel Versions</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>M</title>

<indexentry>
  <primaryie>major number,
    <ulink url="c425.htm#AEN530" role="AEN532">Major and Minor Numbers</ulink>
  </primaryie>
  <secondaryie>dynamic allocation,
    <ulink url="c567.htm#AEN621" role="AEN625">Registering A Device</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>memory segments,
    <ulink url="x769.htm" role="AEN787">Read and Write a /proc File</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>microkernel,
    <ulink url="c425.htm#AEN500" role="AEN510">Code space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>minor number,
    <ulink url="c425.htm#AEN530" role="AEN534">Major and Minor Numbers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>mknod,
    <ulink url="c425.htm#AEN530" role="AEN545">Major and Minor Numbers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>modem,
    <ulink url="c890.htm#AEN892" role="AEN907">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MODULE_AUTHOR(),
    <ulink url="x279.htm" role="AEN293">Hello World (part 4): Licensing and Module Documentation</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_cleanup,
    <ulink url="c1209.htm#AEN1211" role="AEN1242">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MODULE_DESCRIPTION(),
    <ulink url="x279.htm" role="AEN290">Hello World (part 4): Licensing and Module Documentation</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_exit,
    <ulink url="x217.htm" role="AEN221">Hello World (part 2)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_init,
    <ulink url="x217.htm" role="AEN219">Hello World (part 2)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_interruptible_sleep_on,
    <ulink url="c1050.htm#AEN1052" role="AEN1066">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MODULE_LICENSE(),
    <ulink url="x279.htm" role="AEN283">Hello World (part 4): Licensing and Module Documentation</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_permissions,
    <ulink url="x810.htm" role="AEN849">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_sleep_on,
    <ulink url="c1050.htm#AEN1052" role="AEN1109">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MODULE_SUPPORTED_DEVICE(),
    <ulink url="x279.htm" role="AEN296">Hello World (part 4): Licensing and Module Documentation</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>module_wake_up,
    <ulink url="c1050.htm#AEN1052" role="AEN1107">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MOD_DEC_USE_COUNT,
    <ulink url="c567.htm#AEN651" role="AEN676">Unregistering A Device</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MOD_INC_USE_COUNT,
    <ulink url="c567.htm#AEN651" role="AEN674">Unregistering A Device</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>MOD_IN_USE,
    <ulink url="c567.htm#AEN651" role="AEN678">Unregistering A Device</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>monolithic kernel,
    <ulink url="c425.htm#AEN500" role="AEN504">Code space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>multi-processing,
    <ulink url="c1324.htm#AEN1326" role="AEN1330">Symmetrical Multi-Processing</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>multi-tasking,
    <ulink url="c1050.htm#AEN1052" role="AEN1062">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>multitasking,
    <ulink url="c1050.htm#AEN1052" role="AEN1082">Blocking Processes</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>N</title>

<indexentry>
  <primaryie>namespace pollution,
    <ulink url="c425.htm#AEN483" role="AEN487">Name Space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>Neutrino,
    <ulink url="c425.htm#AEN500" role="AEN508">Code space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>non-blocking,
    <ulink url="c1050.htm#AEN1052" role="AEN1136">Blocking Processes</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>O</title>

<indexentry>
  <primaryie>official ioctl assignment,
    <ulink url="c890.htm#AEN892" role="AEN943">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>O_NONBLOCK,
    <ulink url="c1050.htm#AEN1052" role="AEN1134">Blocking Processes</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>P</title>

<indexentry>
  <primaryie>permission,
    <ulink url="x810.htm" role="AEN847">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>pointer
  </primaryie>
  <secondaryie>current,
    <ulink url="x810.htm" role="AEN844">Manage /proc file with standard filesystem</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>printk
  </primaryie>
  <secondaryie>replacing,
    <ulink url="c1159.htm#AEN1161" role="AEN1164">Replacing printk</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>printk(),
    <ulink url="c119.htm#INTRODUCINGPRINTK" role="AEN157">Introducing printk()</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>proc file
  </primaryie>
  <secondaryie>kallsyms,
    <ulink url="c1350.htm#AEN1352" role="AEN1364">Common Pitfalls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>processes
  </primaryie>
  <secondaryie>blocking,
    <ulink url="c1050.htm#AEN1052" role="AEN1056">Blocking Processes</ulink>
  </secondaryie>
  <secondaryie>killing,
    <ulink url="c1050.htm#AEN1052" role="AEN1131">Blocking Processes</ulink>
  </secondaryie>
  <secondaryie>waking up,
    <ulink url="c1050.htm#AEN1052" role="AEN1079">Blocking Processes</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>processing
  </primaryie>
  <secondaryie>multi,
    <ulink url="c1324.htm#AEN1326" role="AEN1334">Symmetrical Multi-Processing</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>proc_register,
    <ulink url="c708.htm#AEN710" role="AEN742">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>proc_register_dynamic,
    <ulink url="c708.htm#AEN710" role="AEN739">The /proc File System</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>putting processes to sleep,
    <ulink url="c1050.htm#AEN1052" role="AEN1072">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>put_user,
    <ulink url="x769.htm" role="AEN778">Read and Write a /proc File</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>Q</title>

<indexentry>
  <primaryie>queue_delayed_work,
    <ulink url="c1209.htm#AEN1211" role="AEN1231">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>queue_work,
    <ulink url="c1254.htm#AEN1263" role="AEN1294">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>R</title>

<indexentry>
  <primaryie>read
  </primaryie>
  <secondaryie>in the kernel,
    <ulink url="x769.htm" role="AEN800">Read and Write a /proc File</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>reference count,
    <ulink url="c1209.htm#AEN1211" role="AEN1240">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>refund policy,
    <ulink url="c1350.htm#AEN1352" role="AEN1354">Common Pitfalls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>register_chrdev,
    <ulink url="c567.htm#AEN621" role="AEN623">Registering A Device</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>request_irq(),
    <ulink url="c1254.htm#AEN1263" role="AEN1279">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>rmmod,
    <ulink url="c976.htm#AEN978" role="AEN994">System Calls</ulink>,
    <ulink url="c1209.htm#AEN1211" role="AEN1238">Scheduling Tasks</ulink>
  </primaryie>
  <secondaryie>preventing,
    <ulink url="c567.htm#AEN651" role="AEN653">Unregistering A Device</ulink>
  </secondaryie>
</indexentry>

</indexdiv>
<indexdiv><title>S</title>

<indexentry>
  <primaryie>SA_INTERRUPT,
    <ulink url="c1254.htm#AEN1263" role="AEN1283">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>SA_SHIRQ,
    <ulink url="c1254.htm#AEN1263" role="AEN1285">Interrupt Handlers</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>scheduler,
    <ulink url="c1050.htm#AEN1052" role="AEN1084">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>scheduling tasks,
    <ulink url="c1209.htm#AEN1211" role="AEN1213">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>segment
  </primaryie>
  <secondaryie>memory,
    <ulink url="x769.htm" role="AEN789">Read and Write a /proc File</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>seq_file,
    <ulink url="x861.htm" role="AEN863">Manage /proc file with seq_file</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>serial port,
    <ulink url="c890.htm#AEN892" role="AEN905">Talking to Device Files (writes and IOCTLs)</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>shutdown,
    <ulink url="c976.htm#AEN978" role="AEN996">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>SIGINT,
    <ulink url="c1050.htm#AEN1052" role="AEN1105">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>signal,
    <ulink url="c1050.htm#AEN1052" role="AEN1103">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>sleep
  </primaryie>
  <secondaryie>putting processes to,
    <ulink url="c1050.htm#AEN1052" role="AEN1074">Blocking Processes</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>sleep_on,
    <ulink url="c1050.htm#AEN1052" role="AEN1111">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>SMP,
    <ulink url="c1324.htm#AEN1326" role="AEN1328">Symmetrical Multi-Processing</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>source file
  </primaryie>
  <secondaryie>chardev.c,
    <ulink url="c890.htm#AEN892" role="AEN948">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
  <secondaryie>chardev.h,
    <ulink url="c890.htm#AEN892" role="AEN955">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
  <secondaryie>hello-1.c,
    <ulink url="c119.htm#AEN121" role="AEN125">Hello, World (part 1): The Simplest Module</ulink>
  </secondaryie>
  <secondaryie>hello-2.c,
    <ulink url="x217.htm" role="AEN229">Hello World (part 2)</ulink>
  </secondaryie>
  <secondaryie>hello-3.c,
    <ulink url="x245.htm" role="AEN272">Hello World (part 3): The __init and __exit Macros</ulink>
  </secondaryie>
  <secondaryie>hello-4.c,
    <ulink url="x279.htm" role="AEN316">Hello World (part 4): Licensing and Module Documentation</ulink>
  </secondaryie>
  <secondaryie>hello-5.c,
    <ulink url="x323.htm" role="AEN342">Passing Command Line Arguments to a Module</ulink>
  </secondaryie>
  <secondaryie>intrpt.c,
    <ulink url="c1254.htm#KEYBOARD" role="AEN1316">Keyboards on the Intel Architecture</ulink>
  </secondaryie>
  <secondaryie>ioctl.c,
    <ulink url="c890.htm#AEN892" role="AEN968">Talking to Device Files (writes and IOCTLs)</ulink>
  </secondaryie>
  <secondaryie>print_string.c,
    <ulink url="c1159.htm#AEN1161" role="AEN1187">Replacing printk</ulink>
  </secondaryie>
  <secondaryie>sched.c,
    <ulink url="c1209.htm#AEN1211" role="AEN1247">Scheduling Tasks</ulink>
  </secondaryie>
  <secondaryie>sleep.c,
    <ulink url="c1050.htm#AEN1052" role="AEN1148">Blocking Processes</ulink>
  </secondaryie>
  <secondaryie>start.c,
    <ulink url="x351.htm" role="AEN358">Modules Spanning Multiple Files</ulink>
  </secondaryie>
  <secondaryie>stop.c,
    <ulink url="x351.htm" role="AEN366">Modules Spanning Multiple Files</ulink>
  </secondaryie>
  <secondaryie>syscall.c,
    <ulink url="c976.htm#AEN978" role="AEN1043">System Calls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>source files
  </primaryie>
  <secondaryie>multiple,
    <ulink url="x351.htm" role="AEN353">Modules Spanning Multiple Files</ulink>,
    <ulink url="x380.htm" role="AEN382">Building modules for a precompiled kernel</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>standard libraries,
    <ulink url="c1350.htm#AEN1352" role="AEN1357">Common Pitfalls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>strace,
    <ulink url="c425.htm#AEN441" role="AEN462">Functions available to modules</ulink>,
    <ulink url="c976.htm#AEN978" role="AEN1002">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>struct
  </primaryie>
  <secondaryie>tty,
    <ulink url="c1159.htm#AEN1161" role="AEN1180">Replacing printk</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>struct file_operations,
    <ulink url="x810.htm" role="AEN834">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>struct inode_operations,
    <ulink url="x810.htm" role="AEN828">Manage /proc file with standard filesystem</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>symbol table,
    <ulink url="c425.htm#AEN483" role="AEN485">Name Space</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>symmetrical multi-processing,
    <ulink url="c1324.htm#AEN1326" role="AEN1332">Symmetrical Multi-Processing</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>sync,
    <ulink url="c976.htm#AEN978" role="AEN990">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>system call,
    <ulink url="c425.htm#AEN441" role="AEN445">Functions available to modules</ulink>,
    <ulink url="c976.htm#AEN978" role="AEN1013">System Calls</ulink>
  </primaryie>
  <secondaryie>open,
    <ulink url="c976.htm#AEN978" role="AEN1029">System Calls</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>system calls,
    <ulink url="c976.htm#AEN978" role="AEN980">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>sys_call_table,
    <ulink url="c976.htm#AEN978" role="AEN1017">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>sys_open,
    <ulink url="c976.htm#AEN978" role="AEN1041">System Calls</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>T</title>

<indexentry>
  <primaryie>task,
    <ulink url="c1209.htm#AEN1211" role="AEN1227">Scheduling Tasks</ulink>
  </primaryie>
  <secondaryie>current,
    <ulink url="c1159.htm#AEN1161" role="AEN1175">Replacing printk</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>tasks
  </primaryie>
  <secondaryie>scheduling,
    <ulink url="c1209.htm#AEN1211" role="AEN1215">Scheduling Tasks</ulink>
  </secondaryie>
</indexentry>

<indexentry>
  <primaryie>TASK_INTERRUPTIBLE,
    <ulink url="c1050.htm#AEN1052" role="AEN1070">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>try_module_get,
    <ulink url="c976.htm#AEN978" role="AEN1039">System Calls</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>tty_structure,
    <ulink url="c1159.htm#AEN1161" role="AEN1178">Replacing printk</ulink>
  </primaryie>
</indexentry>

</indexdiv>
<indexdiv><title>W</title>

<indexentry>
  <primaryie>waking up processes,
    <ulink url="c1050.htm#AEN1052" role="AEN1077">Blocking Processes</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>workqueue_struct,
    <ulink url="c1209.htm#AEN1211" role="AEN1229">Scheduling Tasks</ulink>
  </primaryie>
</indexentry>

<indexentry>
  <primaryie>write
  </primaryie>
  <secondaryie>in the kernel,
    <ulink url="x769.htm" role="AEN803">Read and Write a /proc File</ulink>
  </secondaryie>
</indexentry>

</indexdiv>
</index>
