diff options
Diffstat (limited to 'include/common.h')
| -rw-r--r-- | include/common.h | 25 | 
1 files changed, 21 insertions, 4 deletions
| diff --git a/include/common.h b/include/common.h index 8a1f3e406..40e4b077f 100644 --- a/include/common.h +++ b/include/common.h @@ -199,18 +199,35 @@ typedef void (interrupt_handler_t)(void *);   * General Purpose Utilities   */  #define min(X, Y)				\ -	({ typeof (X) __x = (X);		\ -		typeof (Y) __y = (Y);		\ +	({ typeof(X) __x = (X);			\ +		typeof(Y) __y = (Y);		\  		(__x < __y) ? __x : __y; })  #define max(X, Y)				\ -	({ typeof (X) __x = (X);		\ -		typeof (Y) __y = (Y);		\ +	({ typeof(X) __x = (X);			\ +		typeof(Y) __y = (Y);		\  		(__x > __y) ? __x : __y; })  #define MIN(x, y)  min(x, y)  #define MAX(x, y)  max(x, y) +#define min3(X, Y, Z)				\ +	({ typeof(X) __x = (X);			\ +		typeof(Y) __y = (Y);		\ +		typeof(Z) __z = (Z);		\ +		__x < __y ? (__x < __z ? __x : __z) :	\ +		(__y < __z ? __y : __z); }) + +#define max3(X, Y, Z)				\ +	({ typeof(X) __x = (X);			\ +		typeof(Y) __y = (Y);		\ +		typeof(Z) __z = (Z);		\ +		__x > __y ? (__x > __z ? __x : __z) :	\ +		(__y > __z ? __y : __z); }) + +#define MIN3(x, y, z)  min3(x, y, z) +#define MAX3(x, y, z)  max3(x, y, z) +  /*   * Return the absolute value of a number.   * |