
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.
MSI-HOWTO.txt
	- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
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.
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.
cpuidle/
	- info on CPU_IDLE, CPU idle state management subsystem.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
