Remove kernel-specific parts of ros/common.h (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 3 Apr 2017 19:59:57 +0000 (15:59 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 3 May 2017 16:13:02 +0000 (12:13 -0400)
Parts of ros/common.h were accessed only by the kernel.  This developed
over time.  We can put those in k/i/common.h instead of having them
in the kernel interface file.

Reinstall your kernel headers.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/common.h
kern/include/ros/common.h

index 093f2ae..61d2ae6 100644 (file)
@@ -8,3 +8,28 @@
 #endif
 
 #define SIZE_MAX        (~(size_t)0)
+
+// Efficient min and max operations
+#define MIN(_a, _b)                                            \
+({                                                             \
+       typeof(_a) __a = (_a);                                  \
+       typeof(_b) __b = (_b);                                  \
+       __a <= __b ? __a : __b;                                 \
+})
+#define MAX(_a, _b)                                            \
+({                                                             \
+       typeof(_a) __a = (_a);                                  \
+       typeof(_b) __b = (_b);                                  \
+       __a >= __b ? __a : __b;                                 \
+})
+
+/* Test for alignment, e.g. 2^6 */
+#define ALIGNED(p, a)  (!(((uintptr_t)(p)) & ((a)-1)))
+/* Aligns x up to the mask, e.g. (2^6 - 1) (round up if any mask bits are set)*/
+#define __ALIGN_MASK(x, mask) (((uintptr_t)(x) + (mask)) & ~(mask))
+/* Aligns x up to the alignment, e.g. 2^6. */
+#define ALIGN(x, a) ((typeof(x)) __ALIGN_MASK(x, (a) - 1))
+/* Will return false for 0.  Debatable, based on what you want. */
+#define IS_PWR2(x) ((x) && !((x) & (x - 1)))
+
+#define ARRAY_SIZE(x) COUNT_OF(x)
index eda5dab..f130e9b 100644 (file)
@@ -40,36 +40,6 @@ typedef unsigned long uintreg_t;
 
 #define COUNT_OF(x) (sizeof((x))/sizeof((x)[0]))
 
-// Efficient min and max operations
-#ifdef ROS_KERNEL /* Glibc or other user libs have their own */
-#define MIN(_a, _b)                                            \
-({                                                             \
-       typeof(_a) __a = (_a);                                  \
-       typeof(_b) __b = (_b);                                  \
-       __a <= __b ? __a : __b;                                 \
-})
-#define MAX(_a, _b)                                            \
-({                                                             \
-       typeof(_a) __a = (_a);                                  \
-       typeof(_b) __b = (_b);                                  \
-       __a >= __b ? __a : __b;                                 \
-})
-
-/* Other kernel-only includes */
-
-/* Test for alignment, e.g. 2^6 */
-#define ALIGNED(p, a)  (!(((uintptr_t)(p)) & ((a)-1)))
-/* Aligns x up to the mask, e.g. (2^6 - 1) (round up if any mask bits are set)*/
-#define __ALIGN_MASK(x, mask) (((uintptr_t)(x) + (mask)) & ~(mask))
-/* Aligns x up to the alignment, e.g. 2^6. */
-#define ALIGN(x, a) ((typeof(x)) __ALIGN_MASK(x, (a) - 1))
-/* Will return false for 0.  Debatable, based on what you want. */
-#define IS_PWR2(x) ((x) && !((x) & (x - 1)))
-
-#define ARRAY_SIZE(x) COUNT_OF(x)
-
-#endif
-
 #define ZERO_DATA(s) memset(&(s), 0, sizeof(s))
 
 /* Rounding operations (efficient when n is a power of 2)