[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] bitops: fix types
From: |
blauwirbel |
Subject: |
[Qemu-devel] [PATCH] bitops: fix types |
Date: |
Sun, 8 Jul 2012 12:12:27 +0000 |
From: Blue Swirl <address@hidden>
Use 'unsigned int' for bit numbers. Return 'bool' for test functions. QEMU is
not the kernel, we don't need 'volatile'. Adjust asserts.
Signed-off-by: Blue Swirl <address@hidden>
---
bitops.h | 47 ++++++++++++++++++++++++-----------------------
1 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/bitops.h b/bitops.h
index b967ef3..ae9d66f 100644
--- a/bitops.h
+++ b/bitops.h
@@ -28,7 +28,7 @@
*
* Undefined if no bit exists, so code should check against 0 first.
*/
-static unsigned long bitops_ffsl(unsigned long word)
+static unsigned int bitops_ffsl(unsigned long word)
{
int num = 0;
@@ -66,7 +66,7 @@ static unsigned long bitops_ffsl(unsigned long word)
*
* Undefined if no set bit exists, so code should check against 0 first.
*/
-static inline unsigned long bitops_flsl(unsigned long word)
+static inline unsigned int bitops_flsl(unsigned long word)
{
int num = BITS_PER_LONG - 1;
@@ -104,7 +104,7 @@ static inline unsigned long bitops_flsl(unsigned long word)
*
* Undefined if no zero exists, so code should check against ~0UL first.
*/
-static inline unsigned long ffz(unsigned long word)
+static inline unsigned int ffz(unsigned long word)
{
return bitops_ffsl(~word);
}
@@ -114,7 +114,7 @@ static inline unsigned long ffz(unsigned long word)
* @nr: the bit to set
* @addr: the address to start counting from
*/
-static inline void set_bit(int nr, volatile unsigned long *addr)
+static inline void set_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -127,7 +127,7 @@ static inline void set_bit(int nr, volatile unsigned long
*addr)
* @nr: Bit to clear
* @addr: Address to start counting from
*/
-static inline void clear_bit(int nr, volatile unsigned long *addr)
+static inline void clear_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -140,7 +140,7 @@ static inline void clear_bit(int nr, volatile unsigned long
*addr)
* @nr: Bit to change
* @addr: Address to start counting from
*/
-static inline void change_bit(int nr, volatile unsigned long *addr)
+static inline void change_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -153,7 +153,7 @@ static inline void change_bit(int nr, volatile unsigned
long *addr)
* @nr: Bit to set
* @addr: Address to count from
*/
-static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
+static inline bool test_and_set_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -168,7 +168,7 @@ static inline int test_and_set_bit(int nr, volatile
unsigned long *addr)
* @nr: Bit to clear
* @addr: Address to count from
*/
-static inline int test_and_clear_bit(int nr, volatile unsigned long *addr)
+static inline bool test_and_clear_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -183,7 +183,7 @@ static inline int test_and_clear_bit(int nr, volatile
unsigned long *addr)
* @nr: Bit to change
* @addr: Address to count from
*/
-static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
+static inline bool test_and_change_bit(unsigned int nr, unsigned long *addr)
{
unsigned long mask = BIT_MASK(nr);
unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
@@ -198,7 +198,7 @@ static inline int test_and_change_bit(int nr, volatile
unsigned long *addr)
* @nr: bit number to test
* @addr: Address to start counting from
*/
-static inline int test_bit(int nr, const volatile unsigned long *addr)
+static inline bool test_bit(unsigned int nr, const unsigned long *addr)
{
return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
}
@@ -210,8 +210,7 @@ static inline int test_bit(int nr, const volatile unsigned
long *addr)
*
* Returns the bit number of the first set bit, or size.
*/
-unsigned long find_last_bit(const unsigned long *addr,
- unsigned long size);
+unsigned long find_last_bit(const unsigned long *addr, unsigned long size);
/**
* find_next_bit - find the next set bit in a memory region
@@ -220,7 +219,7 @@ unsigned long find_last_bit(const unsigned long *addr,
* @size: The bitmap size in bits
*/
unsigned long find_next_bit(const unsigned long *addr,
- unsigned long size, unsigned long offset);
+ unsigned long size, unsigned long offset);
/**
* find_next_zero_bit - find the next cleared bit in a memory region
@@ -282,9 +281,10 @@ static inline unsigned long hweight_long(unsigned long w)
*
* Returns: the value of the bit field extracted from the input value.
*/
-static inline uint32_t extract32(uint32_t value, int start, int length)
+static inline uint32_t extract32(uint32_t value, unsigned int start,
+ unsigned int length)
{
- assert(start >= 0 && length > 0 && length <= 32 - start);
+ assert(length > 0 && length <= 32 - start);
return (value >> start) & (~0U >> (32 - length));
}
@@ -301,9 +301,10 @@ static inline uint32_t extract32(uint32_t value, int
start, int length)
*
* Returns: the value of the bit field extracted from the input value.
*/
-static inline uint64_t extract64(uint64_t value, int start, int length)
+static inline uint64_t extract64(uint64_t value, unsigned int start,
+ unsigned int length)
{
- assert(start >= 0 && length > 0 && length <= 64 - start);
+ assert(length > 0 && length <= 64 - start);
return (value >> start) & (~0ULL >> (64 - length));
}
@@ -324,11 +325,11 @@ static inline uint64_t extract64(uint64_t value, int
start, int length)
*
* Returns: the modified @value.
*/
-static inline uint32_t deposit32(uint32_t value, int start, int length,
- uint32_t fieldval)
+static inline uint32_t deposit32(uint32_t value, unsigned int start,
+ unsigned int length, uint32_t fieldval)
{
uint32_t mask;
- assert(start >= 0 && length > 0 && length <= 32 - start);
+ assert(length > 0 && length <= 32 - start);
mask = (~0U >> (32 - length)) << start;
return (value & ~mask) | ((fieldval << start) & mask);
}
@@ -350,11 +351,11 @@ static inline uint32_t deposit32(uint32_t value, int
start, int length,
*
* Returns: the modified @value.
*/
-static inline uint64_t deposit64(uint64_t value, int start, int length,
- uint64_t fieldval)
+static inline uint64_t deposit64(uint64_t value, unsigned int start,
+ unsigned int length, uint64_t fieldval)
{
uint64_t mask;
- assert(start >= 0 && length > 0 && length <= 64 - start);
+ assert(length > 0 && length <= 64 - start);
mask = (~0ULL >> (64 - length)) << start;
return (value & ~mask) | ((fieldval << start) & mask);
}
--
1.7.2.5
- [Qemu-devel] [PATCH] bitops: fix types,
blauwirbel <=
- Re: [Qemu-devel] [PATCH] bitops: fix types, Peter Maydell, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Blue Swirl, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Peter Maydell, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Blue Swirl, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Peter Maydell, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Blue Swirl, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Peter Maydell, 2012/07/08
- Re: [Qemu-devel] [PATCH] bitops: fix types, Peter Maydell, 2012/07/08
Re: [Qemu-devel] [PATCH] bitops: fix types, Markus Armbruster, 2012/07/09