Helper functions for bit arithmetic. More...
Helper functions for bit arithmetic.
Definition in file bitarithm.h.
#include <stdint.h>#include "cpu_conf.h" Include dependency graph for bitarithm.h:
 Include dependency graph for bitarithm.h: This graph shows which files directly or indirectly include this file:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
| Macros | |
| #define | ARCH_32_BIT (__INT_MAX__ == 2147483647) | 
| 1 for 32 bit architectures, 0 otherwise | |
| Functions | |
| static unsigned | bitarithm_msb (unsigned v) | 
| Returns the number of the highest '1' bit in a value. | |
| static unsigned | bitarithm_lsb (unsigned v) | 
| Returns the number of the lowest '1' bit in a value. | |
| unsigned | bitarithm_bits_set (unsigned v) | 
| Returns the number of bits set in a value. | |
| uint8_t | bitarithm_bits_set_u32 (uint32_t v) | 
| Returns the (uint32_t version) number of bits set in a value. | |
| unsigned | bitarith_msb_32bit_no_native_clz (unsigned v) | 
| Returns the number of the highest '1' bit in a value. | |
| static uint8_t | bitarithm_clzb (uint8_t x) | 
| Returns the number of leading 0-bits in x, starting at the most significant bit position. | |
| static unsigned | bitarithm_test_and_clear (unsigned state, uint8_t *index) | 
| Used for iterating over the bits in state. | |
| #define | SETBIT(val, bit) | 
| Sets a bitmask for a bitfield. | |
| #define | CLRBIT(val, bit) | 
| Clears bitmask for a bitfield. | |
| Single Bit Defines | |
| #define | BIT0 0x00000001 | 
| Bit 0 set define. | |
| #define | BIT1 0x00000002 | 
| Bit 1 set define. | |
| #define | BIT2 0x00000004 | 
| Bit 2 set define. | |
| #define | BIT3 0x00000008 | 
| Bit 3 set define. | |
| #define | BIT4 0x00000010 | 
| Bit 4 set define. | |
| #define | BIT5 0x00000020 | 
| Bit 5 set define. | |
| #define | BIT6 0x00000040 | 
| Bit 6 set define. | |
| #define | BIT7 0x00000080 | 
| Bit 7 set define. | |
| #define | BIT8 0x00000100 | 
| Bit 8 set define. | |
| #define | BIT9 0x00000200 | 
| Bit 9 set define. | |
| #define | BIT10 0x00000400 | 
| Bit 10 set define. | |
| #define | BIT11 0x00000800 | 
| Bit 11 set define. | |
| #define | BIT12 0x00001000 | 
| Bit 12 set define. | |
| #define | BIT13 0x00002000 | 
| Bit 13 set define. | |
| #define | BIT14 0x00004000 | 
| Bit 14 set define. | |
| #define | BIT15 0x00008000 | 
| Bit 15 set define. | |
| #define | BIT16 0x00010000 | 
| Bit 16 set define. | |
| #define | BIT17 0x00020000 | 
| Bit 17 set define. | |
| #define | BIT18 0x00040000 | 
| Bit 18 set define. | |
| #define | BIT19 0x00080000 | 
| Bit 19 set define. | |
| #define | BIT20 0x00100000 | 
| Bit 20 set define. | |
| #define | BIT21 0x00200000 | 
| Bit 21 set define. | |
| #define | BIT22 0x00400000 | 
| Bit 22 set define. | |
| #define | BIT23 0x00800000 | 
| Bit 23 set define. | |
| #define | BIT24 0x01000000 | 
| Bit 24 set define. | |
| #define | BIT25 0x02000000 | 
| Bit 25 set define. | |
| #define | BIT26 0x04000000 | 
| Bit 26 set define. | |
| #define | BIT27 0x08000000 | 
| Bit 27 set define. | |
| #define | BIT28 0x10000000 | 
| Bit 28 set define. | |
| #define | BIT29 0x20000000 | 
| Bit 29 set define. | |
| #define | BIT30 0x40000000 | 
| Bit 30 set define. | |
| #define | BIT31 0x80000000 | 
| Bit 31 set define. | |
| #define ARCH_32_BIT (__INT_MAX__ == 2147483647) | 
1 for 32 bit architectures, 0 otherwise
Definition at line 97 of file bitarithm.h.
| #define BIT0 0x00000001 | 
Bit 0 set define.
Definition at line 58 of file bitarithm.h.
| #define BIT1 0x00000002 | 
Bit 1 set define.
Definition at line 59 of file bitarithm.h.
| #define BIT10 0x00000400 | 
Bit 10 set define.
Definition at line 70 of file bitarithm.h.
| #define BIT11 0x00000800 | 
Bit 11 set define.
Definition at line 71 of file bitarithm.h.
| #define BIT12 0x00001000 | 
Bit 12 set define.
Definition at line 72 of file bitarithm.h.
| #define BIT13 0x00002000 | 
Bit 13 set define.
Definition at line 73 of file bitarithm.h.
| #define BIT14 0x00004000 | 
Bit 14 set define.
Definition at line 74 of file bitarithm.h.
| #define BIT15 0x00008000 | 
Bit 15 set define.
Definition at line 75 of file bitarithm.h.
| #define BIT16 0x00010000 | 
Bit 16 set define.
Definition at line 78 of file bitarithm.h.
| #define BIT17 0x00020000 | 
Bit 17 set define.
Definition at line 79 of file bitarithm.h.
| #define BIT18 0x00040000 | 
Bit 18 set define.
Definition at line 80 of file bitarithm.h.
| #define BIT19 0x00080000 | 
Bit 19 set define.
Definition at line 81 of file bitarithm.h.
| #define BIT2 0x00000004 | 
Bit 2 set define.
Definition at line 60 of file bitarithm.h.
| #define BIT20 0x00100000 | 
Bit 20 set define.
Definition at line 82 of file bitarithm.h.
| #define BIT21 0x00200000 | 
Bit 21 set define.
Definition at line 83 of file bitarithm.h.
| #define BIT22 0x00400000 | 
Bit 22 set define.
Definition at line 84 of file bitarithm.h.
| #define BIT23 0x00800000 | 
Bit 23 set define.
Definition at line 85 of file bitarithm.h.
| #define BIT24 0x01000000 | 
Bit 24 set define.
Definition at line 86 of file bitarithm.h.
| #define BIT25 0x02000000 | 
Bit 25 set define.
Definition at line 87 of file bitarithm.h.
| #define BIT26 0x04000000 | 
Bit 26 set define.
Definition at line 88 of file bitarithm.h.
| #define BIT27 0x08000000 | 
Bit 27 set define.
Definition at line 89 of file bitarithm.h.
| #define BIT28 0x10000000 | 
Bit 28 set define.
Definition at line 90 of file bitarithm.h.
| #define BIT29 0x20000000 | 
Bit 29 set define.
Definition at line 91 of file bitarithm.h.
| #define BIT3 0x00000008 | 
Bit 3 set define.
Definition at line 61 of file bitarithm.h.
| #define BIT30 0x40000000 | 
Bit 30 set define.
Definition at line 92 of file bitarithm.h.
| #define BIT31 0x80000000 | 
Bit 31 set define.
Definition at line 93 of file bitarithm.h.
| #define BIT4 0x00000010 | 
Bit 4 set define.
Definition at line 62 of file bitarithm.h.
| #define BIT5 0x00000020 | 
Bit 5 set define.
Definition at line 63 of file bitarithm.h.
| #define BIT6 0x00000040 | 
Bit 6 set define.
Definition at line 64 of file bitarithm.h.
| #define BIT7 0x00000080 | 
Bit 7 set define.
Definition at line 65 of file bitarithm.h.
| #define BIT8 0x00000100 | 
Bit 8 set define.
Definition at line 66 of file bitarithm.h.
| #define BIT9 0x00000200 | 
Bit 9 set define.
Definition at line 67 of file bitarithm.h.
| #define CLRBIT | ( | val, | |
| bit ) | 
Clears bitmask for a bitfield.
| [in] | val | The bitfield | 
| [in] | bit | Specifies the bits to be cleared | 
Definition at line 51 of file bitarithm.h.
| #define SETBIT | ( | val, | |
| bit ) | 
Sets a bitmask for a bitfield.
| [in] | val | The bitfield | 
| [in] | bit | Specifies the bits to be set | 
Definition at line 40 of file bitarithm.h.
| unsigned bitarith_msb_32bit_no_native_clz | ( | unsigned | v | ) | 
Returns the number of the highest '1' bit in a value.
     Internal software implementation for 32 bit platforms,
     use @see bitarithm_msb in application code.
 | [in] | v | Input value | 
| unsigned bitarithm_bits_set | ( | unsigned | v | ) | 
Returns the number of bits set in a value.
| [in] | v | Input value with platform-dependent word size | 
| uint8_t bitarithm_bits_set_u32 | ( | uint32_t | v | ) | 
Returns the (uint32_t version) number of bits set in a value.
| [in] | v | Input value with 32 bit size | 
| 
 | inlinestatic | 
Returns the number of leading 0-bits in x, starting at the most significant bit position. 
If x is 0, the result is undefined.
| [in] | x | Input value | 
Definition at line 175 of file bitarithm.h.
| 
 | inlinestatic | 
Returns the number of the lowest '1' bit in a value.
| [in] | v | Input value - must be unequal to '0', otherwise the function will produce an infinite loop | 
Definition at line 205 of file bitarithm.h.
| 
 | inlinestatic | 
Returns the number of the highest '1' bit in a value.
| [in] | v | Input value | 
Source: http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogObvious
Definition at line 152 of file bitarithm.h.
| 
 | inlinestatic | 
Used for iterating over the bits in state. 
Returns the index of a set bit in state, returns state with that bit cleared.
state must not be zero.| [in] | state | Bit Map with at least one bit set | 
| [out] | index | Index of the first set bit. Must be initialized with 0 before the first call to this function, must not be modified between subsequent calls. | 
Definition at line 253 of file bitarithm.h.