scontrol.appl_ptr = control->appl_ptr; 
scontrol.appl_ptr = control->appl_ptr % boundary; 
static int snd_pcm_ioctl_sync_ptr_compat(snd_pcm_substream_t *substream,					 struct sndrv_pcm_sync_ptr32 __user *src){	snd_pcm_runtime_t *runtime = substream->runtime;	volatile struct sndrv_pcm_mmap_status *status;	volatile struct sndrv_pcm_mmap_control *control;	u32 sflags;	struct sndrv_pcm_mmap_control scontrol;	struct sndrv_pcm_mmap_status sstatus;	int err;	snd_assert(runtime, return -EINVAL);	if (get_user(sflags, &src->flags) ||	    get_user(scontrol.appl_ptr, &src->c.control.appl_ptr) ||	    get_user(scontrol.avail_min, &src->c.control.avail_min))		return -EFAULT;	if (sflags & SNDRV_PCM_SYNC_PTR_HWSYNC) {		err = snd_pcm_hwsync(substream);		if (err < 0)			return err;	}	status = runtime->status;	control = runtime->control;	snd_pcm_stream_lock_irq(substream);	if (!(sflags & SNDRV_PCM_SYNC_PTR_APPL))		control->appl_ptr = scontrol.appl_ptr;	else		scontrol.appl_ptr = control->appl_ptr;	if (!(sflags & SNDRV_PCM_SYNC_PTR_AVAIL_MIN))		control->avail_min = scontrol.avail_min;	else		scontrol.avail_min = control->avail_min;	sstatus.state = status->state;	sstatus.hw_ptr = status->hw_ptr;	sstatus.tstamp = status->tstamp;	sstatus.suspended_state = status->suspended_state;	snd_pcm_stream_unlock_irq(substream);	if (put_user(sstatus.state, &src->s.status.state) ||	    put_user(sstatus.hw_ptr, &src->s.status.hw_ptr) ||	    put_user(sstatus.tstamp.tv_sec, &src->s.status.tstamp.tv_sec) ||	    put_user(sstatus.tstamp.tv_nsec, &src->s.status.tstamp.tv_nsec) ||	    put_user(sstatus.suspended_state, &src->s.status.suspended_state) ||	    put_user(scontrol.appl_ptr, &src->c.control.appl_ptr) ||	    put_user(scontrol.avail_min, &src->c.control.avail_min))		return -EFAULT;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b27113102f576092cd8f5d6ce8365aa6e2f58134/pcm_compat.c/clean/sound/core/pcm_compat.c