#define OSS_SUPPORT_LEVEL 0x1 /* just /dev/sequencer for now */
#if OSS_SUPPORT_LEVEL & OSS_SUPPORT_SEQ
-static int (*midi_load_patch) (int devno, int format, const char *addr,
+static int (*midi_load_patch) (int devno, int format, const char __user *addr,
int offs, int count, int pmgr_flag) = NULL;
#endif /* OSS_SUPPORT_SEQ */
static int
wavefront_send_sample (wavefront_patch_info *header,
- UINT16 *dataptr,
+ UINT16 __user *dataptr,
int data_is_unsigned)
{
UINT16 sample_short;
UINT32 length;
- UINT16 *data_end = 0;
+ UINT16 __user *data_end = 0;
unsigned int i;
const int max_blksize = 4096/2;
unsigned int written;
int initial_skip = 0;
DPRINT (WF_DEBUG_LOAD_PATCH, "sample %sdownload for slot %d, "
- "type %d, %d bytes from 0x%x\n",
+ "type %d, %d bytes from %p\n",
header->size ? "" : "header ",
header->number, header->subkey,
header->size,
- (int) header->dataptr);
+ header->dataptr);
if (header->number == WAVEFRONT_FIND_FREE_SAMPLE_SLOT) {
int x;
}
static int
-wavefront_load_gus_patch (int devno, int format, const char *addr,
+wavefront_load_gus_patch (int devno, int format, const char __user *addr,
int offs, int count, int pmgr_flag)
{
struct patch_info guspatch;
/* Now ship it down */
wavefront_send_sample (&samp,
- (unsigned short *) &(addr)[sizeof_patch],
+ (unsigned short __user *) &(addr)[sizeof_patch],
(guspatch.mode & WAVE_UNSIGNED) ? 1:0);
wavefront_send_patch (&pat);
wavefront_send_program (&prog);
}
static int
-wavefront_load_patch (const char *addr)
+wavefront_load_patch (const char __user *addr)
{
case WF_ST_SAMPLE: /* sample or sample_header, based on patch->size */
if (copy_from_user((unsigned char *) &header.hdr.s,
- (unsigned char *) header.hdrptr,
+ (unsigned char __user *) header.hdrptr,
sizeof (wavefront_sample)))
return -EFAULT;
case WF_ST_MULTISAMPLE:
- if (copy_from_user((unsigned char *) &header.hdr.s,
- (unsigned char *) header.hdrptr,
+ if (copy_from_user(&header.hdr.s, header.hdrptr,
sizeof(wavefront_multisample)))
return -EFAULT;
case WF_ST_ALIAS:
- if (copy_from_user((unsigned char *) &header.hdr.a,
- (unsigned char *) header.hdrptr,
+ if (copy_from_user(&header.hdr.a, header.hdrptr,
sizeof (wavefront_alias)))
return -EFAULT;
return wavefront_send_alias (&header);
case WF_ST_DRUM:
- if (copy_from_user((unsigned char *) &header.hdr.d,
- (unsigned char *) header.hdrptr,
+ if (copy_from_user(&header.hdr.d, header.hdrptr,
sizeof (wavefront_drum)))
return -EFAULT;
return wavefront_send_drum (&header);
case WF_ST_PATCH:
- if (copy_from_user((unsigned char *) &header.hdr.p,
- (unsigned char *) header.hdrptr,
+ if (copy_from_user(&header.hdr.p, header.hdrptr,
sizeof (wavefront_patch)))
return -EFAULT;
return wavefront_send_patch (&header);
case WF_ST_PROGRAM:
- if (copy_from_user((unsigned char *) &header.hdr.pr,
- (unsigned char *) header.hdrptr,
+ if (copy_from_user(&header.hdr.pr, header.hdrptr,
sizeof (wavefront_program)))
return -EFAULT;
switch (cmd) {
case WFCTL_WFCMD:
- if (copy_from_user(&wc, (void *) arg, sizeof (wc)))
+ if (copy_from_user(&wc, (void __user *) arg, sizeof (wc)))
return -EFAULT;
if ((err = wavefront_synth_control (cmd, &wc)) == 0) {
- if (copy_to_user ((void *) arg, &wc, sizeof (wc)))
+ if (copy_to_user ((void __user *) arg, &wc, sizeof (wc)))
return -EFAULT;
}
return err;
case WFCTL_LOAD_SPP:
- return wavefront_load_patch ((const char *) arg);
+ return wavefront_load_patch ((const char __user *) arg);
default:
printk (KERN_WARNING LOGNAME "invalid ioctl %#x\n", cmd);
}
static int
-wavefront_oss_ioctl (int devno, unsigned int cmd, caddr_t arg)
+wavefront_oss_ioctl (int devno, unsigned int cmd, void __user * arg)
{
wavefront_control wc;
switch (cmd) {
case SNDCTL_SYNTH_INFO:
- if(copy_to_user(&((char *) arg)[0], &wavefront_info,
- sizeof (wavefront_info)))
+ if(copy_to_user(arg, &wavefront_info, sizeof (wavefront_info)))
return -EFAULT;
return 0;
}
int
-wavefront_oss_load_patch (int devno, int format, const char *addr,
+wavefront_oss_load_patch (int devno, int format, const char __user *addr,
int offs, int count, int pmgr_flag)
{
return -(EINVAL);
}
if (copy_from_user(page_data,
- (unsigned char *)r->data[3],
+ (unsigned char __user *)r->data[3],
r->data[2]))
return -EFAULT;
pd = page_data;