Tue, 01 Mar 2011 21:33:32 +0000
Add keyboard patch from Andrew Warkentin <andreww591 gmail com>
I fixed the keyboard in FreeBee. I looked at the keyboard driver source available on a few sites, and it appears that BEGKBD/KEY_BEGIN_KEYBOARD is only supposed to be sent after the end of mouse data, and that KLAST/KEY_LIST_END is not a separate code, but a flag that is set on the last non-KALLUP/KEY_ALL_UP code in a list. I have attached a patch that implements these changes. I have also attached a patch that adds the 60Hz timer interrupt (I'm not sure if it's totally correct, though, since the cursor blinks rather slowly).
Received-From: Andrew Warkentin <andreww591 gmail com>
Signed-Off-By: Philip Pemberton <philpem@philpem.me.uk>
philpem@88 | 1 | #ifndef _UTILS_H |
philpem@88 | 2 | #define _UTILS_H |
philpem@71 | 3 | |
philpem@89 | 4 | #include <stdio.h> |
philpem@89 | 5 | |
philpem@71 | 6 | #ifndef NDEBUG |
philpem@71 | 7 | /// Log a message to stderr |
philpem@71 | 8 | # define LOG(x, ...) do { fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0) |
philpem@71 | 9 | /// Log a message to stderr if 'cond' is true |
philpem@71 | 10 | # define LOG_IF(cond, x, ...) do { if (cond) fprintf(stderr, "%s:%d:%s(): " x "\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__); } while (0) |
philpem@71 | 11 | #else |
philpem@71 | 12 | #define LOG(x, ...) |
philpem@71 | 13 | #define LOG_IF(cond, x, ...) |
philpem@71 | 14 | #endif |
philpem@71 | 15 | |
philpem@88 | 16 | /// Get the number of elements in an array |
philpem@88 | 17 | #define NELEMS(x) (sizeof(x)/sizeof(x[0])) |
philpem@88 | 18 | |
philpem@71 | 19 | #endif // _H_UTILS |