mirror of https://gitee.com/openkylin/linux.git
staging: vme_user: remove forward declarations
Reorder code so that forward declarations are not needed. Signed-off-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com> Cc: Igor Alekseev <igor.alekseev@itep.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
07e9e619db
commit
e4aea6aa03
|
@ -116,44 +116,11 @@ static const int type[VME_DEVS] = { MASTER_MINOR, MASTER_MINOR,
|
|||
CONTROL_MINOR
|
||||
};
|
||||
|
||||
|
||||
static int vme_user_open(struct inode *, struct file *);
|
||||
static int vme_user_release(struct inode *, struct file *);
|
||||
static ssize_t vme_user_read(struct file *, char __user *, size_t, loff_t *);
|
||||
static ssize_t vme_user_write(struct file *, const char __user *, size_t,
|
||||
loff_t *);
|
||||
static loff_t vme_user_llseek(struct file *, loff_t, int);
|
||||
static long vme_user_unlocked_ioctl(struct file *, unsigned int, unsigned long);
|
||||
static int vme_user_mmap(struct file *file, struct vm_area_struct *vma);
|
||||
|
||||
static void vme_user_vm_open(struct vm_area_struct *vma);
|
||||
static void vme_user_vm_close(struct vm_area_struct *vma);
|
||||
|
||||
static int vme_user_match(struct vme_dev *);
|
||||
static int vme_user_probe(struct vme_dev *);
|
||||
static int vme_user_remove(struct vme_dev *);
|
||||
|
||||
static const struct file_operations vme_user_fops = {
|
||||
.open = vme_user_open,
|
||||
.release = vme_user_release,
|
||||
.read = vme_user_read,
|
||||
.write = vme_user_write,
|
||||
.llseek = vme_user_llseek,
|
||||
.unlocked_ioctl = vme_user_unlocked_ioctl,
|
||||
.compat_ioctl = vme_user_unlocked_ioctl,
|
||||
.mmap = vme_user_mmap,
|
||||
};
|
||||
|
||||
struct vme_user_vma_priv {
|
||||
unsigned int minor;
|
||||
atomic_t refcnt;
|
||||
};
|
||||
|
||||
static const struct vm_operations_struct vme_user_vm_ops = {
|
||||
.open = vme_user_vm_open,
|
||||
.close = vme_user_vm_close,
|
||||
};
|
||||
|
||||
|
||||
static int vme_user_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
|
@ -582,6 +549,11 @@ static void vme_user_vm_close(struct vm_area_struct *vma)
|
|||
kfree(vma_priv);
|
||||
}
|
||||
|
||||
static const struct vm_operations_struct vme_user_vm_ops = {
|
||||
.open = vme_user_vm_open,
|
||||
.close = vme_user_vm_close,
|
||||
};
|
||||
|
||||
static int vme_user_master_mmap(unsigned int minor, struct vm_area_struct *vma)
|
||||
{
|
||||
int err;
|
||||
|
@ -623,6 +595,16 @@ static int vme_user_mmap(struct file *file, struct vm_area_struct *vma)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
static const struct file_operations vme_user_fops = {
|
||||
.open = vme_user_open,
|
||||
.release = vme_user_release,
|
||||
.read = vme_user_read,
|
||||
.write = vme_user_write,
|
||||
.llseek = vme_user_llseek,
|
||||
.unlocked_ioctl = vme_user_unlocked_ioctl,
|
||||
.compat_ioctl = vme_user_unlocked_ioctl,
|
||||
.mmap = vme_user_mmap,
|
||||
};
|
||||
|
||||
/*
|
||||
* Unallocate a previously allocated buffer
|
||||
|
@ -649,52 +631,6 @@ static void buf_unalloc(int num)
|
|||
}
|
||||
}
|
||||
|
||||
static struct vme_driver vme_user_driver = {
|
||||
.name = driver_name,
|
||||
.match = vme_user_match,
|
||||
.probe = vme_user_probe,
|
||||
.remove = vme_user_remove,
|
||||
};
|
||||
|
||||
|
||||
static int __init vme_user_init(void)
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
pr_info("VME User Space Access Driver\n");
|
||||
|
||||
if (bus_num == 0) {
|
||||
pr_err("No cards, skipping registration\n");
|
||||
retval = -ENODEV;
|
||||
goto err_nocard;
|
||||
}
|
||||
|
||||
/* Let's start by supporting one bus, we can support more than one
|
||||
* in future revisions if that ever becomes necessary.
|
||||
*/
|
||||
if (bus_num > VME_USER_BUS_MAX) {
|
||||
pr_err("Driver only able to handle %d buses\n",
|
||||
VME_USER_BUS_MAX);
|
||||
bus_num = VME_USER_BUS_MAX;
|
||||
}
|
||||
|
||||
/*
|
||||
* Here we just register the maximum number of devices we can and
|
||||
* leave vme_user_match() to allow only 1 to go through to probe().
|
||||
* This way, if we later want to allow multiple user access devices,
|
||||
* we just change the code in vme_user_match().
|
||||
*/
|
||||
retval = vme_register_driver(&vme_user_driver, VME_MAX_SLOTS);
|
||||
if (retval != 0)
|
||||
goto err_reg;
|
||||
|
||||
return retval;
|
||||
|
||||
err_reg:
|
||||
err_nocard:
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int vme_user_match(struct vme_dev *vdev)
|
||||
{
|
||||
int i;
|
||||
|
@ -916,6 +852,51 @@ static int vme_user_remove(struct vme_dev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct vme_driver vme_user_driver = {
|
||||
.name = driver_name,
|
||||
.match = vme_user_match,
|
||||
.probe = vme_user_probe,
|
||||
.remove = vme_user_remove,
|
||||
};
|
||||
|
||||
static int __init vme_user_init(void)
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
pr_info("VME User Space Access Driver\n");
|
||||
|
||||
if (bus_num == 0) {
|
||||
pr_err("No cards, skipping registration\n");
|
||||
retval = -ENODEV;
|
||||
goto err_nocard;
|
||||
}
|
||||
|
||||
/* Let's start by supporting one bus, we can support more than one
|
||||
* in future revisions if that ever becomes necessary.
|
||||
*/
|
||||
if (bus_num > VME_USER_BUS_MAX) {
|
||||
pr_err("Driver only able to handle %d buses\n",
|
||||
VME_USER_BUS_MAX);
|
||||
bus_num = VME_USER_BUS_MAX;
|
||||
}
|
||||
|
||||
/*
|
||||
* Here we just register the maximum number of devices we can and
|
||||
* leave vme_user_match() to allow only 1 to go through to probe().
|
||||
* This way, if we later want to allow multiple user access devices,
|
||||
* we just change the code in vme_user_match().
|
||||
*/
|
||||
retval = vme_register_driver(&vme_user_driver, VME_MAX_SLOTS);
|
||||
if (retval != 0)
|
||||
goto err_reg;
|
||||
|
||||
return retval;
|
||||
|
||||
err_reg:
|
||||
err_nocard:
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void __exit vme_user_exit(void)
|
||||
{
|
||||
vme_unregister_driver(&vme_user_driver);
|
||||
|
|
Loading…
Reference in New Issue