diff options
Diffstat (limited to 'include/common.h')
| -rw-r--r-- | include/common.h | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/include/common.h b/include/common.h index 4b5841ef4..ff7126d35 100644 --- a/include/common.h +++ b/include/common.h @@ -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) || \ |