This source file includes following definitions.
- mouse_open
- mouse_init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <linux/fs.h>
18 #include <linux/errno.h>
19 #include <linux/mouse.h>
20 #include <linux/config.h>
21
22
23
24
25
26 extern struct file_operations bus_mouse_fops;
27 extern struct file_operations psaux_fops;
28 extern struct file_operations ms_bus_mouse_fops;
29 extern struct file_operations atixl_busmouse_fops;
30
31 extern unsigned long bus_mouse_init(unsigned long);
32 extern unsigned long psaux_init(unsigned long);
33 extern unsigned long ms_bus_mouse_init(unsigned long);
34 extern unsigned long atixl_busmouse_init(unsigned long);
35
36 static int mouse_open(struct inode * inode, struct file * file)
37 {
38 int minor = MINOR(inode->i_rdev);
39
40 switch (minor) {
41 #ifdef CONFIG_BUSMOUSE
42 case BUSMOUSE_MINOR:
43 file->f_op = &bus_mouse_fops;
44 break;
45 #endif
46 #ifdef CONFIG_PSMOUSE
47 case PSMOUSE_MINOR:
48 file->f_op = &psaux_fops;
49 break;
50 #endif
51 #ifdef CONFIG_MS_BUSMOUSE
52 case MS_BUSMOUSE_MINOR:
53 file->f_op = &ms_bus_mouse_fops;
54 break;
55 #endif
56 #ifdef CONFIG_ATIXL_BUSMOUSE
57 case ATIXL_BUSMOUSE_MINOR:
58 file->f_op = &atixl_busmouse_fops;
59 break;
60 #endif
61 default:
62 return -ENODEV;
63 }
64 return file->f_op->open(inode,file);
65 }
66
67 static struct file_operations mouse_fops = {
68 NULL,
69 NULL,
70 NULL,
71 NULL,
72 NULL,
73 NULL,
74 NULL,
75 mouse_open,
76 NULL
77 };
78
79 unsigned long mouse_init(unsigned long kmem_start)
80 {
81 #ifdef CONFIG_BUSMOUSE
82 kmem_start = bus_mouse_init(kmem_start);
83 #endif
84 #ifdef CONFIG_PSMOUSE
85 kmem_start = psaux_init(kmem_start);
86 #endif
87 #ifdef CONFIG_MS_BUSMOUSE
88 kmem_start = ms_bus_mouse_init(kmem_start);
89 #endif
90 #ifdef CONFIG_ATIXL_BUSMOUSE
91 kmem_start = atixl_busmouse_init(kmem_start);
92 #endif
93 chrdev_fops[10] = &mouse_fops;
94 return kmem_start;
95 }