Go to the documentation of this file.
13 #ifndef __LINUX_CNT32_TO_63_H__
14 #define __LINUX_CNT32_TO_63_H__
16 #include <linux/compiler.h>
17 #include <linux/types.h>
18 #include <asm/byteorder.h>
23 #if defined(__LITTLE_ENDIAN)
25 #elif defined(__BIG_ENDIAN)
95 #define cnt32_to_63(cnt_lo) \
97 static u32 __m_cnt_hi; \
98 union cnt32_to_63 __x; \
99 __x.hi = __m_cnt_hi; \
102 if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \
103 __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \