Subversion Repositories Kolibri OS

Rev

Rev 1970 | Rev 5056 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1970 Rev 3031
Line 24... Line 24...
24
#define for_each_set_bit(bit, addr, size) \
24
#define for_each_set_bit(bit, addr, size) \
25
	for ((bit) = find_first_bit((addr), (size)); \
25
	for ((bit) = find_first_bit((addr), (size)); \
26
	     (bit) < (size); \
26
	     (bit) < (size); \
27
	     (bit) = find_next_bit((addr), (size), (bit) + 1))
27
	     (bit) = find_next_bit((addr), (size), (bit) + 1))
Line -... Line 28...
-
 
28
 
-
 
29
/* same as for_each_set_bit() but use bit as value to start with */
-
 
30
#define for_each_set_bit_from(bit, addr, size) \
-
 
31
	for ((bit) = find_next_bit((addr), (size), (bit));	\
-
 
32
	     (bit) < (size);					\
-
 
33
	     (bit) = find_next_bit((addr), (size), (bit) + 1))
-
 
34
 
-
 
35
#define for_each_clear_bit(bit, addr, size) \
-
 
36
	for ((bit) = find_first_zero_bit((addr), (size));	\
-
 
37
	     (bit) < (size);					\
-
 
38
	     (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
-
 
39
 
-
 
40
/* same as for_each_clear_bit() but use bit as value to start with */
-
 
41
#define for_each_clear_bit_from(bit, addr, size) \
-
 
42
	for ((bit) = find_next_zero_bit((addr), (size), (bit));	\
-
 
43
	     (bit) < (size);					\
-
 
44
	     (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
28
 
45
 
29
static __inline__ int get_bitmask_order(unsigned int count)
46
static __inline__ int get_bitmask_order(unsigned int count)
30
{
47
{
Line 31... Line 48...
31
	int order;
48
	int order;
Line 48... Line 65...
48
{
65
{
49
	return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
66
	return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
50
}
67
}
Line 51... Line 68...
51
 
68
 
-
 
69
/**
-
 
70
 * rol64 - rotate a 64-bit value left
-
 
71
 * @word: value to rotate
-
 
72
 * @shift: bits to roll
-
 
73
 */
-
 
74
static inline __u64 rol64(__u64 word, unsigned int shift)
-
 
75
{
-
 
76
	return (word << shift) | (word >> (64 - shift));
-
 
77
}
-
 
78
 
-
 
79
/**
-
 
80
 * ror64 - rotate a 64-bit value right
-
 
81
 * @word: value to rotate
-
 
82
 * @shift: bits to roll
-
 
83
 */
-
 
84
static inline __u64 ror64(__u64 word, unsigned int shift)
-
 
85
{
-
 
86
	return (word >> shift) | (word << (64 - shift));
-
 
87
}
-
 
88
 
52
/**
89
/**
53
 * rol32 - rotate a 32-bit value left
90
 * rol32 - rotate a 32-bit value left
54
 * @word: value to rotate
91
 * @word: value to rotate
55
 * @shift: bits to roll
92
 * @shift: bits to roll
56
 */
93
 */