
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.
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.
DMA-mapping.txt
	- info for PCI drivers using DMA portably across all platforms.
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.
MSI-HOWTO.txt
	- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
PCIEBUS-HOWTO.txt
	- a guide describing the PCI Express Port Bus driver.
RCU/
	- directory with info on RCU (read-copy update).
README.DAC960
	- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
README.cycladesZ
	- info on Cyclades-Z firmware loading.
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.
cachetlb.txt
	- describes the cache/TLB flushing interfaces Linux uses.
cciss.txt
	- info, major/minor #'s for Compaq's SMART Array Controllers.
cdrom/
	- directory with information on the CD-ROM drivers that Linux has.
cli-sti-removal.txt
	- cli()/sti() removal guide.
computone.txt
	- info on Computone Intelliport II/Plus Multiport Serial Driver.
connector/
	- docs on the netlink based userspace<->kernel space communication mod.
console/
	- documentation on Linux console drivers.
cpqarray.txt
	- info on using Compaq's SMART2 Intelligent Disk Array Controllers.
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.
cpusets.txt
	- documents the cpusets feature; assign CPUs and Mem to a set of tasks.
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.
digiepca.txt
	- info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
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.
floppy.txt
	- notes and driver options for the floppy disk driver.
frv/
	- Fujitsu FR-V Linux documentation.
gpio.txt
	- overview of GPIO (General Purpose Input/Output) access conventions.
hayes-esp.txt
	- info on using the Hayes ESP serial driver.
highuid.txt
	- notes on the change from 16 bit to 32 bit user/group IDs.
hpet.txt
	- High Precision Event Timer Driver for Linux.
hrtimer/
	- info on the timer_stats debugging facility for timer (ab)use.
hrtimers/
	- info on the hrtimers subsystem for high-resolution kernel timers.
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.
i386/
	- directory with info about Linux on Intel 32 bit architecture.
ia64/
	- directory with info about Linux on Intel 64 bit architecture.
ide.txt
	- important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
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.
ioctl-number.txt
	- how to implement and register device/driver 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.
laptop-mode.txt
	- how to conserve battery power using laptop-mode.
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.
moxa-smartio
	- file with info on installing/using Moxa multiport serial driver.
mtrr.txt
	- how to use PPro Memory Type Range Registers to increase performance.
mutex-design.txt
	- info on the generic mutex subsystem.
namespaces/
	- directory with various information about namespaces
nbd.txt
	- info on a TCP implementation of a network block device.
netlabel/
	- directory with information on the NetLabel subsystem.
networking/
	- directory with info on various aspects of networking with Linux.
nfsroot.txt
	- short guide on setting up a diskless box with NFS root filesystem.
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.
paride.txt
	- information about the parallel port IDE subsystem.
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.
pci-error-recovery.txt
	- info on PCI error recovery.
pci.txt
	- info on the PCI subsystem for device driver authors.
pcieaer-howto.txt
	- the PCI Express Advanced Error Reporting Driver Guide HOWTO.
pcmcia/
	- info on the Linux PCMCIA driver.
pi-futex.txt
	- documentation on lightweight PI-futexes.
pm.txt
	- info on Linux power management support.
pnp.txt
	- Linux Plug and Play documentation.
power_supply_class.txt
	- Tells userspace about battery, UPS, AC or DC power supply properties
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.
prio_tree.txt
	- info on radix-priority-search-tree use for indexing vmas.
ramdisk.txt
	- short guide on how to set up and use the RAM disk.
rbtree.txt
	- info on what red-black trees are and what they are for.
riscom8.txt
	- notes on using the RISCom/8 multi-port serial driver.
robust-futex-ABI.txt
	- documentation of the robust futex ABI.
robust-futexes.txt
	- a description of what robust futexes are.
rocket.txt
	- info on the Comtrol RocketPort multiport serial driver.
rpc-cache.txt
	- introduction to the caching mechanisms in the sunrpc layer.
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.
smart-config.txt
	- description of the Smart Config makefile feature.
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.
specialix.txt
	- info on hardware/driver for specialix IO8+ multiport serial card.
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.
stallion.txt
	- info on using the Stallion multiport serial driver.
svga.txt
	- short guide on selecting video modes at boot via VGA BIOS.
sysfs-rules.txt
	- How not to use sysfs.
sx.txt
	- info on the Specialix SX/SI multiport serial driver.
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.
tipar.txt
	- information about Parallel link cable for Texas Instruments handhelds.
tty.txt
	- guide to the locking policies of the tty layer.
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_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.
