
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.
BK-usage/
	- directory with info on BitKeeper.
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-mapping.txt
	- info for PCI drivers using DMA portably across all platforms.
DocBook/
	- directory with DocBook templates etc. for kernel documentation.
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.
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.
SAK.txt
	- info on Secure Attention Keys.
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.
arm/
	- directory with info about Linux on the ARM architecture.
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.
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.
cpqarray.txt
	- info on using Compaq's SMART2 Intelligent Disk Array Controllers.
cpu-freq/
	- info on CPU frequency and voltage scaling.
cris/
	- directory with info about Linux on CRIS architecture.
crypto/
	- directory with info on the Crypto API.
debugging-modules.txt
	- some notes on debugging modules after Linux 2.6.3.
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.
dnotify.txt
	- info about directory notification in Linux.
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.
eisa.txt
	- info on EISA bus support.
exception.txt
	- how Linux v2.2 handles exceptions without verify_area etc.
fb/
	- directory with info on the frame buffer graphics abstraction layer.
filesystems/
	- directory with info on the various filesystems that Linux supports.
firmware_class/
	- request_firmware() hotplug interface info.
floppy.txt
	- notes and driver options for the floppy disk driver.
ftape.txt
	- notes about the floppy tape device driver.
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.
hw_random.txt
	- info on Linux support for random number generator in i8xx chipsets.
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).
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-number.txt
	- how to implement and register device/driver ioctl calls.
iostats.txt
	- info on I/O statistics Linux kernel provides.
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.
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.
kobject.txt
	- info of the kobject infrastructure of the Linux kernel.
laptop-mode.txt
	- How to conserve battery power using laptop-mode.
ldm.txt
	- a brief description of LDM (Windows Dynamic Disks).
locks.txt
	- info on file locking implementations, flock() vs. fcntl(), etc.
logo.gif
	- Full colour GIF image of Linux logo (penguin).
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.
mandatory.txt
	- info on the Linux implementation of Sys V mandatory file locking.
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.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
	- info on installing/using Moxa multiport serial driver.
mtrr.txt
	- how to use PPro Memory Type Range Registers to increase performance.
nbd.txt
	- info on a TCP implementation of a network block device.
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.
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.txt
	- info on the PCI subsystem for device driver authors.
pm.txt
	- info on Linux power management support.
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.
ramdisk.txt
	- short guide on how to set up and use the RAM disk.
riscom8.txt
	- notes on using the RISCom/8 multi-port serial driver.
rocket.txt
	- info on the Comtrol RocketPort multiport serial driver.
rpc-cache.txt
	- introduction to the caching mechanisms in the sunrpc layer.
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.
sched-coding.txt
	- reference for various scheduler-related methods in the O(1) scheduler.
sched-design.txt
	- goals, design and implementation of the Linux O(1) scheduler.
sched-domains.txt
	- information on scheduling domains.
sched-stats.txt
	- information on schedstats (Linux Scheduler Statistics).
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-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.
smp.txt
	- a few notes on symmetric multi-processing.
sonypi.txt
	- info on Linux Sony Programmable I/O Device support.
sound/
	- directory with info on sound card support.
sparc/
	- directory with info on using Linux on Sparc architecture.
specialix.txt
	- info on hardware/driver for specialix IO8+ multiport serial card.
spinlocks.txt
	- info on using spinlocks to provide exclusive access in kernel.
stallion.txt
	- info on using the Stallion multiport serial driver.
svga.txt
	- short guide on selecting video modes at boot via VGA BIOS.
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.
unicode.txt
	- info on the Unicode character/font mapping used in Linux.
uml/
	- directory with infomation about User Mode Linux.
usb/
	- directory with info regarding the Universal Serial Bus.
video4linux/
	- directory with info regarding video/TV/radio cards and linux.
vm/
	- directory with info on the Linux vm code.
voyager.txt
	- guide to running Linux on the Voyager architecture.
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.
xterm-linux.xpm
	- XPM image of penguin logo (see logo.txt) sitting on an xterm.
zorro.txt
	- info on writing drivers for Zorro bus devices found on Amigas.
