| 93 | static __u32 kernel_version = 0; |
| 94 | |
| 95 | static __u32 detect_kernel_version(void) |
| 96 | { |
| 97 | struct utsname name; |
| 98 | int major, minor, release; |
| 99 | int ret; |
| 100 | |
| 101 | uname(&name); |
| 102 | ret = sscanf(name.release, "%d.%d.%d", &major, &minor, &release); |
| 103 | if (ret == 3) { |
| 104 | return KERNEL_VERSION(major, minor, release); |
| 105 | } |
| 106 | |
| 107 | ret = sscanf(name.release, "%d.%d", &major, &minor); |
| 108 | if (ret == 2) { |
| 109 | return KERNEL_VERSION(major, minor, 0); |
| 110 | } |
| 111 | |
| 112 | printf("Couldn't determine kernel version from version string \"%s\"\n", name.release); |
| 113 | return 0; |
| 114 | } |
| 115 | |
| 116 | static hid_device *new_hid_device(void) |
| 117 | { |