# The ALSA Driver API

This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

## Management of Cards and Devices

### Card Management

!Esound/core/init.c

### Device Components

!Esound/core/device.c

### Module requests and Device File Entries

!Esound/core/sound.c

### Memory Management Helpers

!Esound/core/memory.c !Esound/core/memalloc.c

## PCM API

### PCM Core

!Esound/core/pcm.c !Esound/core/pcm_lib.c !Esound/core/pcm_native.c

### PCM Format Helpers

!Esound/core/pcm_misc.c

### PCM Memory Management

!Esound/core/pcm_memory.c

## Control/Mixer API

### General Control Interface

!Esound/core/control.c

### AC97 Codec API

!Esound/pci/ac97/ac97_codec.c !Esound/pci/ac97/ac97_pcm.c

### Virtual Master Control API

!Esound/core/vmaster.c !Iinclude/sound/control.h

## MIDI API

### Raw MIDI API

!Esound/core/rawmidi.c

### MPU401-UART API

!Esound/drivers/mpu401/mpu401_uart.c

## Proc Info API

### Proc Info Interface

!Esound/core/info.c

## Miscellaneous Functions

### Hardware-Dependent Devices API

!Esound/core/hwdep.c

### Jack Abstraction Layer API

!Esound/core/jack.c

### ISA DMA Helpers

!Esound/core/isadma.c

### Other Helper Macros

!Iinclude/sound/core.h