[PATCH libevdev 2/6] Move some functions/macros between libevdev-int.h and libevdev-util.h
Peter Hutterer
peter.hutterer at who-t.net
Wed Mar 5 20:44:26 PST 2014
This allows libevdev-util.h to be used by tests, it no longer relies on
libevdev internal structs.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
libevdev/libevdev-int.h | 72 ++++++++++++++++++++++++++++++++++++-----------
libevdev/libevdev-util.h | 73 +++++++++++-------------------------------------
2 files changed, 73 insertions(+), 72 deletions(-)
diff --git a/libevdev/libevdev-int.h b/libevdev/libevdev-int.h
index 2bc8750..5ff6026 100644
--- a/libevdev/libevdev-int.h
+++ b/libevdev/libevdev-int.h
@@ -29,10 +29,8 @@
#include <stdbool.h>
#include <errno.h>
#include "libevdev.h"
+#include "libevdev-util.h"
-#define LONG_BITS (sizeof(long) * 8)
-#define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
-#define ARRAY_LENGTH(a) (sizeof(a) / (sizeof((a)[0])))
#define MAX_NAME 256
#define MAX_SLOTS 60
#define ABS_MT_MIN ABS_MT_SLOT
@@ -42,19 +40,6 @@
#define LIBEVDEV_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))
#define ALIAS(_to) __attribute__((alias(#_to)))
-#undef min
-#undef max
-#define min(a,b) \
- ({ __typeof__ (a) _a = (a); \
- __typeof__ (b) _b = (b); \
- _a > _b ? _b : _a; \
- })
-#define max(a,b) \
- ({ __typeof__ (a) _a = (a); \
- __typeof__ (b) _b = (b); \
- _a > _b ? _a : _b; \
- })
-
/**
* Sync state machine:
* default state: SYNC_NONE
@@ -279,5 +264,60 @@ queue_set_num_elements(struct libevdev *dev, size_t nelem)
return 0;
}
+
+#define max_mask(uc, lc) \
+ case EV_##uc: \
+ *mask = dev->lc##_bits; \
+ max = libevdev_event_type_get_max(type); \
+ break;
+
+
+static inline int
+type_to_mask_const(const struct libevdev *dev, unsigned int type, const unsigned long **mask)
+{
+ int max;
+
+ switch(type) {
+ max_mask(ABS, abs);
+ max_mask(REL, rel);
+ max_mask(KEY, key);
+ max_mask(LED, led);
+ max_mask(MSC, msc);
+ max_mask(SW, sw);
+ max_mask(FF, ff);
+ max_mask(REP, rep);
+ max_mask(SND, snd);
+ default:
+ max = -1;
+ break;
+ }
+
+ return max;
+}
+
+static inline int
+type_to_mask(struct libevdev *dev, unsigned int type, unsigned long **mask)
+{
+ int max;
+
+ switch(type) {
+ max_mask(ABS, abs);
+ max_mask(REL, rel);
+ max_mask(KEY, key);
+ max_mask(LED, led);
+ max_mask(MSC, msc);
+ max_mask(SW, sw);
+ max_mask(FF, ff);
+ max_mask(REP, rep);
+ max_mask(SND, snd);
+ default:
+ max = -1;
+ break;
+ }
+
+ return max;
+}
+
+#undef max_mask
#endif
diff --git a/libevdev/libevdev-util.h b/libevdev/libevdev-util.h
index ddcf5e3..31c1a14 100644
--- a/libevdev/libevdev-util.h
+++ b/libevdev/libevdev-util.h
@@ -26,10 +26,26 @@
#include <config.h>
#include <stdbool.h>
#include <string.h>
-#include "libevdev-int.h"
+#define LONG_BITS (sizeof(long) * 8)
+#define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
+#define ARRAY_LENGTH(a) (sizeof(a) / (sizeof((a)[0])))
#define unlikely(x) (__builtin_expect(!!(x),0))
+#undef min
+#undef max
+#define min(a,b) \
+ ({ __typeof__ (a) _a = (a); \
+ __typeof__ (b) _b = (b); \
+ _a > _b ? _b : _a; \
+ })
+#define max(a,b) \
+ ({ __typeof__ (a) _a = (a); \
+ __typeof__ (b) _b = (b); \
+ _a > _b ? _a : _b; \
+ })
+
+
static inline bool
startswith(const char *str, size_t len, const char *prefix, size_t plen)
{
@@ -63,59 +79,4 @@ set_bit_state(unsigned long *array, int bit, int state)
clear_bit(array, bit);
}
-#define max_mask(uc, lc) \
- case EV_##uc: \
- *mask = dev->lc##_bits; \
- max = libevdev_event_type_get_max(type); \
- break;
-
-
-static inline int
-type_to_mask_const(const struct libevdev *dev, unsigned int type, const unsigned long **mask)
-{
- int max;
-
- switch(type) {
- max_mask(ABS, abs);
- max_mask(REL, rel);
- max_mask(KEY, key);
- max_mask(LED, led);
- max_mask(MSC, msc);
- max_mask(SW, sw);
- max_mask(FF, ff);
- max_mask(REP, rep);
- max_mask(SND, snd);
- default:
- max = -1;
- break;
- }
-
- return max;
-}
-
-static inline int
-type_to_mask(struct libevdev *dev, unsigned int type, unsigned long **mask)
-{
- int max;
-
- switch(type) {
- max_mask(ABS, abs);
- max_mask(REL, rel);
- max_mask(KEY, key);
- max_mask(LED, led);
- max_mask(MSC, msc);
- max_mask(SW, sw);
- max_mask(FF, ff);
- max_mask(REP, rep);
- max_mask(SND, snd);
- default:
- max = -1;
- break;
- }
-
- return max;
-}
-
-#undef max_mask
-
#endif
--
1.8.5.3
More information about the Input-tools
mailing list