]> git.vomp.tv Git - makedevenv.git/blob - lbox_border/lbox_border.c
Copy only JPEGs necessary for MVP dongle
[makedevenv.git] / lbox_border / lbox_border.c
1 #include <linux/kernel.h>
2 #include <linux/module.h>
3 #include <linux/proc_fs.h>
4 #include <asm/processor.h>
5 #include <asm/uaccess.h>
6
7 MODULE_LICENSE("GPL");
8 MODULE_AUTHOR("Mark Calderbank");
9
10 static ssize_t do_write(struct file  *file,
11                         const char   *buf,
12                         size_t       length,
13                         loff_t       *offset)
14 {
15   int i;
16   char c;
17   int border = -1;
18
19   for (i=0; i<3 && i<length; i++)
20   {
21     get_user(c, buf+i);
22     if (c < '0' || c > '9') break;
23     if (i == 0) border = 0; else border *= 10;
24     border += c - '0';
25   }
26
27   if (border != -1) asm volatile("mtdcr 0x17b,%0" : : "r" (border));
28   return length;
29 }
30
31 static struct file_operations f_ops =
32 {
33   owner:   THIS_MODULE,
34   write:   do_write
35 };
36
37 int init_module(void)
38 {
39   struct proc_dir_entry *entry;
40   entry = create_proc_entry("lbox_border", S_IWUSR, NULL);
41   if (!entry) return -EIO;
42   entry->proc_fops = &f_ops;
43   MOD_INC_USE_COUNT; /* Just prevent removal - simple */
44   return 0;
45 }
46
47 void cleanup_module(void)
48 {
49   remove_proc_entry("lbox_border", NULL);
50 }
51
52 long __get_user_bad(void)
53 {
54   return 0;
55 }