From: Jeremy Fitzhardinge Date: Wed, 30 Jan 2008 12:32:42 +0000 (+0100) Subject: x86: add _AT() macro to conditionally cast X-Git-Tag: v2.6.25-rc1~1143^2~409 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=74ef649fe847fdfbd3e1732d21b923f59ca04e8c;p=~emulex%2Finfiniband.git x86: add _AT() macro to conditionally cast # HG changeset patch # User Jeremy Fitzhardinge # Date 1199317452 28800 # Node ID f7e7db3facd9406545103164f9be8f9ba1a2b549 # Parent 4d9a413a0f4c1d98dbea704f0366457b5117045d x86: add _AT() macro to conditionally cast Define _AT(type, value) to conditionally cast a value when compiling C code, but not when used in assembler. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- diff --git a/include/linux/const.h b/include/linux/const.h index 07b300bfe34..c22c707c455 100644 --- a/include/linux/const.h +++ b/include/linux/const.h @@ -7,13 +7,18 @@ * C code. Therefore we cannot annotate them always with * 'UL' and other type specifiers unilaterally. We * use the following macros to deal with this. + * + * Similarly, _AT() will cast an expression with a type in C, but + * leave it unchanged in asm. */ #ifdef __ASSEMBLY__ #define _AC(X,Y) X +#define _AT(T,X) X #else #define __AC(X,Y) (X##Y) #define _AC(X,Y) __AC(X,Y) +#define _AT(T,X) ((T)(X)) #endif #endif /* !(_LINUX_CONST_H) */