Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
const_hweight.h File Reference

Go to the source code of this file.

Macros

#define __const_hweight8(w)
 
#define __const_hweight16(w)   (__const_hweight8(w) + __const_hweight8((w) >> 8 ))
 
#define __const_hweight32(w)   (__const_hweight16(w) + __const_hweight16((w) >> 16))
 
#define __const_hweight64(w)   (__const_hweight32(w) + __const_hweight32((w) >> 32))
 
#define hweight8(w)   (__builtin_constant_p(w) ? __const_hweight8(w) : __arch_hweight8(w))
 
#define hweight16(w)   (__builtin_constant_p(w) ? __const_hweight16(w) : __arch_hweight16(w))
 
#define hweight32(w)   (__builtin_constant_p(w) ? __const_hweight32(w) : __arch_hweight32(w))
 
#define hweight64(w)   (__builtin_constant_p(w) ? __const_hweight64(w) : __arch_hweight64(w))
 
#define HWEIGHT8(w)   (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight8(w))
 
#define HWEIGHT16(w)   (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight16(w))
 
#define HWEIGHT32(w)   (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight32(w))
 
#define HWEIGHT64(w)   (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight64(w))
 
#define HWEIGHT(w)   HWEIGHT64((u64)w)
 

Macro Definition Documentation

#define __const_hweight16 (   w)    (__const_hweight8(w) + __const_hweight8((w) >> 8 ))

Definition at line 17 of file const_hweight.h.

#define __const_hweight32 (   w)    (__const_hweight16(w) + __const_hweight16((w) >> 16))

Definition at line 18 of file const_hweight.h.

#define __const_hweight64 (   w)    (__const_hweight32(w) + __const_hweight32((w) >> 32))

Definition at line 19 of file const_hweight.h.

#define __const_hweight8 (   w)
Value:
( (!!((w) & (1ULL << 0))) + \
(!!((w) & (1ULL << 1))) + \
(!!((w) & (1ULL << 2))) + \
(!!((w) & (1ULL << 3))) + \
(!!((w) & (1ULL << 4))) + \
(!!((w) & (1ULL << 5))) + \
(!!((w) & (1ULL << 6))) + \
(!!((w) & (1ULL << 7))) )

Definition at line 7 of file const_hweight.h.

#define HWEIGHT (   w)    HWEIGHT64((u64)w)

Definition at line 40 of file const_hweight.h.

#define hweight16 (   w)    (__builtin_constant_p(w) ? __const_hweight16(w) : __arch_hweight16(w))

Definition at line 25 of file const_hweight.h.

#define HWEIGHT16 (   w)    (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight16(w))

Definition at line 33 of file const_hweight.h.

#define hweight32 (   w)    (__builtin_constant_p(w) ? __const_hweight32(w) : __arch_hweight32(w))

Definition at line 26 of file const_hweight.h.

#define HWEIGHT32 (   w)    (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight32(w))

Definition at line 34 of file const_hweight.h.

#define hweight64 (   w)    (__builtin_constant_p(w) ? __const_hweight64(w) : __arch_hweight64(w))

Definition at line 27 of file const_hweight.h.

#define HWEIGHT64 (   w)    (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight64(w))

Definition at line 35 of file const_hweight.h.

#define hweight8 (   w)    (__builtin_constant_p(w) ? __const_hweight8(w) : __arch_hweight8(w))

Definition at line 24 of file const_hweight.h.

#define HWEIGHT8 (   w)    (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight8(w))

Definition at line 32 of file const_hweight.h.