#define NEUTRAL16 0x00
-int dma_ioctl(int dev, unsigned int cmd, caddr_t arg);
+int dma_ioctl(int dev, unsigned int cmd, void __user *arg);
static int set_format(int dev, int fmt)
{
buff[i] = table[buff[i]];
}
-int audio_write(int dev, struct file *file, const char *buf, int count)
+int audio_write(int dev, struct file *file, const char __user *buf, int count)
{
int c, p, l, buf_size, used, returned;
int err;
return count;
}
-int audio_read(int dev, struct file *file, char *buf, int count)
+int audio_read(int dev, struct file *file, char __user *buf, int count)
{
int c, p, l;
char *dmabuf;
return count - c;
}
-int audio_ioctl(int dev, struct file *file, unsigned int cmd, caddr_t arg)
+int audio_ioctl(int dev, struct file *file, unsigned int cmd, void __user *arg)
{
int val, count;
unsigned long flags;
struct dma_buffparms *dmap;
+ int __user *p = arg;
dev = dev >> 4;
return 0;
audio_devs[dev]->dmap_out->flags |= DMA_POST | DMA_DIRTY;
sync_output(dev);
- dma_ioctl(dev, SNDCTL_DSP_POST, (caddr_t) 0);
+ dma_ioctl(dev, SNDCTL_DSP_POST, NULL);
return 0;
case SNDCTL_DSP_RESET:
break;
case SNDCTL_DSP_SETFMT:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
val = set_format(dev, val);
break;
break;
case SOUND_PCM_WRITE_RATE:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
val = audio_devs[dev]->d->set_speed(dev, val);
break;
break;
case SNDCTL_DSP_STEREO:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
if (val > 1 || val < 0)
return -EINVAL;
break;
case SOUND_PCM_WRITE_CHANNELS:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
val = audio_devs[dev]->d->set_channels(dev, val);
break;
return (audio_devs[dev]->flags & DMA_DUPLEX) ? 0 : -EIO;
case SNDCTL_DSP_PROFILE:
- if (get_user(val, (int *)arg))
+ if (get_user(val, p))
return -EFAULT;
if (audio_devs[dev]->open_mode & OPEN_WRITE)
audio_devs[dev]->dmap_out->applic_profile = val;
default:
return dma_ioctl(dev, cmd, arg);
}
- return put_user(val, (int *)arg);
+ return put_user(val, p);
}
void audio_init_devices(void)
return bytes | ((count - 1) << 16);
}
-int dma_ioctl(int dev, unsigned int cmd, caddr_t arg)
+int dma_ioctl(int dev, unsigned int cmd, void __user *arg)
{
struct dma_buffparms *dmap_out = audio_devs[dev]->dmap_out;
struct dma_buffparms *dmap_in = audio_devs[dev]->dmap_in;
{
case SNDCTL_DSP_SUBDIVIDE:
ret = 0;
- if (get_user(fact, (int *)arg))
+ if (get_user(fact, (int __user *)arg))
return -EFAULT;
if (audio_devs[dev]->open_mode & OPEN_WRITE)
ret = dma_subdivide(dev, dmap_out, fact);
return 0;
case SNDCTL_DSP_SETTRIGGER:
- if (get_user(bits, (int *)arg))
+ if (get_user(bits, (int __user *)arg))
return -EFAULT;
bits &= audio_devs[dev]->open_mode;
if (audio_devs[dev]->d->trigger == NULL)
case SNDCTL_DSP_SETFRAGMENT:
ret = 0;
- if (get_user(fact, (int *)arg))
+ if (get_user(fact, (int __user *)arg))
return -EFAULT;
if (audio_devs[dev]->open_mode & OPEN_WRITE)
ret = dma_set_fragment(dev, dmap_out, fact);
return -EINVAL;
return audio_devs[dev]->d->ioctl(dev, cmd, arg);
}
- return put_user(ret, (int *)arg);
+ return put_user(ret, (int __user *)arg);
}