
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 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@listserv.linux.or.jp), at
     http://linuxjf.sourceforge.jp/

00-INDEX
	- this file.
ABI/
	- info on kernel <-> userspace ABI and relative interface stability.
CodingStyle
	- nothing here, just a pointer to process/coding-style.rst.
DMA-API.txt
	- DMA API, pci_ API & extensions for non-consistent memory machines.
DMA-API-HOWTO.txt
	- Dynamic DMA mapping Guide
DMA-ISA-LPC.txt
	- How to do DMA with ISA (and LPC) devices.
DMA-attributes.txt
	- listing of the various possible attributes a DMA region can have
EDID/
	- directory with info on customizing EDID for broken gfx/displays.
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-domain.txt
	- info on interrupt numbering and setting up IRQ domains.
IRQ.txt
	- description of what an IRQ is.
Intel-IOMMU.txt
	- basic info on the Intel IOMMU virtualization support.
Makefile
	- It's not of interest for those who aren't touching the build system.
PCI/
	- info related to PCI drivers.
RCU/
	- directory with info on RCU (read-copy update).
SAK.txt
	- info on Secure Attention Keys.
SM501.txt
	- Silicon Motion SM501 multimedia companion chip
SubmittingPatches
	- nothing here, just a pointer to process/coding-style.rst.
accounting/
	- documentation on accounting and taskstats.
acpi/
	- info on ACPI-specific hooks in the kernel.
admin-guide/
	- info related to Linux users and system admins.
aoe/
	- description of AoE (ATA over Ethernet) along with config examples.
arm/
	- directory with info about Linux on the ARM architecture.
arm64/
	- directory with info about Linux on the 64 bit ARM architecture.
auxdisplay/
	- misc. LCD driver documentation (cfag12864b, ks0108).
backlight/
	- directory with info on controlling backlights in flat panel displays
block/
	- info on the Block I/O (BIO) layer.
blockdev/
	- info on block devices & drivers
bt8xxgpio.txt
	- info on how to modify a bt8xx video card for GPIO usage.
btmrvl.txt
	- info on Marvell Bluetooth driver usage.
bus-devices/
	- directory with info on TI GPMC (General Purpose Memory Controller)
bus-virt-phys-mapping.txt
	- how to access I/O mapped memory from within device drivers.
cdrom/
	- directory with information on the CD-ROM drivers that Linux has.
cgroup-v1/
	- cgroups v1 features, including cpusets and memory controller.
cma/
	- Continuous Memory Area (CMA) debugfs interface.
conf.py
	- It's not of interest for those who aren't touching the build system.
connector/
	- docs on the netlink based userspace<->kernel space communication mod.
console/
	- documentation on Linux console drivers.
core-api/
	- documentation on kernel core components.
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.
crc32.txt
	- brief tutorial on CRC computation
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.
debugging-via-ohci1394.txt
	- how to use firewire like a hardware debugger memory reader.
dell_rbu.txt
	- document demonstrating the use of the Dell Remote BIOS Update driver.
dev-tools/
	- directory with info on development tools for the kernel.
device-mapper/
	- directory with info on Device Mapper.
dmaengine/
	- the DMA engine and controller API guides.
devicetree/
	- directory with info on device tree files used by OF/PowerPC/ARM
digsig.txt
	-info on the Digital Signature Verification API
dma-buf-sharing.txt
	- the DMA Buffer Sharing API Guide
docutils.conf
	- nothing here. Just a configuration file for docutils.
dontdiff
	- file containing a list of files that should never be diff'ed.
driver-api/
	- the Linux driver implementer's API guide.
driver-model/
	- directory with info about Linux driver model.
early-userspace/
	- info about initramfs, klibc, and userspace early during boot.
efi-stub.txt
	- How to use the EFI boot stub to bypass GRUB or elilo on EFI systems.
eisa.txt
	- info on EISA bus support.
extcon/
	- directory with porting guide for Android kernel switch driver.
isa.txt
	- info on EISA bus support.
fault-injection/
	- dir with docs about the fault injection capabilities infrastructure.
fb/
	- directory with info on the frame buffer graphics abstraction layer.
features/
	- status of feature implementation on different architectures.
filesystems/
	- info on the vfs and the various filesystems that Linux supports.
firmware_class/
	- request_firmware() hotplug interface info.
flexible-arrays.txt
	- how to make use of flexible sized arrays in linux
fmc/
	- information about the FMC bus abstraction
fpga/
	- FPGA Manager Core.
futex-requeue-pi.txt
	- info on requeueing of tasks from a non-PI futex to a PI futex
gcc-plugins.txt
	- GCC plugin infrastructure.
gpio/
	- gpio related documentation
gpu/
	- directory with information on GPU driver developer's guide.
hid/
	- directory with information on human interface devices
highuid.txt
	- notes on the change from 16 bit to 32 bit user/group IDs.
hwspinlock.txt
	- hardware spinlock provides hardware assistance for synchronization
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).
x86/i386/
	- directory with info about Linux on Intel 32 bit architecture.
ia64/
	- directory with info about Linux on Intel 64 bit architecture.
ide/
	- Information regarding the Enhanced IDE drive.
iio/
	- info on industrial IIO configfs support.
index.rst
	- main index for the documentation at ReST format.
infiniband/
	- directory with documents concerning Linux InfiniBand support.
input/
	- info on Linux input device support.
intel_txt.txt
	- info on intel Trusted Execution Technology (intel TXT).
io-mapping.txt
	- description of io_mapping functions in linux/io-mapping.h
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.
kbuild/
	- directory with info about the kernel build process.
kdump/
	- directory with mini HowTo on getting the crash dump code to work.
doc-guide/
	- how to write and format reStructuredText kernel documentation
kernel-per-CPU-kthreads.txt
	- List of all per-CPU kthreads and how they introduce jitter.
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/
	- directory with info about LED handling under Linux.
livepatch/
	- info on kernel live patching.
locking/
	- directory with info about kernel locking primitives
lockup-watchdogs.txt
	- info on soft and hard lockup detectors (aka nmi_watchdog).
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.
lsm.txt
	- Linux Security Modules: General Security Hooks for Linux
lzo.txt
	- kernel LZO decompressor input formats
m68k/
	- directory with info about Linux on Motorola 68k architecture.
mailbox.txt
	- How to write drivers for the common mailbox framework (IPC).
md/
	- directory with info about Linux Software RAID
media/
	- info on media drivers: uAPI, kAPI and driver documentation.
memory-barriers.txt
	- info on Linux kernel memory barriers.
memory-devices/
	- directory with info on parts like the Texas Instruments EMIF driver
memory-hotplug.txt
	- Hotpluggable memory support, how to use and current status.
men-chameleon-bus.txt
	- info on MEN chameleon bus.
mic/
	- Intel Many Integrated Core (MIC) architecture device driver.
mips/
	- directory with info about Linux on MIPS architecture.
misc-devices/
	- directory with info about devices using the misc dev subsystem
mmc/
	- directory with info about the MMC subsystem
mtd/
	- directory with info about memory technology devices (flash)
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.
nfc/
	- directory relating info about Near Field Communications support.
nios2/
	- Linux on the Nios II architecture.
nommu-mmap.txt
	- documentation about no-mmu memory mapping support.
numastat.txt
	- info on how to read Numa policy hit/miss statistics in sysfs.
ntb.txt
	- info on Non-Transparent Bridge (NTB) drivers.
nvdimm/
	- info on non-volatile devices.
nvmem/
	- info on non volatile memory framework.
output/
	- default directory where html/LaTeX/pdf files will be written.
padata.txt
	- An introduction to the "padata" parallel execution API
parisc/
	- directory with info on using Linux on PA-RISC architecture.
parport-lowlevel.txt
	- description and usage of the low level parallel port functions.
pcmcia/
	- info on the Linux PCMCIA driver.
percpu-rw-semaphore.txt
	- RCU based read-write semaphore optimized for locking for reading
perf/
	- info about the APM X-Gene SoC Performance Monitoring Unit (PMU).
phy/
	- ino on Samsung USB 2.0 PHY adaptation layer.
phy.txt
	- Description of the generic PHY framework.
pi-futex.txt
	- documentation on lightweight priority inheritance futexes.
pinctrl.txt
	- info on pinctrl subsystem and the PINMUX/PINCONF and drivers
platform/
	- List of supported hardware by compal and Dell laptop.
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.
prctl/
	- directory with info on the priveledge control subsystem
preempt-locking.txt
	- info on locking under a preemptive kernel.
process/
	- how to work with the mainline kernel development process.
pps/
	- directory with information on the pulse-per-second support
pti/
	- directory with info on Intel MID PTI.
ptp/
	- directory with info on support for IEEE 1588 PTP clocks in Linux.
pwm.txt
	- info on the pulse width modulation driver subsystem
rapidio/
	- directory with info on RapidIO packet-based fabric interconnect
rbtree.txt
	- info on what red-black trees are and what they are for.
remoteproc.txt
	- info on how to handle remote processor (e.g. AMP) offloads/usage.
rfkill.txt
	- info on the radio frequency kill switch subsystem/support.
robust-futex-ABI.txt
	- documentation of the robust futex ABI.
robust-futexes.txt
	- a description of what robust futexes are.
rpmsg.txt
	- info on the Remote Processor Messaging (rpmsg) Framework
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.
security/
	- directory that contains security-related info
serial/
	- directory with info on the low level serial API.
sgi-ioc4.txt
	- description of the SGI IOC4 PCI (multi function) device.
sh/
	- directory with info on porting Linux to a new architecture.
smsc_ece1099.txt
	-info on the smsc Keyboard Scan Expansion/GPIO Expansion device.
sound/
	- directory with info on sound card support.
spi/
	- overview of Linux kernel Serial Peripheral Interface (SPI) support.
sphinx/
	- no documentation here, just files required by Sphinx toolchain.
sphinx-static/
	- no documentation here, just files required by Sphinx toolchain.
static-keys.txt
	- info on how static keys allow debug code in hotpaths via patching
svga.txt
	- short guide on selecting video modes at boot via VGA BIOS.
sync_file.txt
	- Sync file API guide.
sysctl/
	- directory with info on the /proc/sys/* files.
target/
	- directory with info on generating TCM v4 fabric .ko modules
tee.txt
	- info on the TEE subsystem and drivers
this_cpu_ops.txt
	- List rationale behind and the way to use this_cpu operations.
thermal/
	- directory with information on managing thermal issues (CPU/temp)
trace/
	- directory with info on tracing technologies within linux
translations/
	- translations of this document from English to another language
unaligned-memory-access.txt
	- info on how to avoid arch breaking unaligned memory access in code.
unshare.txt
	- description of the Linux unshare system call.
usb/
	- directory with info regarding the Universal Serial Bus.
vfio.txt
	- info on Virtual Function I/O used in guest/hypervisor instances.
video-output.txt
	- sysfs class driver interface to enable/disable a video output device.
virtual/
	- directory with information on the various linux virtualizations.
vm/
	- directory with info on the Linux vm code.
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". ;-)
wimax/
	- directory with info about Intel Wireless Wimax Connections
core-api/workqueue.rst
	- information on the Concurrency Managed Workqueue implementation
x86/x86_64/
	- directory with info on Linux support for AMD x86-64 (Hammer) machines.
xillybus.txt
	- Overview and basic ui of xillybus driver
xtensa/
	- directory with documents relating to arch/xtensa port/implementation
xz.txt
	- how to make use of the XZ data compression within linux kernel
zorro.txt
	- info on writing drivers for Zorro bus devices found on Amigas.
