Re Likely and Unlikely Macro

bob ilikepie420 at live.com
Mon Oct 10 03:29:03 EDT 2011


It's a shorter way of casting a pointer to an integer with boolean
values. 

On Mon, Oct 10, 2011 at 11:49:54AM +0530, Asutosh Das wrote:
> Hi
> In lxr, I saw the likely and unlikely macro defined as (compiler.h)
> 
> #  define likely(x)     (__builtin_constant_p(x) ? !!(x) :
> __branch_check__(x, 1))
>  116# endif
>  117# ifndef unlikely
>  118#  define unlikely(x)   (__builtin_constant_p(x) ? !!(x) :
> __branch_check__(x, 0))
>  119# endif
>  120
> ..... some other defines
> 
> #else
>  146# define likely(x)      __builtin_expect(!!(x), 1)
>  147# define unlikely(x)    __builtin_expect(!!(x), 0)
>  148#endif
> 
> I cannot understand the intention behind !!(x).
> Please can you let me know why !!(x) is required here.
> 
> TIA
> --
> ~/asd
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> 



More information about the Kernelnewbies mailing list