aboutsummaryrefslogtreecommitdiff
path: root/externals/mysql/my_bit.h
diff options
context:
space:
mode:
authorclick <none@none>2010-08-07 19:01:57 +0200
committerclick <none@none>2010-08-07 19:01:57 +0200
commitce435f6d4f84462c0707bbc608d767648d5e99c3 (patch)
treedabac44fd559c925acf2171adb0ae3038f05ad7b /externals/mysql/my_bit.h
parent3cc24e0971f96b9ffa4032a154750e4224ea499d (diff)
BuildSystem/VS: Remove now defunct an unmaintained buildfiles - use CMake for generating solutionfiles
--HG-- branch : trunk
Diffstat (limited to 'externals/mysql/my_bit.h')
-rw-r--r--externals/mysql/my_bit.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/externals/mysql/my_bit.h b/externals/mysql/my_bit.h
deleted file mode 100644
index 2e464e89049..00000000000
--- a/externals/mysql/my_bit.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- Some useful bit functions
-*/
-
-C_MODE_START
-#ifdef HAVE_INLINE
-
-extern const char _my_bits_nbits[256];
-extern const uchar _my_bits_reverse_table[256];
-
-/*
- Find smallest X in 2^X >= value
- This can be used to divide a number with value by doing a shift instead
-*/
-
-STATIC_INLINE uint my_bit_log2(ulong value)
-{
- uint bit;
- for (bit=0 ; value > 1 ; value>>=1, bit++) ;
- return bit;
-}
-
-STATIC_INLINE uint my_count_bits(ulonglong v)
-{
-#if SIZEOF_LONG_LONG > 4
- /* The following code is a bit faster on 16 bit machines than if we would
- only shift v */
- ulong v2=(ulong) (v >> 32);
- return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
- _my_bits_nbits[(uchar) (v >> 8)] +
- _my_bits_nbits[(uchar) (v >> 16)] +
- _my_bits_nbits[(uchar) (v >> 24)] +
- _my_bits_nbits[(uchar) (v2)] +
- _my_bits_nbits[(uchar) (v2 >> 8)] +
- _my_bits_nbits[(uchar) (v2 >> 16)] +
- _my_bits_nbits[(uchar) (v2 >> 24)]);
-#else
- return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
- _my_bits_nbits[(uchar) (v >> 8)] +
- _my_bits_nbits[(uchar) (v >> 16)] +
- _my_bits_nbits[(uchar) (v >> 24)]);
-#endif
-}
-
-STATIC_INLINE uint my_count_bits_ushort(ushort v)
-{
- return _my_bits_nbits[v];
-}
-
-
-/*
- Next highest power of two
-
- SYNOPSIS
- my_round_up_to_next_power()
- v Value to check
-
- RETURN
- Next or equal power of 2
- Note: 0 will return 0
-
- NOTES
- Algorithm by Sean Anderson, according to:
- http://graphics.stanford.edu/~seander/bithacks.html
- (Orignal code public domain)
-
- Comments shows how this works with 01100000000000000000000000001011
-*/
-
-STATIC_INLINE uint32 my_round_up_to_next_power(uint32 v)
-{
- v--; /* 01100000000000000000000000001010 */
- v|= v >> 1; /* 01110000000000000000000000001111 */
- v|= v >> 2; /* 01111100000000000000000000001111 */
- v|= v >> 4; /* 01111111110000000000000000001111 */
- v|= v >> 8; /* 01111111111111111100000000001111 */
- v|= v >> 16; /* 01111111111111111111111111111111 */
- return v+1; /* 10000000000000000000000000000000 */
-}
-
-STATIC_INLINE uint32 my_clear_highest_bit(uint32 v)
-{
- uint32 w=v >> 1;
- w|= w >> 1;
- w|= w >> 2;
- w|= w >> 4;
- w|= w >> 8;
- w|= w >> 16;
- return v & w;
-}
-
-STATIC_INLINE uint32 my_reverse_bits(uint32 key)
-{
- return
- (_my_bits_reverse_table[ key & 255] << 24) |
- (_my_bits_reverse_table[(key>> 8) & 255] << 16) |
- (_my_bits_reverse_table[(key>>16) & 255] << 8) |
- _my_bits_reverse_table[(key>>24) ];
-}
-
-#else /* HAVE_INLINE */
-extern uint my_bit_log2(ulong value);
-extern uint32 my_round_up_to_next_power(uint32 v);
-uint32 my_clear_highest_bit(uint32 v);
-uint32 my_reverse_bits(uint32 key);
-extern uint my_count_bits(ulonglong v);
-extern uint my_count_bits_ushort(ushort v);
-#endif /* HAVE_INLINE */
-C_MODE_END