20#define __L4UTIL_BITOPS_HAVE_ARCH_SET_BIT
26 "lock; btsl %1,%0 \n\t"
37#define __L4UTIL_BITOPS_HAVE_ARCH_CLEAR_BIT
43 "lock; btrl %1,%0 \n\t"
54#define __L4UTIL_BITOPS_HAVE_ARCH_COMPLEMENT_BIT
56l4util_complement_bit(
int b,
volatile l4_umword_t * dest)
60 "lock; btcl %1,%0 \n\t"
71#define __L4UTIL_BITOPS_HAVE_ARCH_TEST_BIT
73l4util_test_bit(
int b,
const volatile l4_umword_t * dest)
93#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_SET
101 "lock; btsl %2,%1 \n\t"
115#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_RESET
123 "lock; btrl %2,%1 \n\t"
137#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_TEST_AND_COMPLEMENT
145 "lock; btcl %2,%1 \n\t"
159#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_SCAN_REVERSE
181#define __L4UTIL_BITOPS_HAVE_ARCH_BIT_SCAN_FORWARD
202#define __L4UTIL_BITOPS_HAVE_ARCH_FIND_FIRST_SET_BIT
204l4util_find_first_set_bit(
const void * dest,
l4_size_t size)
212 "lea -4(%%edi),%%edi \n\t"
213 "bsf (%%edi),%%eax \n"
215 "sub %%esi,%%edi \n\t"
217 "add %%edi,%%eax \n\t"
219 "=a" (res),
"=c" (dummy0),
"=D" (dummy1)
221 "a" (0),
"c" ((size + 31) >> 5),
"D" (dest),
"S" (dest)
228#define __L4UTIL_BITOPS_HAVE_ARCH_FIND_FIRST_ZERO_BIT
230l4util_find_first_zero_bit(
const void * dest,
l4_size_t size)
241 "xor -4(%%edi),%%eax \n\t"
245 "sub %%esi,%%edi \n\t"
247 "add %%edi,%%edx \n\t"
249 "=a" (dummy0),
"=c" (dummy1),
"=d" (res),
"=D" (dummy2)
251 "a" (~0UL),
"c" ((size + 31) >> 5),
"d" (0),
"D" (dest),
"S" (dest)
unsigned int l4_size_t
Unsigned size type.
unsigned long l4_umword_t
Unsigned machine word.
signed long l4_mword_t
Signed machine word.
signed char l4_int8_t
Signed 8bit value.
#define L4_UNLIKELY(x)
Expression is unlikely to execute.
#define L4_INLINE
L4 Inline function attribute.
#define EXTERN_C_BEGIN
Start section with C types and functions.
#define EXTERN_C_END
End section with C types and functions.