- . -
... А деструктор?
- 1 -
1) Проверяем и увеличиваем индекс устройства
1. Создание с помощью snd_card_create()
- 2 -
2) Создаём экземпляр карты
2. Создание дополнительного устройства
- 3 -
3) Создаём основной компонент
- 4 -
4) Устанавливаем идентификатор драйвера и строки названий
- 5 -
5) Создаём другие компоненты, такие как микшер, MIDI, и так далее
- 6 -
6) Регистрируем экземпляр карты
- 7 -
7) Устанавливаем данные PCI драйвера и возвращаем ноль
- C -
core/ioctl32
core/oss
core/seq
core/seq/instr
core/seq/oss
- D -
drivers/mpu401
drivers/opl3 и opl4
- F -
FM OPL3
- I -
i2c/l3
IEC958 (S/PDIF)
- S -
snd_BUG()
snd_BUG_ON()
snd_printk() и друзья
- А -
Атомарность
- Б -
Буферы, выделенные с помощью vmalloc
Буферы, состоящие из несмежных участков
- В -
Внешние аппаратные буферы
Выделение ресурсов
- Г -
Глава 1. Структура файлового дерева
Каталог core
Каталог drivers
Каталог i2c
Каталог isa
Каталог oss
Каталог pci
Каталог pcmcia
Каталог usb
Каталоги arm, ppc и sparc
Общие сведения
Глава 10. Прочие устройства
FM OPL3
IEC958 (S/PDIF)
Устройства, зависящие от оборудования
Глава 11. Управление буфером и памятью
Буферы, выделенные с помощью vmalloc
Буферы, состоящие из несмежных участков
Внешние аппаратные буферы
Типы буферов
Глава 12. Интерфейс Proc
Глава 13. Управление питанием
Глава 14. Параметры модуля
Глава 15. Как поместить драйвер в дерево ALSA
Драйверы с исходниками в нескольких файлах
Драйверы с исходниками в одном файле
Общие сведения
Глава 16. Полезные функции
snd_BUG()
snd_BUG_ON()
snd_printk() и друзья
Глава 17. Благодарности
Глава 2. Основная технология для PCI драйверов
Деструктор
Заголовочные файлы
Конструктор
Краткое описание
Полный пример кода
Глава 3. Управление картами и компонентами
Данные, зависимые от используемого чипа
Компоненты
Регистрация и освобождение памяти
Экземпляр карты
Глава 4. Управление ресурсами PCI
Выделение ресурсов
Кое-что из того, что требуется сделать
Полный пример кода
Регистрация PCI
Регистрация структуры устройства
Глава 5. Интерфейс PCM
... А деструктор?
Атомарность
Конструктор
Обработчик прерывания
Общие сведения
Ограничения
Операции
Полный пример кода
Рабочий указатель - хранение информации PCM
Глава 6. Интерфейс Control
Имена элементов управления
Конструктор
Метаданные
Обратные вызовы
Общие сведения
Создание элементов управления
Уведомление об изменении
Флаги доступа
Глава 7. API для кодека AC97
Конструктор
Несколько кодеков
Обновление регистров в драйвере
Обратные вызовы
Общие сведения
Полный пример кода
Регулировка тактовой частоты
Файлы интерфейса Proc
Глава 8. Интерфейс MIDI (MPU401-UART)
Конструктор
Обработчик прерывания
Общие сведения
Глава 9. Интерфейс RawMIDI
Конструктор
Обзор
Обратные вызовы
- Д -
Данные, зависимые от используемого чипа
1. Создание с помощью snd_card_create()
2. Создание дополнительного устройства
Деструктор
Драйверы с исходниками в нескольких файлах
Драйверы с исходниками в одном файле
- З -
Заголовочные файлы
Закрытые данные
- И -
Имена элементов управления
Основной захват и воспроизведение
Увеличение усиления микрофона
Элементы управления 3D
Элементы управления тембром
Информация о буфере DMA
- К -
Как написать драйвер ALSA
Каталог core
core/ioctl32
core/oss
core/seq
core/seq/instr
core/seq/oss
Каталог drivers
drivers/mpu401
drivers/opl3 и opl4
Каталог i2c
i2c/l3
Каталог isa
Каталог oss
Каталог pci
Каталог pcmcia
Каталог usb
Каталоги arm, ppc и sparc
Кое-что из того, что требуется сделать
Компоненты
Конструктор
1) Проверяем и увеличиваем индекс устройства
2) Создаём экземпляр карты
3) Создаём основной компонент
4) Устанавливаем идентификатор драйвера и строки названий
5) Создаём другие компоненты, такие как микшер, MIDI, и так далее
6) Регистрируем экземпляр карты
7) Устанавливаем данные PCI драйвера и возвращаем ноль
Конфигурации PCM
Краткое описание
- М -
Метаданные
- Н -
Несколько кодеков
- О -
О вызове snd_pcm_period_elapsed()
Обзор
Обновление регистров в драйвере
Обработчик прерывания
О вызове snd_pcm_period_elapsed()
Прерывания на границе периода (фрагмента)
Прерывания по высокочастотному таймеру
Обратные вызовы
Обратные вызовы не атомарны
Обратный вызов close
Обратный вызов drain
Обратный вызов get
Обратный вызов info
Обратный вызов open
Обратный вызов put
Обратный вызов trigger для выходных субпотоков
Обратный вызов trigger для субпотоков ввода
Обратные вызовы copy и silence
Обратные вызовы не атомарны
Обратные вызовы прерывания
Обратный вызов ack
Обратный вызов close
Обратный вызов drain
Обратный вызов get
Обратный вызов hw_free
Обратный вызов hw_params
Обратный вызов info
Обратный вызов ioctl
Обратный вызов open
Обратный вызов page
Обратный вызов pointer
Обратный вызов prepare
Обратный вызов put
Обратный вызов trigger
Обратный вызов trigger для выходных субпотоков
Обратный вызов trigger для субпотоков ввода
Общие сведения
Ограничения
Операции
Обратные вызовы copy и silence
Обратный вызов ack
Обратный вызов close
Обратный вызов hw_free
Обратный вызов hw_params
Обратный вызов ioctl
Обратный вызов open
Обратный вызов page
Обратный вызов pointer
Обратный вызов prepare
Обратный вызов trigger
Основной захват и воспроизведение
- П -
Параметры оборудования
Полный пример кода
Предисловие
Прерывания на границе периода (фрагмента)
Прерывания по высокочастотному таймеру
- Р -
Рабочий указатель - хранение информации PCM
Закрытые данные
Информация о буфере DMA
Конфигурации PCM
Обратные вызовы прерывания
Параметры оборудования
Статус выполнения
Регистрация PCI
Регистрация и освобождение памяти
Регистрация структуры устройства
Регулировка тактовой частоты
- С -
Создание элементов управления
Статус выполнения
- Т -
Типы буферов
- У -
Уведомление об изменении
Увеличение усиления микрофона
Устройства, зависящие от оборудования
- Ф -
Файлы интерфейса Proc
Флаги доступа
- Э -
Экземпляр карты
Элементы управления 3D
Элементы управления тембром