-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi there people, first of all i would like to thank everybody for their help in figuring out the yesterday's asm oneliner. I have another q, though :) The kernel extensively uses these macros. <from include/linux/compiler.h,45> 45 #define likely(x) __builtin_expect(!!(x), 1) 46 #define unlikely(x) __builtin_expect(!!(x), 0) As far as I understand it, they evaluate to something only when the compiler's minor number is < 96: <from include/linux/compiler-gcc2.h,11> 11 #if __GNUC_MINOR__ < 96 12 # define __builtin_expect(x, expected_value) (x) 13 #endif otherwise they evalute to nothing(?). However, what i don't understand is, what do i accomplish by negating a value twice (!!(x)). I read somewhere on the kernel mailing list that it had something to do with pointer conversion but the context of the message was rather different so i think that this might not hold true. Thanks in advance, Boris. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA477XiBySr3Fn37QRAoV3AKC8zOWg8+3y41IDb/0D0bD9CLMOjwCeP88x 7uiOHxpxXJQ+J2fhfp3nOKQ= =mEsu -----END PGP SIGNATURE----- -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/