The new wacom-util.h should be the place to store defines which
may be handy to use anywhere. At the moment this includes things
like ARRAY_SIZE, bit manipulation, and mask manipulation defines.

Signed-off-by: Jason Gerecke <killert...@gmail.com>
---
Changes from v3:

 * Not present in v3

 include/wacom-util.h |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/xf86Wacom.h      |    3 +-
 src/xf86WacomDefs.h  |   24 -----------------------
 tools/xsetwacom.c    |   13 +++++------
 4 files changed, 58 insertions(+), 33 deletions(-)
 create mode 100644 include/wacom-util.h

diff --git a/include/wacom-util.h b/include/wacom-util.h
new file mode 100644
index 0000000..ed42947
--- /dev/null
+++ b/include/wacom-util.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011 by Jason Gerecke, Wacom. <jason.gere...@wacom.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef WACOM_UTIL_H_
+#define WACOM_UTIL_H_
+
+/**
+ * Get the number of elements in an array
+ */
+#define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
+
+/* to access kernel defined bits */
+#define BIT(x)         (1UL<<((x) & (BITS_PER_LONG - 1)))
+#define BITS_PER_LONG  (sizeof(long) * 8)
+#define NBITS(x)       ((((x)-1)/BITS_PER_LONG)+1)
+#define ISBITSET(x,y)  ((x)[LONG(y)] & BIT(y))
+#define SETBIT(x,y)    ((x)[LONG(y)] |= BIT(y))
+#define CLEARBIT(x,y)  ((x)[LONG(y)] &= ~BIT(y))
+#define OFF(x)         ((x)%BITS_PER_LONG)
+#define LONG(x)                ((x)/BITS_PER_LONG)
+
+/**
+ * Test if the mask is set in the given bitfield.
+ * @return TRUE if set or FALSE otherwise.
+ */
+#define MaskIsSet(bitfield, mask) !!(((bitfield) & (mask)) == (mask))
+/**
+ * Set the given mask for the given bitfield.
+ */
+#define MaskSet(bitfield, mask) ((bitfield) |= (mask))
+/**
+ * Clear the given mask from the given bitfield
+ */
+#define MaskClear(bitfield, mask) ((bitfield) &= ~(mask))
+
+#endif /* WACOM_UTIL_H_ */
diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h
index 60353dc..c1b55c9 100644
--- a/src/xf86Wacom.h
+++ b/src/xf86Wacom.h
@@ -23,10 +23,9 @@
 #include <xorg-server.h>
 #include <xorgVersion.h>
 
+#include <wacom-util.h>
 #include "Xwacom.h"
 
-#define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
-
 /* max number of input events to read in one read call */
 #define MAX_EVENTS 50
 
diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
index 94eee2e..cf16648 100644
--- a/src/xf86WacomDefs.h
+++ b/src/xf86WacomDefs.h
@@ -94,30 +94,6 @@
 #define ERASER_PROX     4
 #define OTHER_PROX      1
 
-/* to access kernel defined bits */
-#define BIT(x)         (1UL<<((x) & (BITS_PER_LONG - 1)))
-#define BITS_PER_LONG  (sizeof(long) * 8)
-#define NBITS(x)       ((((x)-1)/BITS_PER_LONG)+1)
-#define ISBITSET(x,y)  ((x)[LONG(y)] & BIT(y))
-#define SETBIT(x,y)    ((x)[LONG(y)] |= BIT(y))
-#define CLEARBIT(x,y)  ((x)[LONG(y)] &= ~BIT(y))
-#define OFF(x)         ((x)%BITS_PER_LONG)
-#define LONG(x)                ((x)/BITS_PER_LONG)
-
-/**
- * Test if the mask is set in the given bitfield.
- * @return TRUE if set or FALSE otherwise.
- */
-#define MaskIsSet(bitfield, mask) !!(((bitfield) & (mask)) == (mask))
-/**
- * Set the given mask for the given bitfield.
- */
-#define MaskSet(bitfield, mask) ((bitfield) |= (mask))
-/**
- * Clear the given mask from the given bitfield
- */
-#define MaskClear(bitfield, mask) ((bitfield) &= ~(mask))
-
 /******************************************************************************
  * Forward Declarations
  *****************************************************************************/
diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c
index 9d47ea6..a0056a7 100644
--- a/tools/xsetwacom.c
+++ b/tools/xsetwacom.c
@@ -22,6 +22,7 @@
 #endif
 
 #include <wacom-properties.h>
+#include <wacom-util.h>
 #include "Xwacom.h"
 
 #include <errno.h>
@@ -43,8 +44,6 @@
 #define TRACE(...) \
        if (verbose) fprintf(stderr, "... " __VA_ARGS__)
 
-#define ArrayLength(a) ((unsigned int)(sizeof(a) / (sizeof((a)[0]))))
-
 static int verbose = False;
 
 enum printformat {
@@ -785,11 +784,11 @@ static void list_mod(Display *dpy)
 {
        struct modifier *m = modifiers;
 
-       printf("%d modifiers are supported:\n", ArrayLength(modifiers) - 1);
+       printf("%d modifiers are supported:\n", ARRAY_SIZE(modifiers) - 1);
        while(m->name)
                printf("        %s\n", m++->name);
 
-       printf("\n%d specialkeys are supported:\n", ArrayLength(specialkeys) - 
1);
+       printf("\n%d specialkeys are supported:\n", ARRAY_SIZE(specialkeys) - 
1);
        m = specialkeys;
        while(m->name)
                printf("        %s\n", m++->name);
@@ -1948,7 +1947,7 @@ static void _set_matrix_prop(Display *dpy, XDevice *dev, 
const float fmatrix[9])
 
        /* XI1 expects 32 bit properties (including float) as long,
         * regardless of architecture */
-       for (i = 0; i < sizeof(matrix)/sizeof(matrix[0]); i++)
+       for (i = 0; i < ARRAY_SIZE(matrix); i++)
                *(float*)(matrix + i) = fmatrix[i];
 
        XGetDeviceProperty(dpy, dev, matrix_prop, 0, 9, False,
@@ -2448,8 +2447,8 @@ static void test_parameter_number(void)
         * deprecated them.
         * Numbers include trailing NULL entry.
         */
-       assert(ArrayLength(parameters) == 34);
-       assert(ArrayLength(deprecated_parameters) == 17);
+       assert(ARRAY_SIZE(parameters) == 34);
+       assert(ARRAY_SIZE(deprecated_parameters) == 17);
 }
 
 /**
-- 
1.7.6


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to