static ssize_t sound_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { int dev = iminor(file->f_path.dentry->d_inode); int ret = -EINVAL; lock_kernel(); DEB(printk("sound_write(dev=%d, count=%d)\n", dev, count)); switch (dev & 0x0f) { case SND_DEV_SEQ: case SND_DEV_SEQ2: ret = sequencer_write(dev, file, buf, count); break; case SND_DEV_DSP: case SND_DEV_DSP16: case SND_DEV_AUDIO: ret = audio_write(dev, file, buf, count); break; case SND_DEV_MIDIN: ret = MIDIbuf_write(dev, file, buf, count); break; } unlock_kernel(); return ret; }
static ssize_t sound_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { int dev = MINOR(file->f_dentry->d_inode->i_rdev); DEB(printk("sound_write(dev=%d, count=%d)\n", dev, count)); switch (dev & 0x0f) { #ifdef CONFIG_SEQUENCER case SND_DEV_SEQ: case SND_DEV_SEQ2: return sequencer_write(dev, file, buf, count); #endif #ifdef CONFIG_AUDIO case SND_DEV_DSP: case SND_DEV_DSP16: case SND_DEV_AUDIO: return audio_write(dev, file, buf, count); #endif #ifdef CONFIG_MIDI case SND_DEV_MIDIN: return MIDIbuf_write(dev, file, buf, count); #endif } return -EINVAL; }