
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.
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.
