# The Linux Kernel API

## Data Types

### Doubly Linked Lists

!Iinclude/linux/list.h

## Memory Management in Linux

### The Slab Cache

!Emm/slab.c

## The Linux VFS

### The Directory Cache

!Efs/dcache.c !Iinclude/linux/dcache.h

### Inode Handling

!Efs/inode.c !Efs/bad_inode.c

### Registration and Superblocks

!Efs/super.c

### File Locks

!Efs/locks.c !Ifs/locks.c

## Linux Networking

### Socket Buffer Functions

!Iinclude/linux/skbuff.h !Enet/core/skbuff.c

### Socket Filter

!Enet/core/filter.c

## Network device support

### Driver Support

!Edrivers/net/net_init.c !Enet/core/dev.c

### 8390 Based Network Cards

!Edrivers/net/8390.c

### Synchronous PPP

!Edrivers/net/wan/syncppp.c

## Module Loading

!Ekernel/kmod.c

## Hardware Interfaces

### Interrupt Handling

!Iarch/i386/kernel/irq.c

### MTRR Handling

!Earch/i386/kernel/mtrr.c

### PCI Support Library

!Edrivers/pci/pci.c

### MCA Architecture

#### MCA Device Functions

!Earch/i386/kernel/mca.c

#### MCA Bus DMA

!Iinclude/asm-i386/mca_dma.h

## The Device File System

!Efs/devfs/base.c

## Power Management

!Ekernel/pm.c

## Block Devices

!Edrivers/block/ll_rw_blk.c

## Miscellaneous Devices

!Edrivers/char/misc.c

## Video4Linux

!Edrivers/media/video/videodev.c

## Sound Devices

!Edrivers/sound/sound_core.c !Idrivers/sound/sound_firmware.c

## USB Devices

!Edrivers/usb/usb.c

## 16x50 UART Driver

!Edrivers/char/serial.c

## Z85230 Support Library

!Edrivers/net/wan/z85230.c