#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main (int argc, char *argv[]) { int i, fd, ret; struct input_event ev[64]; if ((fd = open(argv[1], O_RDWR)) < 0) { perror("Couldn't open input device"); return 1; } int version; if (ioctl(fd, EVIOCGVERSION, &version)) { perror("evdev ioctl"); } /* the EVIOCGVERSION ioctl() returns an int */ /* so we unpack it and display it */ printf("evdev driver version is %d.%d.%d\n", version >> 16, (version >> 8) & 0xff, version & 0xff); int codes[2]; for (i=0; i<130; i++) { codes[0] = i; if(ioctl(fd, EVIOCSKEYCODE, codes)) { perror("evdev ioctl"); } printf("[0]= %d, [1] = %d\n", codes[0], codes[1]); } codes[0] = 58; /* M keycap */ codes[1] = 49; /* assign to N */ if(ioctl(fd, EVIOCSKEYCODE, codes)) { perror("evdev ioctl"); } printf("Testing changes\n"); for (i=49; i<60; i++) { codes[0] = i; if(ioctl(fd, EVIOCSKEYCODE, codes)) { perror("evdev ioctl"); } printf("[0]= %d, [1] = %d\n", codes[0], codes[1]); } return 0; }