linux/sound/core/pcm_compat.c
<<
v3.15/spa"v3 .15/formv3 .15a v3.1 href="../linux+v3.7.7/sound/core/pcm_compat.c"> v3.15img src="../.static/gfx/right.png" alt=">>"> 5/spa"v3 5spa" class="lxr_search"> v3 v3.15input typ.14hidden" nam.14navtarget" v3.14"> v3.15input typ.14text" nam.14search" id14search"> v3.15butt > typ.14submit">Searchv3 .15/formv3 5/spa"v3 5spa" class="lxr_prefs"v3 .15a href="+prefs?return=sound/core/pcm_compat.c" v3.1 onclick="return ajax_prefs();"> v3.1Prefs3 .15/a> 5/spa"v3v3.1 15/divv3v3.1 15form acue="="ajax+*" method="post" onsubmit="return false;"> 5input typ.14hidden" nam.14ajax_lookup" id14ajax_lookup" v3.14"> v3.1 15/formv3 v3.1 15div class="headingbott m">3 5div id14file_contents"v
1 115/a>5spa" class="comment">/*5/spa"v31 125/a>5spa" class="comment"> *1 132bit -> 64bit ioctl wrapper for PCM API5/spa"v31 135/a>5spa" class="comment"> *1 1Copyright (c) by Takashi Iwai <tiwai@suse.de>5/spa"v31 145/a>5spa" class="comment"> *5/spa"v31 155/a>5spa" class="comment"> *1 1This program is free software; you ca" redistribute it and/or modify5/spa"v31 165/a>5spa" class="comment"> *1 1it under the terms of the GNU General Public License as published by5/spa"v31 175/a>5spa" class="comment"> *1 1the Free Software Foundaue="; either vers  >
2 of the License, or5/spa"v31 185/a>5spa" class="comment"> *1 1(at your alue=") any later vers  >.5/spa"v31 195/a>5spa" class="comment"> *5/spa"v31 
  5spa" class="comment"> *1 1This program is distributed in the hope that it will be useful,5/spa"v31 115/a>5spa" class="comment"> *1 1but WITHOUT ANY WARRANTY; without even the implied warranty of5/spa"v31 125/a>5spa" class="comment"> *1 1MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the5/spa"v31 135/a>5spa" class="comment"> *1 1GNU General Public License for more details.5/spa"v31 145/a>5spa" class="comment"> *5/spa"v31 155/a>5spa" class="comment"> *1 1You should have received a copy of the GNU General Public License5/spa"v31 165/a>5spa" class="comment"> *1 1along with this program; if not, write to1the Free Software5/spa"v31 175/a>5spa" class="comment"> *1 1Foundaue=", Inc., 59 Temple Place, Suite 330, Bost=", MA  02111-1307 USA5/spa"v31 185/a>5spa" class="comment"> *5/spa"v31 195/a>5spa" class="comment"> */5/spa"v31 2  31 215/a>5spa" class="comment">/*1This file included from pcm_naueve.c */5/spa"v31 22 31 235/a>#include <linux/compat.h5/a>>31 245/a>#include <linux/slab.h5/a>>31 25 31 265/a>static int15a href="+code=snd_pcm_ioctl_delay_compat" class="sref">snd_pcm_ioctl_delay_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,31 275/a>                                      5a href="+code=s32" class="sref">s32  5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)31 285/a>{31 295/a>        5a href="+code=snd_pcm_sframes_t" class="sref">snd_pcm_sframes_t  5a href="+code=delay" class="sref">delay ;31 305/a>        5a href="+code=mm_segment_t" class="sref">mm_segment_t  5a href="+code=fs" class="sref">fs ;31 315/a>        int15a href="+code=err" class="sref">err ;31 32 31 335/a>        5a href="+code=fs" class="sref">fs  = 5a href="+code=snd_enter_user" class="sref">snd_enter_user5/a>();31 345/a>        5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_delay" class="sref">snd_pcm_delay5/a>(5a href="+code=substream" class="sref">substream5/a>, &5a href="+code=delay" class="sref">delay );31 355/a>        5a href="+code=snd_leave_user" class="sref">snd_leave_user5/a>(5a href="+code=fs" class="sref">fs );31 365/a>        if (5a href="+code=err" class="sref">err  < 0)31 375/a>                return 5a href="+code=err" class="sref">err ;31 385/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=delay" class="sref">delay , 5a href="+code=src" class="sref">src5/a>))31 395/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31 405/a>        return 5a href="+code=err" class="sref">err ;31 415/a>}31 42 31 435/a>static int15a href="+code=snd_pcm_ioctl_rewind_compat" class="sref">snd_pcm_ioctl_rewind_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,31 445/a>                                       5a href="+code=u32" class="sref">u32  5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)31 455/a>{31 465/a>        5a href="+code=snd_pcm_uframes_t" class="sref">snd_pcm_uframes_t  5a href="+code=frames" class="sref">frames ;31 475/a>        int15a href="+code=err" class="sref">err ;31 48 31 495/a>        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=frames" class="sref">frames , 5a href="+code=src" class="sref">src5/a>))31 505/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31 515/a>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stream" class="sref">stream5/a> == 5a href="+code=SNDRV_PCM_STREAM_PLAYBACK" class="sref">SNDRV_PCM_STREAM_PLAYBACK5/a>)31 525/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_playback_rewind" class="sref">snd_pcm_playback_rewind5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=frames" class="sref">frames );31 535/a>        else31 545/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_capture_rewind" class="sref">snd_pcm_capture_rewind5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=frames" class="sref">frames );31 555/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=err" class="sref">err , 5a href="+code=src" class="sref">src5/a>))31 565/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31 575/a>        return 5a href="+code=err" class="sref">err  < 0 ? 5a href="+code=err" class="sref">err  : 0;31 585/a>}31 59 31 605/a>static int15a href="+code=snd_pcm_ioctl_forward_compat" class="sref">snd_pcm_ioctl_forward_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,31 615/a>                                       5a href="+code=u32" class="sref">u32  5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)31 625/a>{31 635/a>        5a href="+code=snd_pcm_uframes_t" class="sref">snd_pcm_uframes_t  5a href="+code=frames" class="sref">frames ;31 645/a>        int15a href="+code=err" class="sref">err ;31 65 31 665/a>        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=frames" class="sref">frames , 5a href="+code=src" class="sref">src5/a>))31 675/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31 685/a>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stream" class="sref">stream5/a> == 5a href="+code=SNDRV_PCM_STREAM_PLAYBACK" class="sref">SNDRV_PCM_STREAM_PLAYBACK5/a>)31 695/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_playback_forward" class="sref">snd_pcm_playback_forward5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=frames" class="sref">frames );31 705/a>        else31 715/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_capture_forward" class="sref">snd_pcm_capture_forward5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=frames" class="sref">frames );31 725/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=err" class="sref">err , 5a href="+code=src" class="sref">src5/a>))31 735/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31 745/a>        return 5a href="+code=err" class="sref">err  < 0 ? 5a href="+code=err" class="sref">err  : 0;31 755/a>}31 76 31 775/a>struct15a href="+code=snd_pcm_hw_params32" class="sref">snd_pcm_hw_params32  {31 785/a>        5a href="+code=u32" class="sref">u32  5a href="+code=flags" class="sref">flags ;31 795/a>        struct15a href="+code=snd_mask" class="sref">snd_mask  5a href="+code=masks" class="sref">masks [5a href="+code=SNDRV_PCM_HW_PARAM_LAST_MASK" class="sref">SNDRV_PCM_HW_PARAM_LAST_MASK  - 5a href="+code=SNDRV_PCM_HW_PARAM_FIRST_MASK" class="sref">SNDRV_PCM_HW_PARAM_FIRST_MASK  + 1]; 5spa" class="comment">/*1this must be identical */5/spa"v31 805/a>        struct15a href="+code=snd_mask" class="sref">snd_mask  5a href="+code=mres" class="sref">mres [5];        5spa" class="comment">/*1reserved masks */5/spa"v31 815/a>        struct15a href="+code=snd_interval" class="sref">snd_interval  5a href="+code=intervals" class="sref">intervals [5a href="+code=SNDRV_PCM_HW_PARAM_LAST_INTERVAL" class="sref">SNDRV_PCM_HW_PARAM_LAST_INTERVAL  - 5a href="+code=SNDRV_PCM_HW_PARAM_FIRST_INTERVAL" class="sref">SNDRV_PCM_HW_PARAM_FIRST_INTERVAL  + 1];31 825/a>        struct15a href="+code=snd_interval" class="sref">snd_interval  5a href="+code=ires" class="sref">ires [9];    5spa" class="comment">/*1reserved intervals */5/spa"v31 835/a>        5a href="+code=u32" class="sref">u32  5a href="+code=rmask" class="sref">rmask ;31 845/a>        5a href="+code=u32" class="sref">u32  5a href="+code=cmask" class="sref">cmask ;31 855/a>        5a href="+code=u32" class="sref">u32  5a href="+code=info" class="sref">info ;31 865/a>        5a href="+code=u32" class="sref">u32  5a href="+code=msbits" class="sref">msbits ;31 875/a>        5a href="+code=u32" class="sref">u32  5a href="+code=rate_num" class="sref">rate_num ;31 885/a>        5a href="+code=u32" class="sref">u32  5a href="+code=rate_den" class="sref">rate_den ;31 895/a>        5a href="+code=u32" class="sref">u32  5a href="+code=fifo_size" class="sref">fifo_size ;31 905/a>        unsigned char 5a href="+code=reserved" class="sref">reserved [64];31 915/a>};31 92 31 935/a>struct15a href="+code=snd_pcm_sw_params32" class="sref">snd_pcm_sw_params32  {31 945/a>        5a href="+code=s32" class="sref">s32  5a href="+code=tstamp_mode" class="sref">tstamp_mode ;31 955/a>        5a href="+code=u32" class="sref">u32  5a href="+code=period_step" class="sref">period_step ;31 965/a>        5a href="+code=u32" class="sref">u32  5a href="+code=sleep_min" class="sref">sleep_min ;31 975/a>        5a href="+code=u32" class="sref">u32  5a href="+code=avail_min" class="sref">avail_min ;31 985/a>        5a href="+code=u32" class="sref">u32  5a href="+code=xfer_align" class="sref">xfer_align ;31 995/a>        5a href="+code=u32" class="sref">u32  5a href="+code=start_threshold" class="sref">start_threshold ;311005/a>        5a href="+code=u32" class="sref">u32  5a href="+code=stop_threshold" class="sref">stop_threshold ;311015/a>        5a href="+code=u32" class="sref">u32  5a href="+code=silence_threshold" class="sref">silence_threshold ;311025/a>        5a href="+code=u32" class="sref">u32  5a href="+code=silence_size" class="sref">silence_size ;311035/a>        5a href="+code=u32" class="sref">u32  5a href="+code=boundary" class="sref">boundary ;311045/a>        unsigned char 5a href="+code=reserved" class="sref">reserved [64];311055/a>};31106 311075/a>5spa" class="comment">/*1recalcuate the boundary within132bit */5/spa"v311085/a>static 5a href="+code=snd_pcm_uframes_t" class="sref">snd_pcm_uframes_t  5a href="+code=recalculate_boundary" class="sref">recalculate_boundary5/a>(struct15a href="+code=snd_pcm_runtime" class="sref">snd_pcm_runtime5/a> *5a href="+code=runtime" class="sref">runtime5/a>)311095/a>{311105/a>        5a href="+code=snd_pcm_uframes_t" class="sref">snd_pcm_uframes_t  5a href="+code=boundary" class="sref">boundary ;311115/a>311125/a>        if (! 5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=buffer_size" class="sref">buffer_size5/a>)311135/a>                return 0;311145/a>        5a href="+code=boundary" class="sref">boundary  = 5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=buffer_size" class="sref">buffer_size5/a>;311155/a>        while (5a href="+code=boundary" class="sref">boundary  * 2 <= 0x7fffffffUL - 5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=buffer_size" class="sref">buffer_size5/a>)311165/a>                5a href="+code=boundary" class="sref">boundary  *= 2;311175/a>        return 5a href="+code=boundary" class="sref">boundary ;311185/a>}31119 311205/a>static int15a href="+code=snd_pcm_ioctl_sw_params_compat" class="sref">snd_pcm_ioctl_sw_params_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,311215/a>                                          struct15a href="+code=snd_pcm_sw_params32" class="sref">snd_pcm_sw_params32  5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)311225/a>{311235/a>        struct15a href="+code=snd_pcm_sw_params" class="sref">snd_pcm_sw_params  5a href="+code=params" class="sref">params ;311245/a>        5a href="+code=snd_pcm_uframes_t" class="sref">snd_pcm_uframes_t  5a href="+code=boundary" class="sref">boundary ;311255/a>        int15a href="+code=err" class="sref">err ;31126 311275/a>        5a href="+code=memset" class="sref">memset5/a>(&5a href="+code=params" class="sref">params , 0, sizeof(5a href="+code=params" class="sref">params ));311285/a>        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=tstamp_mode" class="sref">tstamp_mode , &5a href="+code=src" class="sref">src5/a>->5a href="+code=tstamp_mode" class="sref">tstamp_mode ) ||311295/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=period_step" class="sref">period_step , &5a href="+code=src" class="sref">src5/a>->5a href="+code=period_step" class="sref">period_step ) ||311305/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=sleep_min" class="sref">sleep_min , &5a href="+code=src" class="sref">src5/a>->5a href="+code=sleep_min" class="sref">sleep_min ) ||311315/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=avail_min" class="sref">avail_min , &5a href="+code=src" class="sref">src5/a>->5a href="+code=avail_min" class="sref">avail_min ) ||311325/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=xfer_align" class="sref">xfer_align , &5a href="+code=src" class="sref">src5/a>->5a href="+code=xfer_align" class="sref">xfer_align ) ||311335/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=start_threshold" class="sref">start_threshold , &5a href="+code=src" class="sref">src5/a>->5a href="+code=start_threshold" class="sref">start_threshold ) ||311345/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=stop_threshold" class="sref">stop_threshold , &5a href="+code=src" class="sref">src5/a>->5a href="+code=stop_threshold" class="sref">stop_threshold ) ||311355/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=silence_threshold" class="sref">silence_threshold , &5a href="+code=src" class="sref">src5/a>->5a href="+code=silence_threshold" class="sref">silence_threshold ) ||311365/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=params" class="sref">params .5a href="+code=silence_size" class="sref">silence_size , &5a href="+code=src" class="sref">src5/a>->5a href="+code=silence_size" class="sref">silence_size ))311375/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;311385/a>        5spa" class="comment">/*5/spa"v311395/a>5spa" class="comment">         * Check silent_size parameter.  Since we have 64bit boundary,5/spa"v3114  5spa" class="comment">         * silence_size must be compared with the132bit boundary.5/spa"v311415/a>5spa" class="comment">         */5/spa"v311425/a>        5a href="+code=boundary" class="sref">boundary  = 5a href="+code=recalculate_boundary" class="sref">recalculate_boundary5/a>(5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>);311435/a>        if (5a href="+code=boundary" class="sref">boundary  && 5a href="+code=params" class="sref">params .5a href="+code=silence_size" class="sref">silence_size  >= 5a href="+code=boundary" class="sref">boundary )311445/a>                5a href="+code=params" class="sref">params .5a href="+code=silence_size" class="sref">silence_size  = 5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=boundary" class="sref">boundary ;311455/a>        5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_sw_params" class="sref">snd_pcm_sw_params (5a href="+code=substream" class="sref">substream5/a>, &5a href="+code=params" class="sref">params );311465/a>        if (5a href="+code=err" class="sref">err  < 0)311475/a>                return 5a href="+code=err" class="sref">err ;311485/a>        if (5a href="+code=boundary" class="sref">boundary  && 5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=boundary" class="sref">boundary , &5a href="+code=src" class="sref">src5/a>->5a href="+code=boundary" class="sref">boundary ))311495/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;311505/a>        return 5a href="+code=err" class="sref">err ;311515/a>}31152 311535/a>struct15a href="+code=snd_pcm_channel_info32" class="sref">snd_pcm_channel_info325/a> {311545/a>        5a href="+code=u32" class="sref">u32  5a href="+code=channel" class="sref">channel ;311555/a>        5a href="+code=u32" class="sref">u32  5a href="+code=offset" class="sref">offset ;311565/a>        5a href="+code=u32" class="sref">u32  5a href="+code=first" class="sref">first ;311575/a>        5a href="+code=u32" class="sref">u32  5a href="+code=step" class="sref">step ;311585/a>};31159 311605/a>static int15a href="+code=snd_pcm_ioctl_channel_info_compat" class="sref">snd_pcm_ioctl_channel_info_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,311615/a>                                             struct15a href="+code=snd_pcm_channel_info32" class="sref">snd_pcm_channel_info325/a> 5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)311625/a>{311635/a>        struct15a href="+code=snd_pcm_channel_info" class="sref">snd_pcm_channel_info5/a> 5a href="+code=info" class="sref">info ;311645/a>        int15a href="+code=err" class="sref">err ;31165 311665/a>        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=channel" class="sref">channel , &5a href="+code=src" class="sref">src5/a>->5a href="+code=channel" class="sref">channel ) ||311675/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=offset" class="sref">offset , &5a href="+code=src" class="sref">src5/a>->5a href="+code=offset" class="sref">offset ) ||311685/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=first" class="sref">first , &5a href="+code=src" class="sref">src5/a>->5a href="+code=first" class="sref">first ) ||311695/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=step" class="sref">step , &5a href="+code=src" class="sref">src5/a>->5a href="+code=step" class="sref">step ))311705/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;311715/a>        5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_channel_info" class="sref">snd_pcm_channel_info5/a>(5a href="+code=substream" class="sref">substream5/a>, &5a href="+code=info" class="sref">info );311725/a>        if (5a href="+code=err" class="sref">err  < 0)311735/a>                return 5a href="+code=err" class="sref">err ;311745/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=channel" class="sref">channel , &5a href="+code=src" class="sref">src5/a>->5a href="+code=channel" class="sref">channel ) ||311755/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=offset" class="sref">offset , &5a href="+code=src" class="sref">src5/a>->5a href="+code=offset" class="sref">offset ) ||311765/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=first" class="sref">first , &5a href="+code=src" class="sref">src5/a>->5a href="+code=first" class="sref">first ) ||311775/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=info" class="sref">info .5a href="+code=step" class="sref">step , &5a href="+code=src" class="sref">src5/a>->5a href="+code=step" class="sref">step ))311785/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;311795/a>        return 5a href="+code=err" class="sref">err ;311805/a>}311815/a>311825/a>struct15a href="+code=snd_pcm_status32" class="sref">snd_pcm_status325/a> {311835/a>        5a href="+code=s32" class="sref">s32  5a href="+code=state" class="sref">state ;311845/a>        struct15a href="+code=compat_timespec" class="sref">compat_timespec  5a href="+code=trigger_tstamp" class="sref">trigger_tstamp ;311855/a>        struct15a href="+code=compat_timespec" class="sref">compat_timespec  5a href="+code=tstamp" class="sref">tstamp ;311865/a>        5a href="+code=u32" class="sref">u32  5a href="+code=appl_ptr" class="sref">appl_ptr ;311875/a>        5a href="+code=u32" class="sref">u32  5a href="+code=hw_ptr" class="sref">hw_ptr ;311885/a>        5a href="+code=s32" class="sref">s32  5a href="+code=delay" class="sref">delay ;311895/a>        5a href="+code=u32" class="sref">u32  5a href="+code=avail" class="sref">avail ;311905/a>        5a href="+code=u32" class="sref">u32  5a href="+code=avail_max" class="sref">avail_max ;311915/a>        5a href="+code=u32" class="sref">u32  5a href="+code=overrange" class="sref">overrange ;311925/a>        5a href="+code=s32" class="sref">s32  5a href="+code=suspended_state" class="sref">suspended_state ;311935/a>        unsigned char 5a href="+code=reserved" class="sref">reserved [60];311945/a>} 5a href="+code=__attribute__" class="sref">__attribute__5/a>((5a href="+code=packed" class="sref">packed ));31195 31196 311975/a>static int15a href="+code=snd_pcm_status_user_compat" class="sref">snd_pcm_status_user_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,311985/a>                                      struct15a href="+code=snd_pcm_status32" class="sref">snd_pcm_status325/a> 5a href="+code=__user" class="sref">__user5/a> *5a href="+code=src" class="sref">src5/a>)311995/a>{312005/a>        struct15a href="+code=snd_pcm_status" class="sref">snd_pcm_status  5a href="+code=status" class="sref">status ;312015/a>        int15a href="+code=err" class="sref">err ;31202 312035/a>        5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_status" class="sref">snd_pcm_status (5a href="+code=substream" class="sref">substream5/a>, &5a href="+code=status" class="sref">status );312045/a>        if (5a href="+code=err" class="sref">err  < 0)312055/a>                return 5a href="+code=err" class="sref">err ;31206 312075/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=state" class="sref">state , &5a href="+code=src" class="sref">src5/a>->5a href="+code=state" class="sref">state ) ||312085/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=trigger_tstamp" class="sref">trigger_tstamp .5a href="+code=tv_sec" class="sref">tv_sec , &5a href="+code=src" class="sref">src5/a>->5a href="+code=trigger_tstamp" class="sref">trigger_tstamp .5a href="+code=tv_sec" class="sref">tv_sec ) ||312095/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=trigger_tstamp" class="sref">trigger_tstamp .5a href="+code=tv_nsec" class="sref">tv_nsec , &5a href="+code=src" class="sref">src5/a>->5a href="+code=trigger_tstamp" class="sref">trigger_tstamp .5a href="+code=tv_nsec" class="sref">tv_nsec ) ||312105/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=tstamp" class="sref">tstamp .5a href="+code=tv_sec" class="sref">tv_sec , &5a href="+code=src" class="sref">src5/a>->5a href="+code=tstamp" class="sref">tstamp .5a href="+code=tv_sec" class="sref">tv_sec ) ||312115/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=tstamp" class="sref">tstamp .5a href="+code=tv_nsec" class="sref">tv_nsec , &5a href="+code=src" class="sref">src5/a>->5a href="+code=tstamp" class="sref">tstamp .5a href="+code=tv_nsec" class="sref">tv_nsec ) ||312125/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=appl_ptr" class="sref">appl_ptr , &5a href="+code=src" class="sref">src5/a>->5a href="+code=appl_ptr" class="sref">appl_ptr ) ||312135/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=hw_ptr" class="sref">hw_ptr , &5a href="+code=src" class="sref">src5/a>->5a href="+code=hw_ptr" class="sref">hw_ptr ) ||312145/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=delay" class="sref">delay , &5a href="+code=src" class="sref">src5/a>->5a href="+code=delay" class="sref">delay ) ||312155/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=avail" class="sref">avail , &5a href="+code=src" class="sref">src5/a>->5a href="+code=avail" class="sref">avail ) ||312165/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=avail_max" class="sref">avail_max , &5a href="+code=src" class="sref">src5/a>->5a href="+code=avail_max" class="sref">avail_max ) ||312175/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=overrange" class="sref">overrange , &5a href="+code=src" class="sref">src5/a>->5a href="+code=overrange" class="sref">overrange ) ||312185/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=status" class="sref">status .5a href="+code=suspended_state" class="sref">suspended_state , &5a href="+code=src" class="sref">src5/a>->5a href="+code=suspended_state" class="sref">suspended_state ))312195/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;312205/a>312215/a>        return 5a href="+code=err" class="sref">err ;312225/a>}312235/a>312245/a>5spa" class="comment">/*1both for HW_PARAMS and HW_REFINE */5/spa"v312255/a>static int15a href="+code=snd_pcm_ioctl_hw_params_compat" class="sref">snd_pcm_ioctl_hw_params_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,312265/a>                                          int15a href="+code=refine" class="sref">refine , 312275/a>                                          struct15a href="+code=snd_pcm_hw_params32" class="sref">snd_pcm_hw_params32  5a href="+code=__user" class="sref">__user5/a> *5a href="+code=data32" class="sref">data325/a>)312285/a>{312295/a>        struct15a href="+code=snd_pcm_hw_params" class="sref">snd_pcm_hw_params5/a> *5a href="+code=data" class="sref">data ;312305/a>        struct15a href="+code=snd_pcm_runtime" class="sref">snd_pcm_runtime5/a> *5a href="+code=runtime" class="sref">runtime5/a>;312315/a>        int15a href="+code=err" class="sref">err ;31232 312335/a>        if (! (5a href="+code=runtime" class="sref">runtime5/a> = 5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>))312345/a>                return -5a href="+code=ENOTTY" class="sref">ENOTTY ;31235 312365/a>        5spa" class="comment">/*1only fifo_size is different, so just copy all */5/spa"v312375/a>        5a href="+code=data" class="sref">data  = 5a href="+code=memdup_user" class="sref">memdup_user5/a>(5a href="+code=data32" class="sref">data325/a>, sizeof(*5a href="+code=data32" class="sref">data325/a>));312385/a>        if (5a href="+code=IS_ERR" class="sref">IS_ERR5/a>(5a href="+code=data" class="sref">data ))312395/a>                return 5a href="+code=PTR_ERR" class="sref">PTR_ERR5/a>(5a href="+code=data" class="sref">data );312405/a>312415/a>        if (5a href="+code=refine" class="sref">refine )312425/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_hw_refine" class="sref">snd_pcm_hw_refine5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=data" class="sref">data );312435/a>        else312445/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_hw_params" class="sref">snd_pcm_hw_params5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=data" class="sref">data );312455/a>        if (5a href="+code=err" class="sref">err  < 0)312465/a>                goto 5a href="+code=error" class="sref">error ;312475/a>        if (5a href="+code=copy_to_user" class="sref">copy_to_user5/a>(5a href="+code=data32" class="sref">data325/a>, 5a href="+code=data" class="sref">data , sizeof(*5a href="+code=data32" class="sref">data325/a>)) ||312485/a>            5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=data" class="sref">data ->5a href="+code=fifo_size" class="sref">fifo_size , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=fifo_size" class="sref">fifo_size )) {312495/a>                5a href="+code=err" class="sref">err  = -5a href="+code=EFAULT" class="sref">EFAULT ;312505/a>                goto 5a href="+code=error" class="sref">error ;312515/a>        }31252 312535/a>        if (! 5a href="+code=refine" class="sref">refine ) {312545/a>                unsigned int15a href="+code=new_boundary" class="sref">new_boundary  = 5a href="+code=recalculate_boundary" class="sref">recalculate_boundary5/a>(5a href="+code=runtime" class="sref">runtime5/a>);312555/a>                if (5a href="+code=new_boundary" class="sref">new_boundary )312565/a>                        5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=boundary" class="sref">boundary  = 5a href="+code=new_boundary" class="sref">new_boundary ;312575/a>        }312585/a> 5a href="+code=error" class="sref">error :312595/a>        5a href="+code=kfree" class="sref">kfree5/a>(5a href="+code=data" class="sref">data );312605/a>        return 5a href="+code=err" class="sref">err ;312615/a>}31262 312635/a>312645/a>5spa" class="comment">/*5/spa"v31265 5spa" class="comment"> */5/spa"v312665/a>struct15a href="+code=snd_xferi32" class="sref">snd_xferi325/a> {312675/a>        5a href="+code=s32" class="sref">s32  5a href="+code=result" class="sref">result ;312685/a>        5a href="+code=u32" class="sref">u32  5a href="+code=buf" class="sref">buf ;312695/a>        5a href="+code=u32" class="sref">u32  5a href="+code=frames" class="sref">frames ;312705/a>};312715/a>312725/a>static int15a href="+code=snd_pcm_ioctl_xferi_compat" class="sref">snd_pcm_ioctl_xferi_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,312735/a>                                      int15a href="+code=dir" class="sref">dir , struct15a href="+code=snd_xferi32" class="sref">snd_xferi325/a> 5a href="+code=__user" class="sref">__user5/a> *5a href="+code=data32" class="sref">data325/a>)312745/a>{312755/a>        5a href="+code=compat_caddr_t" class="sref">compat_caddr_t  5a href="+code=buf" class="sref">buf ;312765/a>        5a href="+code=u32" class="sref">u32  5a href="+code=frames" class="sref">frames ;312775/a>        int15a href="+code=err" class="sref">err ;312785/a>312795/a>        if (! 5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>)312805/a>                return -5a href="+code=ENOTTY" class="sref">ENOTTY ;312815/a>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stream" class="sref">stream5/a> != 5a href="+code=dir" class="sref">dir )312825/a>                return -5a href="+code=EINVAL" class="sref">EINVAL ;312835/a>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=status" class="sref">status ->5a href="+code=state" class="sref">state  == 5a href="+code=SNDRV_PCM_STATE_OPEN" class="sref">SNDRV_PCM_STATE_OPEN )312845/a>                return -5a href="+code=EBADFD" class="sref">EBADFD ;31285 312865/a>        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=buf" class="sref">buf , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=buf" class="sref">buf ) ||312875/a>            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=frames" class="sref">frames , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=frames" class="sref">frames ))312885/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;31289 312905/a>        if (5a href="+code=dir" class="sref">dir  == 5a href="+code=SNDRV_PCM_STREAM_PLAYBACK" class="sref">SNDRV_PCM_STREAM_PLAYBACK )312915/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_lib_write" class="sref">snd_pcm_lib_write5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=compat_ptr" class="sref">compat_ptr5/a>(5a href="+code=buf" class="sref">buf ), 5a href="+code=frames" class="sref">frames );312925/a>        else312935/a>                5a href="+code=err" class="sref">err  = 5a href="+code=snd_pcm_lib_read" class="sref">snd_pcm_lib_read5/a>(5a href="+code=substream" class="sref">substream5/a>, 5a href="+code=compat_ptr" class="sref">compat_ptr5/a>(5a href="+code=buf" class="sref">buf ), 5a href="+code=frames" class="sref">frames );312945/a>        if (5a href="+code=err" class="sref">err  < 0)312955/a>                return 5a href="+code=err" class="sref">err ;312965/a>        5spa" class="comment">/*1copy the1result */5/spa"v312975/a>        if (5a href="+code=put_user" class="sref">put_user5/a>(5a href="+code=err" class="sref">err , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=result" class="sref">result ))312985/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;312995/a>        return 0;313005/a>}313015/a>31302 313035/a>5spa" class="comment">/*1)14L2424Pecs   mapping of f">sult */5/spa"v312045>, struct15a href="+code=snd_xneri32" class="sref">snd_xneri325/a> {3        5a href="+code=s32" class="sref">s32  5a href="+code=result" class="sref">result ;3        5a href="+code=u32" class="sref">u32  5a href="+cof">sbuf" class="sref">ames <     5spa" class="comment">thisize void **;ult */5/spa"v3        5a href="+code=u32" class="sref">u32  5a href="+code=frames" class="sref">frames ;3};3312105/a>5spa" class="comment">/*5/spa"v3121155spa" class="comment" 14L242cm_io24Pes to>/*1co(up to) 128 pointers on stack.>/*5/spa"v3121255spa" class="comment" although we may p clopy t/*1ied pointers through f_op/a>-&cm_io, f"topy tcm_io>/*5/spa"v35spa" class="comment" handleropy re ex>5scs againopy ts" n 128 pointers on stackent, itize bett_use*5/spa"v35spa" class="comment" to>handleopy tfunction (calling nd_pcb_rv/ib_wrv) dire_ioy inopyze handler.>/*5/spa"v35spa" class="comment"> */5/spa"v3static int15a href="+code=snd_pcm_ioctl_xneri_compat" class="sref">snd_pcm_ioctl_xneri_compat5/a>(struct15a href="+code=snd_pcm_substream" class="sref">snd_pcm_substream5/a> *5a href="+code=substream" class="sref">substream5/a>,312175/a>                                      int15a href="+code=dir" class="sref">dir , struct15a href="+code=snd_xneri32" class="sref">snd_xneri325/a> 5a href="+code=__user" class="sref">__user5/a> *5a href="+code=data32" class="sref">data325/a>)3{3        5a href="+code=compat_caddr_t" class="sref">compat_caddr_t  5a href="+code=buf" class="sref">buf ;3        5a href="+code=compat_caddr_t" class="sref">compat_caddr_t  5a href="+code=__user" class="sref">__user5/a> *5a href="+cof">at_ptr" class="sref">at_buf ;3        5a href="+code=u32" class="sref">u32  5a href="+code=frames" class="sref">frames ;3     void a> 5a href="+code=__user" class="sref">__user5/aa> *5a href="+cof">sbuf" class="sref">ames ;3        int15a href="+code=err" class="sref">err /a>, 5a href="+codhr_t" class="srefherr /a>, 5a href="+coir_t" class="sreimes ;312245a>;3        if (! 5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>)312265/a>                return -5a href="+code=ENOTTY" class="sref">ENOTTY ;3        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stream" class="sref">stream5/a> != 5a href="+code=dir" class="sref">dir )3                return -5a href="+code=EINVAL" class="sref">EINVAL ;33        iif (5a href="+codhr_t" class="srefherr /a> = 5a href="+code=substream" class="sref">substream5/a>->5a href="+code=runtime" class="sref">runtime5/a>->5a href="+code=chansbuf" class="srede=chansbuf -& 128)3                return -5a href="+code=EINVAL" class="sref">EINVAL ;3        if (5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=buf" class="sref">buf , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=sbuf" class="sref">ames ) ||3            5a href="+code=get_user" class="sref">get_user5/a>(5a href="+code=frames" class="sref">frames , &5a href="+code=data32" class="sref">data325/a>->5a href="+code=frames" class="sref">frames ))312345/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;3        5a href="+cof">at_ptr" class="sref">at_buf /a> = 5a href="+code=compat_ptr" class="sref">compat_ptr5/a>(5a href="+code=buf" class="sref">buf <;3        5a href="+code=sbuf" class="sref">ames /a> = 5a href="+cokmallo=src" class="srekmallo=pat5/a, sizevoid a> 5a href="+code=__user" class="sref">__user5/a) *a>, 5a href="+codhr_t" class="srefherr /a>, 5a href="+coGFP_KERNENVAL" class="sreGFP_KERNENbuf <;312425/a>                5a hreundary5/a>(5a href="+/core/pcm_comp->5a href="+code=runtimm_comp->5a href="+code=runtimm_            return -5a href="+code=ENOTTY" class="sref">ENOTTY class="srref">data  =py tfunction (calling nd_p2ime" class="sref">runtime5/a>->5a href="+code=ch3f="so3329" class="line" nam.34L229321289 3at_buf /a> = 5a href="+code=comp2905/a>  e=data" class="sref">dat3 )33src5/a>->5re/pcm_compat.3#L205f="0;new312415/a> 3      if (5a href="+code3refin3481" class="line" nam.L222" id34L222" class="line" nam.34L2223212925/a>     vo6" class="line" nass="sref">u32  5a href="+code=frames" clacore/pcm_3ompat.c#L242" id14L242" 3lass=3432" class="line" nam.2" class="sref">data325/a>->5a href="+code=sbuf" class="sref">ames 6" class="line" nass="sream.ne" nam.14L242buf <;3err  = -5a href="+code3nd_pcm_hw3refine" class="sref">snd3pcm_h3_refine5/a>(5a href="+ne" nam.L222" id34L222"" class="line" nam.14L260">12605/a>        re    5a href="+code=get_user"f">u32  5a href="+code=frames" clace=frames"">12445/a>              3 5a h34" class="sref">snd_xferi325/a34L2353312755/a>        5a href="+cof">at_ptr" class="sref">at_buf /a> = 5a href="+code=comnd_pcm_hw3params" class="sref">snd3pcm_h3_params5/a>(5a href="+" id14L302" class="line" nam.14L302">/core/pcm3compat.c#L246" id14L246"3class34ss="line" nam.14L296"05/a>        re    5a href="+code=get_user[a href="sound/core/pcm_compat.3#L205]cm_compat.3#L226" id34L236" class="line" nam.34L2363312765/a>        5a h6" class="line" nass="sre"f">u32  5a href="+code=frames" clac class="se/pcm_compat.c#L247" id13L247"3class="line" nam.14L24.ne" nam.14L242buf <;3u32  5a href="+code=frames" clacf="+code==data32" class="sref">da3a325/34ass="sref">error :3data ->35a hr34d/core/pcm_compat.c#L239" id14L2="sound/core/pcm_compat.c#L291" id14L291" class="line" nam.14L291">12915/a>                5a href="+code=err" class="sref">err  = 5a href="+code=3EFAULT" c3ass="sref">EFAULT ;3<3 href3"sound/core/pcm_compat.c#L250" id14L250" class="line" nam.14L250",3        5a href">buf ), 5a href="+code=frames" class="sref">fra    5a href="+code=get_user4">12945/a>        if (5a href="+code=err" class="sref">err  < 0)3err  = 5a href="+code=3.14L252">3252 3substream5/a>, 5a href="+code=compat_ptr"265 <.3#L217" id34L217" clas(5a 265 <12765/a>        5a href">buf ), 5a href="+code=frames" class="sref">fra    5a href="+code=get_user4">12945/a>        if (5a href="+code=err" class="sref">err  < 0)3dat          return 5a href="+343="0class="sref">err  = -5a href="+code3und/core/3cm_compat.c#L254" id14L234" cl35" class="sref">snd_xf2" class="sref">data325/a>->5a href="+code=result" class="sref">result ))312985/a>                return -5a href="+code=EFAULT" class="sref">EFAULT ;3 = 5a href="+code=reca3culat3_boundary" class="sref href="+code=substream" class="sref">substream5/a>,312755/a>        5a href="+cof">at_ptr" class="sref">at_buf /a> = 5a href="+code=com)3:335href="+code=__user" class="s" class="line" nam.14L260">12605/a>        re    5a href="+code=get_user"f">u32  5a href="+code=frames" cla.14L258">32585/a> 5a href="+code=e3ror" 3lass="sref">er>12965/a>        5spa" class="comment">/*1copy the1result */5/spa"v31ror :3data );3 = 5a href="+code=substre/pcm_com3at.c#L261" id14L261" cla3s="li36 class="sref">refine )3,3src5/a>)3src5/ss="sass="sref">err  = -5a href="+code312635/a>33a href="sound/core/pcm_c3mpat.362ref="+code=__user" class="s class="line" nam.34L2063012765/a>       d/core/pcm_compat.c#L284" id1the1result */5/spa"v3/*5/3pa"v336href="+code=substream" class class="line" nam.34L2063012765/a>       pad1>5a href="+coad1 id1the1result */5/spa"v31263 5364ref="+code=substream" class class="line" nam.34L2223212925/a>     vo        5a href="+code=put_userthe1result */5/spa"v312365/a>36" id14L256" ceam5/a>,3     vo" id14L212" class="line" nam.14the1result */5/spa"v3       d9">12195/a>                return -5a href="+codthe1result */5/spa"v33result ;3;3126class="sref">dataackes="sref">compat_aackes+code=the1result */5/spa"v3substream5/a>->5a 3ss="sref"3frames ;3)3err  = -5a href="+code3">12715/a33at_ptr" cla class="line" nam.34L2223212925/a>     vo            5a href="+code=put_userthe1result */5/spa"v3     vocode=puin    5a href="+coode=puinuserthe1result */5/spa"v3dir , 3truct15a href="+code=snd3xferi37 href="sound/core/pcm_compat.c#L265" id13>12755/a>3       5a href="+code=co3pat_c37ass="line" nam.34L2053012755/a>classyncput_5/a>)3err  = -5a href="+code3"a>)3buf <3>;3     voilag(5a href="+code=elag(userthe1result */5/spa"v3err  = -5a href="+code3"14L258">3c#L278" id14L278" class=3line"37" class="sref">snd_xneam5/a>,3src5/a>)3src5/ss="s12765/a>       d/co="sref">SNDRV_PCM_STATE_OPEthe1result */5/spa"v3recalcuchar012765/a>        5aerves="sref">compat_ 5aervesuser[64]the1result */5/spa"v3r3ntime3/a>)3SNDRV_PCM__OPEthe1result */5/spa"v3err  = -5a href="+code3f="+code=3tream" class="sref">stre3m5/a>38_write5/a>(5a href="+eam5/a>,3recalcuchar012765/a>        5aerves="sref">compat_ 5aervesuser[64]the1result */5/spa"v3run3ime5/3>->5a href=}ass="sreGFP_KERN    5a href="+com_OPEthe1result */5/spa"v3126class="sref">dataackes="sref">compat_aackes+code=the1result */5/spa"v3get_user5/a>(5a href="+c3de=buf" c3ass="sref">buf , &35a hr38de=snd_pcm_substream" class="sref">snd_pcm_susyncput__m5/a> *5a href="+code=substream" clsyncput__m5/a> FP_KERam5/a>,312175/a>                                      int15a href="+code=dir" class="sref">de=frames3 class="sref">frames 3 &35a href="+code=dattttttttttttttttttttttttttttttline" nam.34L2053012755/a>classyncput_5/a>)3       ompat.c#L219" id14L219" c=EFAULT" class="sref">EFAULT ;3compat_caddr_t  5a h12905/a> 3      if (5a href="+code3dir" 38">data ;312315/a>        int15a href="+code=err" class=+code=chansbuf" class="srede=chansbuf -& 128)3srca>)3srcL2213211915/a>       o/co="sref">SNDRV_PCM_STATE_OPEthe1result */5/spa"v3snd3pcm_l3b_write5/a>(5avolpcmleneam5/a>,3       m.ntrol   5a href="+com.ntrol_OPEthe1result */5/spa"v312935/a>              3 5a h392ref="+code=__user" class="s class="line" nam.34L2223212925/a>     vosilag(5a href="+code=selag(userthe1result */5/spa"v3snd_3cm_li3_read5/a>(5a heam5/a>,3,3srca>)3srcL2213,3srca>)3err  = -5a href="+code3"a>)3(struct15a href="+code=snd_pcm_subst=data32" cla22mmapem.ntrol   5a hr1/ass=dat5/a>(se/pcm_compat.c#L299" id14L299" cl3ss="l39pat.c#L239" id14L2="sound/core/p">erBUG_O    return -5a h">erBUG_O EFAULT ;3 =0">13005/3>}312205/a>3get_user5/a>(5a href="+code=buf" class4ref="soun4/core/pcm_compat.c#L302"4id14L40refine )3dir )3ames 6" class="line"+code=selag(userthe1result */5t.c#L298" id14L298" clid14L219" c=EFAULT" class                returcode=elag(userthe1result */5>get_user5/a>(5a href="+code=frames" cl4class="co4ment">/*1)14L2424Pecs   4appin40e" nam.">recalcucef">dir )3ames 6" class="line"ref="+codm.ntrol_OPEthe1result */5.o            5a href="+code=put_userthe1result */5t.c#L298" id14L298" clid14L219" c=EFAULT" class                retucom_OPEthe1result */5.o            5aref="+com.ntrol_OPEthe1result */5.o            5a href="+code=put_userthe1result */5>get_user5/a>(5a href="+code=frames" cl4c3ass="co4mref">snd_3cm_li3_read5/4"line40data32" class="sref">data325/a>->5a href="+code=frames" class="sref">frames )"ref="+codm.ntrol_OPEthe1result */5.o            5a  href="+coode=puinuserthe1result */5t.c#L298" id14L298" clid14L219" c=EFAULT" class                retucom_OPEthe1result */5.o            5aref="+com.ntrol_OPEthe1result */5.o            5a  href="+coode=puinuserthe1result */5s="sref">EFAULT ;3 4_compat.34L205" id34L205" class="l4ne" n40e" nam.34L2353312755/a>        5a href="+cof">at_ptr" class="sref">at_buf /a> = 5a href="+code=compat_ptr" clas4lt ;3<4 href="sound/core/pcm_co4pat.340ound/core/pcm_com 6" class="line"+code=selag(userthe1result */5.c#L29class="line" nam.14L291">12YNC_/a>3HW2YNC=selag(userthe1.14L291">12YNC_/a>3HW2YNC */5>gcompat_caddr_t  5a h12905/a> 3   4     5spa4 class="comment">thisize4void 40m.14L24.ne" nam.14L242buf <;3, 5a href="+code=data" class="sref">datasss=5/a>3comp4"sref">err frames )"sbuf -& 128)3err ;3recalcuchar03312755/a>     30sreGFP_KERNENL221" class="line" nam.34L22mmapem.ntrol   5a hr1/ass=dat5/a>4class="co4ment">/*5/spa"v34ine" nam.44L2113>121155spa" cla4s="co41f">at_ptr" cla class="line" DRV_PCM_STATE_OPEthe1result */5="sound/core/pcm_co5a href="+code=SNDRV_PCM_STATE_OPEN" class="sref">SNDRV_PCM_STATE_OPEN )34a href="s4und/core/pcm_compat.3#L342" id41222" id34L222" class="line" ref="+com.ntrol_OPEthe1result */5="sound/core/pcm_co5a href="+code=SNDRV_PCM_STATE_OPEN" class="sref">SNref="+com.ntrol_OPEthe1result */5/spa"v314topy tcm_4o>/*5/spa"v312575/a>        }ompat.c#L255" id14L255" class="line" nam.14L255">12555/a>                if (5a href="+code=new_boundary" class="sref">new_boundary )312545/a>                uns id14L257" class="line" nam.14L257"ef">err ;3 id14L257" class="line" nam.14L257">120x7fffffffss="sref">new_boundary )3;3<434L2163162725/a>static i4t15a 41206" id34L206" /coremmuerr" cef="souf="sou_lock_irqound/coresyncput_5/ss="s="sou_lock_irqs="sref">frames )"sbuf -& 128)312975/a>        if (5a href="+code=pFIXME:ne" should 1residne" na  nam.14La>-&g>5spass= from e1rri_compat" class="sref">snd_pcm_ioctl_xneri_c4t15a href4"+code=snd_xneri32" clas4="sre41      return -5a !m 6" class="line"+code=selag(userthe1result */5.c#L29class="line" nam.14L291">12YNC_/a>3APP=get_user" class.14L291">12YNC_/a>3APP= */5s="sref">EFAULT ;3 4   5a hre4="+code=compat_caddr_t" 4lass=41e" nam.">recalcuchar0class="sref">SNref="+com.ntrol_OPEthe1result */5PEN" class="sref">SN href="+code=put_userthe1result */5code=data" class="sref="+codm.ntrol_OPEthe1result */5.o            5a href="+code=put_userthe1result */5/spa"v3buf ;332524ser" clas4="sref">__user5/a> *5a h4ef="+42e" nam.L222" id34L222" class="line" sref="+codm.ntrol_OPEthe1result */5.o            5a href="+code=put_userthe1result */526" id34L236" class=f="+com.ntrol_OPEthe1result */5PEN" class="sref">SN href="+code=put_userthe1result */5cŻclass="line" nam=EBADFkipa"v312YNC_/a>3AVAIL_MI    return -5a href="+code=YNC_/a>3AVAIL_MI  */5s="sref">EFAULT ;3 4"sref">am4s ;3recalcuchar0 id34L236" class=f="+com.ntrol_OPEthe1result */5PEN" class="sref">SN  href="+coode=puinuserthe1result */5code=data" class="sref="+codm.ntrol_OPEthe1result */5.o            5a  href="+coode=puinuserthe1result */5/spa"v3 = 5a href="+code=3.14L252">32524sandler.>4 href="+code=substream" 4lass=42href="+code=substream" class="sref">sref="+codm.ntrol_OPEthe1result */5.o            5a  href="+coode=puinuserthe1result */526" id34L236" class=f="+com.ntrol_OPEthe1result */5PEN" class="sref">SN  href="+coode=puinuserthe1result */5/spa"v3runtime5/a>)3stream5/a> != 5a h4ef="+42268" id14L268" class="line" nref="sou_STATE_OPEthe1result */5.o            5aass="line" nam.14the1result */5lila class="line" DRV_PCM_STATE_OPEthe1result */5="sound/core/pcm_comass="line" nam.14the1result */5/spa"v33res4  iif (5a4href="+codhr_t" class="s4efher42e/pcm_compat.3#L220" id34L22t_5/ss="s="sou_unlock_irqound/coresyncput_5/ss="s="sou_unlock_irqs="sref">frames )"sbuf -& 128)3subst4eam5/a>->5a href="+co4e=run4ime" class="sref">ef">frames ) href="+code=result" class="sref">result ))3frames ) href="+code=result" class="sref">result ))3am4 , &5a href="+cod4=data43e" nam.">recalcucef">dir )3result ))3get_user5/a>(5a href="+code=frames" cl4ra>, 5a h4frames , &5a href4"+cod4=data32" class="sref">data325/a>- href="+code=result" class="sref">result ))3get_user5/a>(5a href="+code=frames" cl4randler.>4pat.3#L235" id34L235" cl4ss="l4ne" nam.34L2353312ef">frames ) href="+code=result" class="sref">result ))3;3<4mpat_ptr5/a>(5a href="+c4de=bu4314L296"05/a>     ef">frames ) href="+code=result" class="sref">result ))3get_user5/a>(5a href="+code=frames" cl4allo=pat54a, sizevoid a> 5a href="4code=43m.14L24.ne" nam.1ef">frames ) href="+code=result" class="sref">result ))3EFAULT ;3at_ptr" class="sref">at_buf /a> = 5a href="+code=compat_ptr" clas4gt;5a hre4="+code=ch3f="so3329" cl4ss="l43ref">substream5/a>->5a 3ss="sref"3fra4ta" class4"sref">dat3 )3313015/a>31302 313035/a>5spa"4ne" class4"sref">snd3pcm_h3_refine4/a>(544of f">sult */5/spa"v3snd_pcm_ioctl_xneri_c4ms" class4"sref">snd3pcm_h3_params4/a>(544_compat.3#L205" id34L215" cla_compat" class="sref">snd_pcm_ioctl_xneri_c4at.c#L2464 id14L246"3class34ss="li4e" na4.14L29enumgcompat_caddr_t  5a h12905/a> 3   4m_compat.4#L247" id13L247"3class="4ine" 44user" class="s class="line" ref="+codeIOCTL_HW_REFINEam.34L2223212925/ref="+codeIOCTL_HW_REFINEam */5lila class="line" eIOWR.34L2223212925/eIOWRf">rest.3#L205" idstring">'A'compat", 0x10 class="sref">data325/a>)3src5/sta_param="s */5scode=dir" class="sref">de=frames3 cl4a32" clas4="sref">da3a325/34ass="s4ef">e44268" id14L268" class="line" ref="+codeIOCTL_HW_PARAMSam.34L2223212925/ref="+codeIOCTL_HW_PARAMSam */5lila class="line" eIOWR.34L2223212925/eIOWRf">rest.3#L205" idstring">'A'compat", 0x11 class="sref">data325/a>)3src5/sta_param="s */5scode=dir" class="sref">de=frames3 cl4at;5a hre4ta ->35a hr34d/core4pcm_c44d14L269" class="line" nam.14ref="+codeIOCTL_SW_PARAMSam.34L2223212925/ref="+codeIOCTL_SW_PARAMSam */5lila class="line" eIOWR.34L2223212925/eIOWRf">rest.3#L205" idstring">'A'compat", 0x13 class="sref">data325/a>)3src5/ssa_param="s */5scode=dir" class="sref">de=frames3 cl4aa" class4ULT ;3<3 href3"sound/4ore/p44e/pcm_compat.3#L220" id34L22ref="+codeIOCTL_STATUSam.34L2223212925/ref="+codeIOCTL_STATUSam */5lila class="line" eIOR.34L2223212925/eIORf">rest.3#L205" idstring">'A'compat", 0x20 class="sref">data325/a>)3src5/s2765/a>     scode=dir" class="sref">de=frames3 cl4m_compat.4#L251" id13L251"3class="4ine" 45f">at_ptr" cla class="line" ref="+codeIOCTL_DELAYam.34L2223212925/ref="+codeIOCTL_DELAYam */5lila class="line" eIOR.34L2223212925/eIORf">rest.3#L205" idstring">'A'compat", 0x21     if (5a href=nam.34L2063012765/a>     scode=dir" class="sref">de=frames3 cl4m.c#L242"4f="sound/c3re/pc35_write4/a>(545222" id34L222" class="line" ref="+codeIOCTL_CHANNEL_INFOam.34L2223212925/ref="+codeIOCTL_CHANNEL_INFOam */5lila class="line" eIOR.34L2223212925/eIORf">rest.3#L205" idstring">'A'compat", 0x32 class="sref">data325/a>)3src5/sf="+cod_info"s    scode=dir" class="sref">de=frames3 cl4me" class4 href="+co3e=ref35="+cod4=data42" class="sref" class="line" ref="+codeIOCTL_REWINDam.34L2223212925/ref="+codeIOCTL_REWINDam */5lila class="line" eIOW.34L2223212925/eIOWf">rest.3#L205" idstring">'A'compat", 0x46     if (5a href=nam.34L2223212925/a>     scode=dir" class="sref">de=frames3 cl4m45/a>   454" id14L234" cl35" clas4="sre4">snd_xf2" cla" class="line" ref="+codeIOCTL_FORWARDam.34L2223212925/ref="+codeIOCTL_FORWARDam */5lila class="line" eIOW.34L2223212925/eIOWf">rest.3#L205" idstring">'A'compat", 0x49     if (5a href=nam.34L2223212925/a>     scode=dir" class="sref">de=frames3 cl4ms" class4+code=reca3culat3_bounda4y" cl45bstream" class class="line" ref="+codeIOCTL_WRITEI_FRAMESam.34L2223212925/ref="+codeIOCTL_WRITEI_FRAMESam */5lila class="line" eIOW.34L2223212925/eIOWf">rest.3#L205" idstring">'A'compat", 0x50 class="sref">data325/a>)3     scode=dir" class="sref">de=frames3 cl4mt.c#L2464/pcm_compa3.c#L236" id144256" 45206" id34L206" /coremmuerr" ref="+codeIOCTL_READI_FRAMESam.34L2223212925/ref="+codeIOCTL_READI_FRAMESam */5lila class="line" eIOR.34L2223212925/eIORf">rest.3#L205" idstring">'A'compat", 0x51 class="sref">data325/a>)3     scode=dir" class="sref">de=frames3 cl4m_compat.4y" class="3ref">35href="4code=4_user" class="s" class="line"ref="+codeIOCTL_WRITEN_FRAMESam.34L2223212925/ref="+codeIOCTL_WRITEN_FRAMESam */5lila class="line" eIOW.34L2223212925/eIOWf">rest.3#L205" idstring">'A'compat", 0x52 class="sref">data325/a>)3de=frames3 cl4m32" clas4f="+code=e3ror" 3lass="s4ef">e45268" id14L268" class="line" ref="+codeIOCTL_READN_FRAMESam.34L2223212925/ref="+codeIOCTL_READN_FRAMESam */5lila class="line" eIOR.34L2223212925/eIORf">rest.3#L205" idstring">'A'compat", 0x53 class="sref">data325/a>)3de=frames3 cl4mt;5a hre4ss="line" 3am.143259">1r4r 45d14L269" class="line" nam.14ref="+codeIOCTL_SYNC_/a>am.34L2223212925/ref="+codeIOCTL_SYNC_/a>am */5lila class="line" eIOWR.34L2223212925/eIOWRf">rest.3#L205" idstring">'A'compat", 0x23 class="sref">data325/a>)3de=frames3 cl4ma" class4a href="so3nd/co35ass="s4efher4 /a> = 5a href="+code=substre/pcm_com3at.4#L261" id44L261" cla3s="li36 class4"sref4>refinlass="line" nam.34L2103>dir , 3tru4ref="soun4/core/pcm_3ompat3c#L263e4m5/a>46" class="line" nam.14L303">13035/a>5spa"4ef="sound4core/pcm_c3mpat.362ref="4code=4_user"m" claslongsref">snd_pcm_susyncput__m5/a>="+code=substream" clsyncput__m5/a>5/a>,3snd_pcm_suargcoode=puinuserthrgP_KEsss="line" nam.14L303">13035/a>5spa"4e45/a>   4ment">/*5/3pa"v336href="4code=4ubstrecompat_caddr_t  5a h12905/a> 3   4ine" nam.44L265">1263 5364ref="4code=46am5/a>,3srca>)filreturn -5a href=">srca>)filr */5l  m.ntrol   5a hca>)filreturn -5a href=ca>)filr */5ass="line" nam.34L2103>dir , 3tru4rt.c#L246414L266">12365/a>36" id144256" 4eam5/a>,312175/a>                                      int15a href="+ass="line" nam.34L2103>dir , 3tru4r_compat.4L267" id143267" 36href="4code=4_user" class="P_KERNENbuf <;3snd_pcm_suargline" nam.14the1argl */5lila class="line" c/a>      om.ntrol_OPEthe1ra>      f">result ))3dir , 3tru4r32" clas4 href="sou3d/cor3/pcm_c}4ss="s46" cla22mmapem.ntrol   5a hr1/ass=dat5/a>4;3)filreturn -5a href=ca>)filr */5lila class="line" filreturn -5a href=filr */5                retuprivL255">12eturn -5a href=crivL255">12f="+ass="line" nam.34L2103>dir , 3tru4ra" class4 href="sou3d/cor3/pcm_ce4m5/a>46e/pcm_compat.a>                unsca>)filreturn -5a href=ca>)filr */5sss="line" nam.14L303">13035/a>5spa"4href="sou4d/core/pcm3compa37 *5a h4ef="+47e" nam.L222" id34L222a>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stre4 int15a h4ef="+code=3nd_pc37pcm_co4pat.34L222" id34L222" class="line"                        int15a href="+lila class="line" ca>)filreturn -5a href=ca>)filr */5="sound/core/pcm_comp                      int15a href="+ass="line" nam.34L2103>dir , 3tru4mpat5/a>(4truct15a h3ef="+3ode=sn04 id3447" class="sref">dapat.3#L226" id34L226" class="line" nam.34L2263>12265/asss="line" nam.14L303">13035/a>5spa"4h45/a>   4"+code=snd3xferi37 href=4sound47>snd_xf2" class="srefa>        if (5a href="+code=substream" class="sref">substream5/a>->5a href="+code=stre4 ne" nam.4="+code=co3pat_c37ass="l4ne" n47ref">substream5/a>->5a href="+code=ru4" class="4ref">buf <3>;312045>, struct15acompat" class="sref">snd_pcm_ioctl_xneri_c4es ;3<4 href="sou3d/cor3/pcm_co4pat.c4unne" at.3#L205" id34L215" clllllllll* When cod is ompd on 32bit mef=,ne" nepd to disablr *mpat" class="sref">snd_pcm_ioctl_xneri_c4e32" clas478" class=3line"37" clas4="sre4">snd_at.3#L205" id34L215" clllllllll* 13,3 of cod 2765/a/1resultfa>d_pds becaomp of >5spaizr *mpat" class="sref">snd_pcm_ioctl_xneri_c4e3snd_pcm_ioctl_xneri_c4ea" class4s="sref">r3ntime3/a>)3snd_pcm_ioctl_xneri_c4re/pcm_co4pat.c#L2813 id143281" cl4ss="l48f">at_ptr" cla class="line" ca>)filreturn -5a href=ca>)filr */5="sound/core/pcm_comnoctl_xne213,3eturn -5a href=noctl_xne213,3f="+lil1ubstream5/a>->5a href="+code=stre4m" class=4sref">stre3m5/a>38_write4/a>(548" class="line" nam.14L303">13035/a>5spa"4re/pcm_co4pat.c#L2833 id143283" cl4ss="l4ne" nam.">recaswitch">ef">frames )cmt_aackes+code=thcmt */5>gcompat_caddr_t  5a h12905/a> 3   4me" class4"sref">run3ime5/3>->54 href4}ass="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_PVERSIO    return -5a href="+codeIOCTL_PVERSIO ss=":ompat_caddr_t  5a h12905/a> 3   4mne" nam.4pat.c#L2853 id143285" c}4ss="s484ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_INFO   return -5a href="+codeIOCTL_INFOss=":ompat_caddr_t  5a h12905/a> 3   4m class="4ref="+code3get_u3er" cla4s="sr485ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_TSTAMP   return -5a href="+codeIOCTL_TSTAMPss=":ompat_caddr_t  5a h12905/a> 3   4ms ;3<4 , &35a hr38de=snd4pcm_s486ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_TTSTAMP   return -5a href="+codeIOCTL_TTSTAMPss=":ompat_caddr_t  5a h12905/a> 3   4m32" clas4frames 3 &35a href4"+cod4=datttttttttttcamp s="line" nam.14ref="+codeIOCTL_HW2YNC=selag(userthe1.14L291">1IOCTL_HW2YNCss=":ompat_caddr_t  5a h12905/a> 3   4m3data4;34a href="sound/camp s="line" nam.14ref="+codeIOCTL_RESEptr" class="srefref="+codeIOCTL_RESEpss=":ompat_caddr_t  5a h12905/a> 3   4LAYBACK" 4lass="sref3>SNDR3_PCM_ST4EAM_P4volpcmleneam5/camp s="line" nam.14ref="+codeIOCTL_STARptr" class="srefref="+codeIOCTL_STARpss=":ompat_caddr_t  5a h12905/a> 3   4L" class=4"sref">snd3pcm_l3b_write4/a>(54volpcmleneam5/camp s="line" nam.14ref="+codeIOCTL_DROP   return -5a href="+codeIOCTL_DROPss=":ompat_caddr_t  5a h12905/a> 3   4Le/pcm_co4          3 5a h392ref="4code=4_user" class="camp s="line" nam.14ref="+codeIOCTL_DRAI    return -5a href="+codeIOCTL_DRAI ss=":ompat_caddr_t  5a h12905/a> 3   4Le" class4sref">snd_3cm_li3_read5/4>(5a 49ass="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_PAUSE   return -5a href="+codeIOCTL_PAUSEss=":ompat_caddr_t  5a h12905/a> 3   4Lne" nam.4 id14L295"3class3"line" 4am.14494ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_HW_FREE   return -5a href="+codeIOCTL_HW_FREEss=":ompat_caddr_t  5a h12905/a> 3   4L class="4296" id14L396" c39pcm_co4pat.3495ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_RESUME   return -5a href="+codeIOCTL_RESUMEss=":ompat_caddr_t  5a h12905/a> 3   4Ls ;3<4__OPEthe1result */5/spa"43}312205/_com 6" class="line"sbuf -& 128)312915/a>                5a href="+code=err" class="sref">err  = 5a href="+code=3EFAULT" c3ass5ref="soun5/core/pcm_compat.c#L302"5id14L50e" nam.L222" id34L22222222222a>     30sreGFP_KERNENe" nam.3playback_im5/a+coad1 id1the1ree" nam.3playback_im5/a+f">result ))3-& 128)3snd_pcm_suargline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5ef="sound5core/pcm_compat.c#L303" 5d14L350href="+eam5/a>,3 = 5a href="+code=3.14L252">32525class="co5ment">/*1)14L2424Pecs   5appin5a href="+code=sbufL22222222222a>     30sreGFP_KERNENe" nam.3c9preGe_im5/a+coad1 id1the1ree" nam.3c9preGe_im5/a+f">result ))3-& 128)3snd_pcm_suargline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5e3ass="co5mref">snd_3cm_li3_read5/5"line50ass="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_HW_REFINEam.34L2223212925/ref="+codeIOCTL_HW_REFINEam */5:ompat_caddr_t  5a h12905/a> 3   5_compat.35L205" id34L205" class="l5ne" n50e" nam.34L2353312755/a>     ref">snd_pcm_susyncput__m5/a>ta_param=>="+code=substream" clsyncput__m5/a>ta_param=>="+codf">result ))3-& 128)3dir , 3tru5e5ompat.35L96" id14L396" c39pcm_co5pat.3505ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_HW_PARAMSam.34L2223212925/ref="+codeIOCTL_HW_PARAMSam */5:ompat_caddr_t  5a h12905/a> 3   5_6ompat.35L_OPEthe1result */5/spa"5void 50m.14L24.ne" nam.14L24a>     ref">snd_pcm_susyncput__m5/a>ta_param=>="+code=substream" clsyncput__m5/a>ta_param=>="+codf">result ))3-& 128)3dir , 3tru5e7ompat.35Lref="+code=snd_pcm_subs5pat.350datttttttttttcamp s="line" nam.14ref="+codeIOCTL_SW_PARAMSam.34L2223212925/ref="+codeIOCTL_SW_PARAMSam */5:ompat_caddr_t  5a h12905/a> 3   5_8ompat.35Lat.c#L299" id14L299" cl5 id3450e" nam.">recalcuchar0a>     ref">snd_pcm_susyncput__m5/a>sa_param=>="+code=substream" clsyncput__m5/a>sa_param=>="+codf">result ))3-& 128)3dir , 3tru5e9ompat.35L}3 5a h12905/a> 3   5ine" nam.54L2113>121155spa" cla5s="co51e" nam.L222" id34L222a>     nm.34L23" clsp pat.3#L21765/acompa>="+code=substream" clsyncput_1765/acompa>="+codf">result ))3-& 128)3dir , 3tru5a href="s5und/core/pcm_compat.3#L352" id51olpcmleneam5/camp s="line" nam.14ref="+codeIOCTL_SYNC_/a>am.34L2223212925/ref="+codeIOCTL_SYNC_/a>am */5:ompat_caddr_t  5a h12905/a> 3   5ilass="co5o>/*5/spa"v3     ref">snd_pcm_susyncput__m5/a>s*5a href="+code=substream" clsyncput__m5/a> FP_KERam5/a>,3))3-& 128)3dir , 3tru5a3ass="co5*5/spa"v3 5a h12905/a> 3   5icompat.35*5/spa"v3     ref">snd_pcm_susyncput__m5/a>f="+cod_info>="+code=substream" clsyncput__m5/a>5="+cod_info>="+cod))3-& 128)3dir , 3tru5a5ompat.3534L2163162725/a>static i5t15a 515ss="sreGFP_Kcamp s="line" nam.14ref="+codeIOCTL_WRITEI_FRAMESam.34L2223212925/ref="+codeIOCTL_WRITEI_FRAMESam */5:ompat_caddr_t  5a h12905/a> 3   5i6ompat.35truct15a href="+code=snd5pcm_s51m.14L24.ne" nam.14L24a>     ref">snd_pcm_susyncput__m5/a>at.3i>="+code=substream" clsyncput__m5/a>at.3i>="+cod))3-& 128)312915/a>                5a href="+code=err" class="sref">err,0   if (5a href=argline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5a7ompat.35"+code=snd_xneri32" clas5="sre51datttttttttttcamp s="line" nam.14ref="+codeIOCTL_READI_FRAMESam.34L2223212925/ref="+codeIOCTL_READI_FRAMESam */5:ompat_caddr_t  5a h12905/a> 3   5i8ompat.35="+code=compat_caddr_t" 5lass=51e" nam.">recalcuchar0a>     ref">snd_pcm_susyncput__m5/a>at.3i>="+code=substream" clsyncput__m5/a>at.3i>="+cod))3-& 128)312915/a>CAPTURE   return -5a href="+code2915/a>CAPTURE>err,0   if (5a href=argline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5a9ompat.35ref">buf ;3 5a h12905/a> 3   5ser" clas5="sref">__user5/a> *5a h5ef="+52e" nam.L222" id34L222a>     ref">snd_pcm_susyncput__m5/a>at.3n>="+code=substream" clsyncput__m5/a>at.3n>="+cod))3-& 128)312915/a>                5a href="+code=err" class="sref">err,0   if (5a href=argline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5es ;3<5 href="sound/core/pcm_co5pat.352olpcmleneam5/camp s="line" nam.14ref="+codeIOCTL_READN_FRAMESam.34L2223212925/ref="+codeIOCTL_READN_FRAMESam */5:ompat_caddr_t  5a h12905/a> 3   5slass="co5s ;3recalcuchar0a>     ref">snd_pcm_susyncput__m5/a>at.3n>="+code=substream" clsyncput__m5/a>at.3n>="+cod))3-& 128)312915/a>CAPTURE   return -5a href="+code2915/a>CAPTURE>err,0   if (5a href=argline" nam.14the1argl */5sass="line" nam.34L2103>dir , 3tru5/a>, 5a h5ef="+coir_t" class="srei5es  5a h12905/a> 3   5scompat.35 href="+code=substream" 5lass=52href="+code=substreama>     ref">snd_pcm_susyncput__m5/a>delay>="+code=substream" clsyncput__m5/a>delay>="+cod))3-& 128)3dir , 3tru5/t ;3<5s="sref">runtime5/a>)3 5a h12905/a> 3   5s6ompat.35pat.3#L227" id34L227" cl5ss="l52m.14L24.ne" nam.14L24a>     ref">snd_pcm_susyncput__m5/a>rewiync="+code=substream" clsyncput__m5/a>rewiync="+cod))3-& 128)3dir , 3tru5/7ompat.35sref">stream5/a> != 5a h5ef="+52datttttttttttcamp s="line" nam.14ref="+codeIOCTL_FORWARDam.34L2223212925/ref="+codeIOCTL_FORWARDam */5:ompat_caddr_t  5a h12905/a> 3   5s8ompat.35pat.3#L229" id34L229" cl5ss="l52e" nam.">recalcuchar0a>     ref">snd_pcm_susyncput__m5/a>forwarnc="+code=substream" clsyncput__m5/a>forwarnc="+cod))3-& 128)3dir , 3tru5/9ompat.35href="+codhr_t" class="s5efher52ass="sreGFP_KE22mmapem.ntrol   5a hr1/ass=dat5/a>5ef">subst5eam5/a>->5a href="+co5e=run53refine )3        if (5a href="+coIOCTLCMDine" nam.14the1+coIOCTLCMD" naass="line" nam.34L2103>dir , 3tru5rsref">am5 , &5a href="+cod5=data5am */5E22mmapem.ntrol   5a hr1/ass=dat5/a>5ea>, 5a h5frames , &5a href5"+cod5=data3


,footer"> The original LXR software by >5sp2mmapem.nhttp://trorceforge.net/projects/lxr">LXR 34L2unitynd/c,0this exp.3i215"al version by 2mmapem.nmailto:lxr@ &aux.no">lxr@ &aux.nond/c.
,hrefooter"> lxr. &aux.no kiynly hosted by 2mmapem.nhttp://www.redpill- &apro.no">Redpill L&apro ASnd/c,0providne"of L&aux 1resulting and op.3ations services since 1995.