Update of /cvsroot/alsa/alsa-kernel/core/oss In directory sc8-pr-cvs1:/tmp/cvs-serv4916
Modified Files: mixer_oss.c pcm_oss.c Log Message: - added OSS_ALSAEMULVER ioctl - cleanups for put_user() Index: mixer_oss.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/oss/mixer_oss.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- mixer_oss.c 30 Oct 2003 11:29:26 -0000 1.26 +++ mixer_oss.c 9 Dec 2003 11:25:01 -0000 1.27 @@ -30,6 +30,8 @@ #include <sound/mixer_oss.h> #include <linux/soundcard.h> +#define OSS_ALSAEMULVER _SIOR ('M', 249, int) + MODULE_AUTHOR("Jaroslav Kysela <[EMAIL PROTECTED]>"); MODULE_DESCRIPTION("Mixer OSS emulation for ALSA."); MODULE_LICENSE("GPL"); @@ -306,34 +308,36 @@ tmp = snd_mixer_oss_set_recsrc(fmixer, tmp); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); case OSS_GETVERSION: return put_user(SNDRV_OSS_VERSION, (int *) arg); + case OSS_ALSAEMULVER: + return put_user(1, (int *) arg); case SOUND_MIXER_READ_DEVMASK: tmp = snd_mixer_oss_devmask(fmixer); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); case SOUND_MIXER_READ_STEREODEVS: tmp = snd_mixer_oss_stereodevs(fmixer); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); case SOUND_MIXER_READ_RECMASK: tmp = snd_mixer_oss_recmask(fmixer); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); case SOUND_MIXER_READ_CAPS: tmp = snd_mixer_oss_caps(fmixer); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); case SOUND_MIXER_READ_RECSRC: tmp = snd_mixer_oss_get_recsrc(fmixer); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); } } if (cmd & SIOC_IN) { @@ -342,12 +346,12 @@ tmp = snd_mixer_oss_set_volume(fmixer, cmd & 0xff, tmp); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); } else if (cmd & SIOC_OUT) { tmp = snd_mixer_oss_get_volume(fmixer, cmd & 0xff); if (tmp < 0) return tmp; - return put_user(tmp, (int *)arg) ? -EFAULT : 0; + return put_user(tmp, (int *)arg); } return -ENXIO; } Index: pcm_oss.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/oss/pcm_oss.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- pcm_oss.c 1 Dec 2003 13:15:00 -0000 1.60 +++ pcm_oss.c 9 Dec 2003 11:25:01 -0000 1.61 @@ -40,6 +40,8 @@ #include <linux/soundcard.h> #include <sound/initval.h> +#define OSS_ALSAEMULVER _SIOR ('M', 249, int) + static int dsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0}; static int adsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1}; static int nonblock_open; @@ -1871,7 +1873,9 @@ pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO); if (cmd == OSS_GETVERSION) - return put_user(SNDRV_OSS_VERSION, (int *)arg) ? -EFAULT : 0; + return put_user(SNDRV_OSS_VERSION, (int *)arg); + if (cmd == OSS_ALSAEMULVER) + return put_user(1, (int *)arg); #if defined(CONFIG_SND_MIXER_OSS) || (defined(MODULE) && defined(CONFIG_SND_MIXER_OSS_MODULE)) if (((cmd >> 8) & 0xff) == 'M') { /* mixer ioctl - for OSS compatibility */ snd_pcm_substream_t *substream; @@ -1900,48 +1904,48 @@ return -EFAULT; if ((res = snd_pcm_oss_set_rate(pcm_oss_file, res))<0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SOUND_PCM_READ_RATE: res = snd_pcm_oss_get_rate(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_STEREO: if (get_user(res, (int *)arg)) return -EFAULT; res = res > 0 ? 2 : 1; if ((res = snd_pcm_oss_set_channels(pcm_oss_file, res)) < 0) return res; - return put_user(--res, (int *)arg) ? -EFAULT : 0; + return put_user(--res, (int *)arg); case SNDCTL_DSP_GETBLKSIZE: res = snd_pcm_oss_get_block_size(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_SETFMT: if (get_user(res, (int *)arg)) return -EFAULT; res = snd_pcm_oss_set_format(pcm_oss_file, res); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SOUND_PCM_READ_BITS: res = snd_pcm_oss_get_format(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_CHANNELS: if (get_user(res, (int *)arg)) return -EFAULT; res = snd_pcm_oss_set_channels(pcm_oss_file, res); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SOUND_PCM_READ_CHANNELS: res = snd_pcm_oss_get_channels(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SOUND_PCM_WRITE_FILTER: case SOUND_PCM_READ_FILTER: return -EIO; @@ -1953,7 +1957,7 @@ res = snd_pcm_oss_set_subdivide(pcm_oss_file, res); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_SETFRAGMENT: if (get_user(res, (int *)arg)) return -EFAULT; @@ -1962,7 +1966,7 @@ res = snd_pcm_oss_get_formats(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_GETOSPACE: case SNDCTL_DSP_GETISPACE: return snd_pcm_oss_get_space(pcm_oss_file, @@ -1975,12 +1979,12 @@ res = snd_pcm_oss_get_caps(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_GETTRIGGER: res = snd_pcm_oss_get_trigger(pcm_oss_file); if (res < 0) return res; - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_SETTRIGGER: if (get_user(res, (int *)arg)) return -EFAULT; @@ -2011,7 +2015,7 @@ put_user(0, (int *)arg); return res; } - return put_user(res, (int *)arg) ? -EFAULT : 0; + return put_user(res, (int *)arg); case SNDCTL_DSP_PROFILE: return 0; /* silently ignore */ default: ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog