
This is a brief list of all the files in ./linux/Documentation and what
they contain. If you add a documentation file, please list it here in
alphabetical order as well, or risk being hunted down like a rabid dog.
Please try and keep the descriptions small enough to fit on one line.
							 Thanks -- Paul G.

Following translations are available on the WWW:

   - Japanese, maintained by the JF Project (JF@linux.or.jp), at
     http://www.linux.or.jp/JF/

00-INDEX
	- this file.
ABI/
	- info on kernel <-> userspace ABI and relative interface stability.

BUG-HUNTING
	- brute force method of doing binary search of patches to find bug.
Changes
	- list of changes that break older software packages.
CodingStyle
	- how the boss likes the C code in the kernel to look.
development-process/
	- An extended tutorial on how to work with the kernel development
	  process.
DMA-API.txt
	- DMA API, pci_ API & extensions for non-consistent memory machines.
DMA-ISA-LPC.txt
	- How to do DMA with ISA (and LPC) devices.
DocBook/
	- directory with DocBook templates etc. for kernel documentation.
HOWTO
	- the process and procedures of how to do Linux kernel development.
IO-mapping.txt
	- how to access I/O mapped memory from within device drivers.
IPMI.txt
	- info on Linux Intelligent Platform Management Interface (IPMI) Driver.
IRQ-affinity.txt
	- how to select which CPU(s) handle which interrupt events on SMP.
IRQ.txt
	- description of what an IRQ is.
ManagementStyle
	- how to (attempt to) manage kernel hackers.
RCU/
	- directory with info on RCU (read-copy update).
SAK.txt
	- info on Secure Attention Keys.
SM501.txt
	- Silicon Motion SM501 multimedia companion chip
SecurityBugs
	- procedure for reporting security bugs found in the kernel.
SubmitChecklist
	- Linux kernel patch submission checklist.
SubmittingDrivers
	- procedure to get a new driver source included into the kernel tree.
SubmittingPatches
	- procedure to get a source patch included into the kernel tree.
VGA-softcursor.txt
	- how to change your VGA cursor from a blinking underscore.
accounting/
	- documentation on accounting and taskstats.
acpi/
	- info on ACPI-specific hooks in the kernel.
aoe/
	- description of AoE (ATA over Ethernet) along with config examples.
applying-patches.txt
	- description of various trees and how to apply their patches.
arm/
	- directory with info about Linux on the ARM architecture.
atomic_ops.txt
	- semantics and behavior of atomic and bitmask operations.
auxdisplay/
	- misc. LCD driver documentation (cfag12864b, ks0108).
basic_profiling.txt
	- basic instructions for those who wants to profile Linux kernel.
binfmt_misc.txt
	- info on the kernel support for extra binary formats.
blackfin/
	- directory with documentation for the Blackfin arch.
block/
	- info on the Block I/O (BIO) layer.
blockdev/
	- info on block devices & drivers
btmrvl.txt
	- info on Marvell Bluetooth driver usage.
cachetlb.txt
	- describes the cache/TLB flushing interfaces Linux uses.
cdrom/
	- directory with information on the CD-ROM drivers that Linux has.
cgroups/
	- cgroups features, including cpusets and memory controller.
connector/
	- docs on the netlink based userspace<->kernel space communication mod.
console/
	- documentation on Linux console drivers.
cpu-freq/
	- info on CPU frequency and voltage scaling.
cpu-hotplug.txt
	- document describing CPU hotplug support in the Linux kernel.
cpu-load.txt
	- document describing how CPU load statistics are collected.
cpuidle/
	- info on CPU_IDLE, CPU idle state management subsystem.
cputopology.txt
	- documentation on how CPU topology info is exported via sysfs.
cris/
	- directory with info about Linux on CRIS architecture.
crypto/
	- directory with info on the Crypto API.
dcdbas.txt
	- information on the Dell Systems Management Base Driver.
debugging-modules.txt
	- some notes on debugging modules after Linux 2.6.3.
dell_rbu.txt
	- document demonstrating the use of the Dell Remote BIOS Update driver.
device-mapper/
	- directory with info on Device Mapper.
devices.txt
	- plain ASCII listing of all the nodes in /dev/ with major minor #'s.
dontdiff
	- file containing a list of files that should never be diff'ed.
driver-model/
	- directory with info about Linux driver model.
dvb/
	- info on Linux Digital Video Broadcast (DVB) subsystem.
early-userspace/
	- info about initramfs, klibc, and userspace early during boot.
edac.txt
	- information on EDAC - Error Detection And Correction
eisa.txt
	- info on EISA bus support.
exception.txt
	- how Linux v2.2 handles exceptions without verify_area etc.
fault-injection/
	- dir with docs about the fault injection capabilities infrastructure.
fb/
	- directory with info on the frame buffer graphics abstraction layer.
feature-removal-schedule.txt
	- list of files and features that are going to be removed.
filesystems/
	- info on the vfs and the various filesystems that Linux supports.
firmware_class/
	- request_firmware() hotplug interface info.
frv/
	- Fujitsu FR-V Linux documentation.
gpio.txt
	- overview of GPIO (General Purpose Input/Output) access conventions.
highuid.txt
	- notes on the change from 16 bit to 32 bit user/group IDs.
timers/
	- info on the timer related topics
hw_random.txt
	- info on Linux support for random number generator in i8xx chipsets.
hwmon/
	- directory with docs on various hardware monitoring drivers.
i2c/
	- directory with info about the I2C bus/protocol (2 wire, kHz speed).
i2o/
	- directory with info about the Linux I2O subsystem.
x86/i386/
	- directory with info about Linux on Intel 32 bit architecture.
ia64/
	- directory with info about Linux on Intel 64 bit architecture.
infiniband/
	- directory with documents concerning Linux InfiniBand support.
initrd.txt
	- how to use the RAM disk as an initial/temporary root filesystem.
input/
	- info on Linux input device support.
io_ordering.txt
	- info on ordering I/O writes to memory-mapped addresses.
ioctl/
	- directory with documents describing various IOCTL calls.
iostats.txt
	- info on I/O statistics Linux kernel provides.
irqflags-tracing.txt
	- how to use the irq-flags tracing feature.
isapnp.txt
	- info on Linux ISA Plug & Play support.
isdn/
	- directory with info on the Linux ISDN support, and supported cards.
java.txt
	- info on the in-kernel binary support for Java(tm).
kbuild/
	- directory with info about the kernel build process.
kdump/
	- directory with mini HowTo on getting the crash dump code to work.
kernel-doc-nano-HOWTO.txt
	- mini HowTo on generation and location of kernel documentation files.
kernel-docs.txt
	- listing of various WWW + books that document kernel internals.
kernel-parameters.txt
	- summary listing of command line / boot prompt args for the kernel.
keys-request-key.txt
	- description of the kernel key request service.
keys.txt
	- description of the kernel key retention service.
kobject.txt
	- info of the kobject infrastructure of the Linux kernel.
kprobes.txt
	- documents the kernel probes debugging feature.
kref.txt
	- docs on adding reference counters (krefs) to kernel objects.
laptops/
	- directory with laptop related info and laptop driver documentation.
ldm.txt
	- a brief description of LDM (Windows Dynamic Disks).
leds-class.txt
	- documents LED handling under Linux.
local_ops.txt
	- semantics and behavior of local atomic operations.
lockdep-design.txt
	- documentation on the runtime locking correctness validator.
logo.gif
	- full colour GIF image of Linux logo (penguin - Tux).
logo.txt
	- info on creator of above logo & site to get additional images from.
m68k/
	- directory with info about Linux on Motorola 68k architecture.
magic-number.txt
	- list of magic numbers used to mark/protect kernel data structures.
mca.txt
	- info on supporting Micro Channel Architecture (e.g. PS/2) systems.
md.txt
	- info on boot arguments for the multiple devices driver.
memory-barriers.txt
	- info on Linux kernel memory barriers.
memory-hotplug.txt
	- Hotpluggable memory support, how to use and current status.
memory.txt
	- info on typical Linux memory problems.
mips/
	- directory with info about Linux on MIPS architecture.
mono.txt
	- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
mutex-design.txt
	- info on the generic mutex subsystem.
namespaces/
	- directory with various information about namespaces
netlabel/
	- directory with information on the NetLabel subsystem.
networking/
	- directory with info on various aspects of networking with Linux.
nmi_watchdog.txt
	- info on NMI watchdog for SMP systems.
nommu-mmap.txt
	- documentation about no-mmu memory mapping support.
numastat.txt
	- info on how to read Numa policy hit/miss statistics in sysfs.
oops-tracing.txt
	- how to decode those nasty internal kernel error dump messages.
parisc/
	- directory with info on using Linux on PA-RISC architecture.
parport.txt
	- how to use the parallel-port driver.
parport-lowlevel.txt
	- description and usage of the low level parallel port functions.
pcmcia/
	- info on the Linux PCMCIA driver.
pi-futex.txt
	- documentation on lightweight PI-futexes.
pnp.txt
	- Linux Plug and Play documentation.
power/
	- directory with info on Linux PCI power management.
powerpc/
	- directory with info on using Linux with the PowerPC.
preempt-locking.txt
	- info on locking under a preemptive kernel.
printk-formats.txt
	- how to get printk format specifiers right
prio_tree.txt
	- info on radix-priority-search-tree use for indexing vmas.
rbtree.txt
	- info on what red-black trees are and what they are for.
robust-futex-ABI.txt
	- documentation of the robust futex ABI.
robust-futexes.txt
	- a description of what robust futexes are.
rt-mutex-design.txt
	- description of the RealTime mutex implementation design.
rt-mutex.txt
	- desc. of RT-mutex subsystem with PI (Priority Inheritance) support.
rtc.txt
	- notes on how to use the Real Time Clock (aka CMOS clock) driver.
s390/
	- directory with info on using Linux on the IBM S390.
scheduler/
	- directory with info on the scheduler.
scsi/
	- directory with info on Linux scsi support.
serial/
	- directory with info on the low level serial API.
serial-console.txt
	- how to set up Linux with a serial line console as the default.
sgi-ioc4.txt
	- description of the SGI IOC4 PCI (multi function) device.
sgi-visws.txt
	- short blurb on the SGI Visual Workstations.
sh/
	- directory with info on porting Linux to a new architecture.
sound/
	- directory with info on sound card support.
sparc/
	- directory with info on using Linux on Sparc architecture.
sparse.txt
	- info on how to obtain and use the sparse tool for typechecking.
spi/
	- overview of Linux kernel Serial Peripheral Interface (SPI) support.
spinlocks.txt
	- info on using spinlocks to provide exclusive access in kernel.
stable_api_nonsense.txt
	- info on why the kernel does not have a stable in-kernel api or abi.
stable_kernel_rules.txt
	- rules and procedures for the -stable kernel releases.
svga.txt
	- short guide on selecting video modes at boot via VGA BIOS.
sysfs-rules.txt
	- How not to use sysfs.
sysctl/
	- directory with info on the /proc/sys/* files.
sysrq.txt
	- info on the magic SysRq key.
telephony/
	- directory with info on telephony (e.g. voice over IP) support.
time_interpolators.txt
	- info on time interpolators.
uml/
	- directory with information about User Mode Linux.
unicode.txt
	- info on the Unicode character/font mapping used in Linux.
unshare.txt
	- description of the Linux unshare system call.
usb/
	- directory with info regarding the Universal Serial Bus.
video-output.txt
	- sysfs class driver interface to enable/disable a video output device.
video4linux/
	- directory with info regarding video/TV/radio cards and linux.
vm/
	- directory with info on the Linux vm code.
volatile-considered-harmful.txt
	- Why the "volatile" type class should not be used
voyager.txt
	- guide to running Linux on the Voyager architecture.
w1/
	- directory with documents regarding the 1-wire (w1) subsystem.
watchdog/
	- how to auto-reboot Linux if it has "fallen and can't get up". ;-)
x86/x86_64/
	- directory with info on Linux support for AMD x86-64 (Hammer) machines.
zorro.txt
	- info on writing drivers for Zorro bus devices found on Amigas.
