<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>Chapter 5. Sound Devices</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="index.html" title="Linux Device Drivers" /><link rel="prev" href="re552.html" title="i2o_proc_exit" /><link rel="next" href="re553.html" title="snd_register_device" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Sound Devices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re552.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="re553.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 5. Sound Devices"><div class="titlepage"><div><div><h2 class="title"><a id="snddev"></a>Chapter 5. Sound Devices</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="refentrytitle"><a href="re553.html"><span>snd_register_device</span></a></span><span class="refpurpose"> — Register the ALSA device file for the card </span></dt><dt><span class="refentrytitle"><a href="re554.html"><span>snd_printk</span></a></span><span class="refpurpose"> — printk wrapper </span></dt><dt><span class="refentrytitle"><a href="re555.html"><span>snd_printd</span></a></span><span class="refpurpose"> — debug printk </span></dt><dt><span class="refentrytitle"><a href="re556.html"><span>snd_BUG</span></a></span><span class="refpurpose"> — give a BUG warning message and stack trace </span></dt><dt><span class="refentrytitle"><a href="re557.html"><span>snd_BUG_ON</span></a></span><span class="refpurpose"> — debugging check macro </span></dt><dt><span class="refentrytitle"><a href="re558.html"><span>snd_printdd</span></a></span><span class="refpurpose"> — debug printk </span></dt><dt><span class="refentrytitle"><a href="re559.html"><span>register_sound_special_device</span></a></span><span class="refpurpose"> — register a special sound node </span></dt><dt><span class="refentrytitle"><a href="re560.html"><span>register_sound_mixer</span></a></span><span class="refpurpose"> — register a mixer device </span></dt><dt><span class="refentrytitle"><a href="re561.html"><span>register_sound_midi</span></a></span><span class="refpurpose"> — register a midi device </span></dt><dt><span class="refentrytitle"><a href="re562.html"><span>register_sound_dsp</span></a></span><span class="refpurpose"> — register a DSP device </span></dt><dt><span class="refentrytitle"><a href="re563.html"><span>unregister_sound_special</span></a></span><span class="refpurpose"> — unregister a special sound device </span></dt><dt><span class="refentrytitle"><a href="re564.html"><span>unregister_sound_mixer</span></a></span><span class="refpurpose"> — unregister a mixer </span></dt><dt><span class="refentrytitle"><a href="re565.html"><span>unregister_sound_midi</span></a></span><span class="refpurpose"> — unregister a midi device </span></dt><dt><span class="refentrytitle"><a href="re566.html"><span>unregister_sound_dsp</span></a></span><span class="refpurpose"> — unregister a DSP device </span></dt><dt><span class="refentrytitle"><a href="re567.html"><span>snd_pcm_playback_ready</span></a></span><span class="refpurpose"> — check whether the playback buffer is available </span></dt><dt><span class="refentrytitle"><a href="re568.html"><span>snd_pcm_capture_ready</span></a></span><span class="refpurpose"> — check whether the capture buffer is available </span></dt><dt><span class="refentrytitle"><a href="re569.html"><span>snd_pcm_playback_data</span></a></span><span class="refpurpose"> — check whether any data exists on the playback buffer </span></dt><dt><span class="refentrytitle"><a href="re570.html"><span>snd_pcm_playback_empty</span></a></span><span class="refpurpose"> — check whether the playback buffer is empty </span></dt><dt><span class="refentrytitle"><a href="re571.html"><span>snd_pcm_capture_empty</span></a></span><span class="refpurpose"> — check whether the capture buffer is empty </span></dt><dt><span class="refentrytitle"><a href="re572.html"><span>snd_pcm_format_cpu_endian</span></a></span><span class="refpurpose"> — Check the PCM format is CPU-endian </span></dt><dt><span class="refentrytitle"><a href="re573.html"><span>snd_pcm_new_stream</span></a></span><span class="refpurpose"> — create a new PCM stream </span></dt><dt><span class="refentrytitle"><a href="re574.html"><span>snd_pcm_new</span></a></span><span class="refpurpose"> — create a new PCM instance </span></dt><dt><span class="refentrytitle"><a href="re575.html"><span>snd_device_new</span></a></span><span class="refpurpose"> — create an ALSA device component </span></dt><dt><span class="refentrytitle"><a href="re576.html"><span>snd_device_free</span></a></span><span class="refpurpose"> — release the device from the card </span></dt><dt><span class="refentrytitle"><a href="re577.html"><span>snd_device_register</span></a></span><span class="refpurpose"> — register the device </span></dt><dt><span class="refentrytitle"><a href="re578.html"><span>snd_iprintf</span></a></span><span class="refpurpose"> — printf on the procfs buffer </span></dt><dt><span class="refentrytitle"><a href="re579.html"><span>snd_info_get_line</span></a></span><span class="refpurpose"> — read one line from the procfs buffer </span></dt><dt><span class="refentrytitle"><a href="re580.html"><span>snd_info_get_str</span></a></span><span class="refpurpose"> — parse a string token </span></dt><dt><span class="refentrytitle"><a href="re581.html"><span>snd_info_create_module_entry</span></a></span><span class="refpurpose"> — create an info entry for the given module </span></dt><dt><span class="refentrytitle"><a href="re582.html"><span>snd_info_create_card_entry</span></a></span><span class="refpurpose"> — create an info entry for the given card </span></dt><dt><span class="refentrytitle"><a href="re583.html"><span>snd_card_proc_new</span></a></span><span class="refpurpose"> — create an info entry for the given card </span></dt><dt><span class="refentrytitle"><a href="re584.html"><span>snd_info_free_entry</span></a></span><span class="refpurpose"> — release the info entry </span></dt><dt><span class="refentrytitle"><a href="re585.html"><span>snd_info_register</span></a></span><span class="refpurpose"> — register the info entry </span></dt><dt><span class="refentrytitle"><a href="re586.html"><span>snd_rawmidi_receive</span></a></span><span class="refpurpose"> — receive the input data from the device </span></dt><dt><span class="refentrytitle"><a href="re587.html"><span>snd_rawmidi_transmit_empty</span></a></span><span class="refpurpose"> — check whether the output buffer is empty </span></dt><dt><span class="refentrytitle"><a href="re588.html"><span>snd_rawmidi_transmit_peek</span></a></span><span class="refpurpose"> — copy data from the internal buffer </span></dt><dt><span class="refentrytitle"><a href="re589.html"><span>snd_rawmidi_transmit_ack</span></a></span><span class="refpurpose"> — acknowledge the transmission </span></dt><dt><span class="refentrytitle"><a href="re590.html"><span>snd_rawmidi_transmit</span></a></span><span class="refpurpose"> — copy from the buffer to the device </span></dt><dt><span class="refentrytitle"><a href="re591.html"><span>snd_rawmidi_new</span></a></span><span class="refpurpose"> — create a rawmidi instance </span></dt><dt><span class="refentrytitle"><a href="re592.html"><span>snd_rawmidi_set_ops</span></a></span><span class="refpurpose"> — set the rawmidi operators </span></dt><dt><span class="refentrytitle"><a href="re593.html"><span>snd_request_card</span></a></span><span class="refpurpose"> — try to load the card module </span></dt><dt><span class="refentrytitle"><a href="re594.html"><span>snd_lookup_minor_data</span></a></span><span class="refpurpose"> — get user data of a registered device </span></dt><dt><span class="refentrytitle"><a href="re595.html"><span>snd_register_device_for_dev</span></a></span><span class="refpurpose"> — Register the ALSA device file for the card </span></dt><dt><span class="refentrytitle"><a href="re596.html"><span>snd_unregister_device</span></a></span><span class="refpurpose"> — unregister the device on the given card </span></dt><dt><span class="refentrytitle"><a href="re597.html"><span>copy_to_user_fromio</span></a></span><span class="refpurpose"> — copy data from mmio-space to user-space </span></dt><dt><span class="refentrytitle"><a href="re598.html"><span>copy_from_user_toio</span></a></span><span class="refpurpose"> — copy data from user-space to mmio-space </span></dt><dt><span class="refentrytitle"><a href="re599.html"><span>snd_pcm_lib_preallocate_free_for_all</span></a></span><span class="refpurpose"> — release all pre-allocated buffers on the pcm </span></dt><dt><span class="refentrytitle"><a href="re600.html"><span>snd_pcm_lib_preallocate_pages</span></a></span><span class="refpurpose"> — pre-allocation for the given DMA type </span></dt><dt><span class="refentrytitle"><a href="re601.html"><span>snd_pcm_lib_preallocate_pages_for_all</span></a></span><span class="refpurpose"> — pre-allocation for continous memory type (all substreams) </span></dt><dt><span class="refentrytitle"><a href="re602.html"><span>snd_pcm_sgbuf_ops_page</span></a></span><span class="refpurpose"> — get the page struct at the given offset </span></dt><dt><span class="refentrytitle"><a href="re603.html"><span>snd_pcm_lib_malloc_pages</span></a></span><span class="refpurpose"> — allocate the DMA buffer </span></dt><dt><span class="refentrytitle"><a href="re604.html"><span>snd_pcm_lib_free_pages</span></a></span><span class="refpurpose"> — release the allocated DMA buffer. </span></dt><dt><span class="refentrytitle"><a href="re605.html"><span>snd_card_create</span></a></span><span class="refpurpose"> — create and initialize a soundcard structure </span></dt><dt><span class="refentrytitle"><a href="re606.html"><span>snd_card_disconnect</span></a></span><span class="refpurpose"> — disconnect all APIs from the file-operations (user space) </span></dt><dt><span class="refentrytitle"><a href="re607.html"><span>snd_card_set_id</span></a></span><span class="refpurpose"> — set card identification name </span></dt><dt><span class="refentrytitle"><a href="re608.html"><span>snd_card_register</span></a></span><span class="refpurpose"> — register the soundcard </span></dt><dt><span class="refentrytitle"><a href="re609.html"><span>snd_component_add</span></a></span><span class="refpurpose"> — add a component string </span></dt><dt><span class="refentrytitle"><a href="re610.html"><span>snd_card_file_add</span></a></span><span class="refpurpose"> — add the file to the file list of the card </span></dt><dt><span class="refentrytitle"><a href="re611.html"><span>snd_card_file_remove</span></a></span><span class="refpurpose"> — remove the file from the file list </span></dt><dt><span class="refentrytitle"><a href="re612.html"><span>snd_power_wait</span></a></span><span class="refpurpose"> — wait until the power-state is changed. </span></dt><dt><span class="refentrytitle"><a href="re613.html"><span>snd_dma_program</span></a></span><span class="refpurpose"> — program an ISA DMA transfer </span></dt><dt><span class="refentrytitle"><a href="re614.html"><span>snd_dma_disable</span></a></span><span class="refpurpose"> — stop the ISA DMA transfer </span></dt><dt><span class="refentrytitle"><a href="re615.html"><span>snd_dma_pointer</span></a></span><span class="refpurpose"> — return the current pointer to DMA transfer buffer in bytes </span></dt><dt><span class="refentrytitle"><a href="re616.html"><span>snd_ctl_new1</span></a></span><span class="refpurpose"> — create a control instance from the template </span></dt><dt><span class="refentrytitle"><a href="re617.html"><span>snd_ctl_free_one</span></a></span><span class="refpurpose"> — release the control instance </span></dt><dt><span class="refentrytitle"><a href="re618.html"><span>snd_ctl_add</span></a></span><span class="refpurpose"> — add the control instance to the card </span></dt><dt><span class="refentrytitle"><a href="re619.html"><span>snd_ctl_remove</span></a></span><span class="refpurpose"> — remove the control from the card and release it </span></dt><dt><span class="refentrytitle"><a href="re620.html"><span>snd_ctl_remove_id</span></a></span><span class="refpurpose"> — remove the control of the given id and release it </span></dt><dt><span class="refentrytitle"><a href="re621.html"><span>snd_ctl_rename_id</span></a></span><span class="refpurpose"> — replace the id of a control on the card </span></dt><dt><span class="refentrytitle"><a href="re622.html"><span>snd_ctl_find_numid</span></a></span><span class="refpurpose"> — find the control instance with the given number-id </span></dt><dt><span class="refentrytitle"><a href="re623.html"><span>snd_ctl_find_id</span></a></span><span class="refpurpose"> — find the control instance with the given id </span></dt><dt><span class="refentrytitle"><a href="re624.html"><span>snd_pcm_set_ops</span></a></span><span class="refpurpose"> — set the PCM operators </span></dt><dt><span class="refentrytitle"><a href="re625.html"><span>snd_pcm_set_sync</span></a></span><span class="refpurpose"> — set the PCM sync id </span></dt><dt><span class="refentrytitle"><a href="re626.html"><span>snd_interval_refine</span></a></span><span class="refpurpose"> — refine the interval value of configurator </span></dt><dt><span class="refentrytitle"><a href="re627.html"><span>snd_interval_ratnum</span></a></span><span class="refpurpose"> — refine the interval value </span></dt><dt><span class="refentrytitle"><a href="re628.html"><span>snd_interval_list</span></a></span><span class="refpurpose"> — refine the interval value from the list </span></dt><dt><span class="refentrytitle"><a href="re629.html"><span>snd_pcm_hw_rule_add</span></a></span><span class="refpurpose"> — add the hw-constraint rule </span></dt><dt><span class="refentrytitle"><a href="re630.html"><span>snd_pcm_hw_constraint_integer</span></a></span><span class="refpurpose"> — apply an integer constraint to an interval </span></dt><dt><span class="refentrytitle"><a href="re631.html"><span>snd_pcm_hw_constraint_minmax</span></a></span><span class="refpurpose"> — apply a min/max range constraint to an interval </span></dt><dt><span class="refentrytitle"><a href="re632.html"><span>snd_pcm_hw_constraint_list</span></a></span><span class="refpurpose"> — apply a list of constraints to a parameter </span></dt><dt><span class="refentrytitle"><a href="re633.html"><span>snd_pcm_hw_constraint_ratnums</span></a></span><span class="refpurpose"> — apply ratnums constraint to a parameter </span></dt><dt><span class="refentrytitle"><a href="re634.html"><span>snd_pcm_hw_constraint_ratdens</span></a></span><span class="refpurpose"> — apply ratdens constraint to a parameter </span></dt><dt><span class="refentrytitle"><a href="re635.html"><span>snd_pcm_hw_constraint_msbits</span></a></span><span class="refpurpose"> — add a hw constraint msbits rule </span></dt><dt><span class="refentrytitle"><a href="re636.html"><span>snd_pcm_hw_constraint_step</span></a></span><span class="refpurpose"> — add a hw constraint step rule </span></dt><dt><span class="refentrytitle"><a href="re637.html"><span>snd_pcm_hw_constraint_pow2</span></a></span><span class="refpurpose"> — add a hw constraint power-of-2 rule </span></dt><dt><span class="refentrytitle"><a href="re638.html"><span>snd_pcm_hw_param_value</span></a></span><span class="refpurpose"> — return <em class="parameter"><code>params</code></em> field <em class="parameter"><code>var</code></em> value </span></dt><dt><span class="refentrytitle"><a href="re639.html"><span>snd_pcm_hw_param_first</span></a></span><span class="refpurpose"> — refine config space and return minimum value </span></dt><dt><span class="refentrytitle"><a href="re640.html"><span>snd_pcm_hw_param_last</span></a></span><span class="refpurpose"> — refine config space and return maximum value </span></dt><dt><span class="refentrytitle"><a href="re641.html"><span>snd_pcm_lib_ioctl</span></a></span><span class="refpurpose"> — a generic PCM ioctl callback </span></dt><dt><span class="refentrytitle"><a href="re642.html"><span>snd_pcm_period_elapsed</span></a></span><span class="refpurpose"> — update the pcm status for the next period </span></dt><dt><span class="refentrytitle"><a href="re643.html"><span>snd_hwdep_new</span></a></span><span class="refpurpose"> — create a new hwdep instance </span></dt><dt><span class="refentrytitle"><a href="re644.html"><span>snd_pcm_stop</span></a></span><span class="refpurpose"> — try to stop all running streams in the substream group </span></dt><dt><span class="refentrytitle"><a href="re645.html"><span>snd_pcm_suspend</span></a></span><span class="refpurpose"> — trigger SUSPEND to all linked streams </span></dt><dt><span class="refentrytitle"><a href="re646.html"><span>snd_pcm_suspend_all</span></a></span><span class="refpurpose"> — trigger SUSPEND to all substreams in the given pcm </span></dt><dt><span class="refentrytitle"><a href="re647.html"><span>snd_malloc_pages</span></a></span><span class="refpurpose"> — allocate pages with the given size </span></dt><dt><span class="refentrytitle"><a href="re648.html"><span>snd_free_pages</span></a></span><span class="refpurpose"> — release the pages </span></dt><dt><span class="refentrytitle"><a href="re649.html"><span>snd_dma_alloc_pages</span></a></span><span class="refpurpose"> — allocate the buffer area according to the given type </span></dt><dt><span class="refentrytitle"><a href="re650.html"><span>snd_dma_alloc_pages_fallback</span></a></span><span class="refpurpose"> — allocate the buffer area according to the given type with fallback </span></dt><dt><span class="refentrytitle"><a href="re651.html"><span>snd_dma_free_pages</span></a></span><span class="refpurpose"> — release the allocated buffer </span></dt><dt><span class="refentrytitle"><a href="re652.html"><span>snd_dma_get_reserved_buf</span></a></span><span class="refpurpose"> — get the reserved buffer for the given device </span></dt><dt><span class="refentrytitle"><a href="re653.html"><span>snd_dma_reserve_buf</span></a></span><span class="refpurpose"> — reserve the buffer </span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re552.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="re553.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>i2o_proc_exit</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>snd_register_device</span></td></tr></table></div></body></html>