The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Глава 16. Полезные функции

Глава 16. Полезные функции

Предыдущая  Содержание  Следующая V*D*V

snd_printk() и друзья

ALSA обеспечивает версию функции printk(), печатающую подробную информацию. Если в конфигурации ядра установлен CONFIG_SND_VERBOSE_PRINTK, эта функция выводит заданное сообщение вместе с именем файла и строкой вызова. Также как в оригинальной printk() обрабатывается префикс KERN_XXX, поэтому рекомендуется добавлять этот префикс, например,

 

snd_printk(KERN_ERR "Oh my, sorry, it's extremely bad!\n");

 

Есть также варианты printk() для отладки. Для общих целей отладки может быть использована snd_printd(). Если  установлен CONFIG_SND_DEBUG, эта функция компилируется и работает как snd_printk(). Если ALSA собрана без флага отладки, она игнорируется.

 

snd_printdd() компилируется только тогда, когда установлен CONFIG_SND_DEBUG_VERBOSE. Обратите внимание, что CONFIG_SND_DEBUG_VERBOSE не установлен по умолчанию, даже если вы конфигурируете драйвер ALSA с опцией --with-debug=full. Вместо этого вы должны явно указать опцию --with-debug=detect.

snd_BUG()

Это показывает сообщение "BUG?" и трассировку стека, также как делает snd_BUG_ON. Он полезен, чтобы показать, что  здесь происходит фатальная ошибка.

 

Если флаг отладки не установлен, этот макрос игнорируется.

snd_BUG_ON()

Макрос snd_BUG_ON() аналогичен макросу WARN_ON(). Например,

 

snd_BUG_ON(!pointer);

 

или он может быть использован в качестве условия,

 

if (snd_BUG_ON(non_zero_is_bug))

    return -EINVAL;

 

Макрос принимает условное выражение для оценки. Когда установлен CONFIG_SND_DEBUG, выражение оценивается на самом деле. Если оно не равно нулю, он показывает предупреждающее сообщение, такое как BUG? (xxx), следующее обычно за трассировкой стека. Он возвращает оценённое значение. Если CONFIG_SND_DEBUG не установлен, этот макрос всегда возвращает ноль.

 

Предыдущая  Содержание  Следующая