|
@@ -222,6 +222,31 @@ typedef void (interrupt_handler_t)(void *);
|
|
|
#define MIN(x, y) min(x, y)
|
|
|
#define MAX(x, y) max(x, y)
|
|
|
|
|
|
+/*
|
|
|
+ * Return the absolute value of a number.
|
|
|
+ *
|
|
|
+ * This handles unsigned and signed longs, ints, shorts and chars. For all
|
|
|
+ * input types abs() returns a signed long.
|
|
|
+ *
|
|
|
+ * For 64-bit types, use abs64()
|
|
|
+ */
|
|
|
+#define abs(x) ({ \
|
|
|
+ long ret; \
|
|
|
+ if (sizeof(x) == sizeof(long)) { \
|
|
|
+ long __x = (x); \
|
|
|
+ ret = (__x < 0) ? -__x : __x; \
|
|
|
+ } else { \
|
|
|
+ int __x = (x); \
|
|
|
+ ret = (__x < 0) ? -__x : __x; \
|
|
|
+ } \
|
|
|
+ ret; \
|
|
|
+ })
|
|
|
+
|
|
|
+#define abs64(x) ({ \
|
|
|
+ s64 __x = (x); \
|
|
|
+ (__x < 0) ? -__x : __x; \
|
|
|
+ })
|
|
|
+
|
|
|
#if defined(CONFIG_ENV_IS_EMBEDDED)
|
|
|
#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
|
|
|
#elif ( ((CONFIG_ENV_ADDR+CONFIG_ENV_SIZE) < CONFIG_SYS_MONITOR_BASE) || \
|