mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
hw/pflash_cfi0[12]: Use host-utils.h ctz32()
Drop the private reimplementation of ctz32() from pflash_cfi0[12] in favour of using the standard version from host-utils.h. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
262e1eaafa
commit
eb99c9a993
@ -41,6 +41,7 @@
|
|||||||
#include "block.h"
|
#include "block.h"
|
||||||
#include "qemu-timer.h"
|
#include "qemu-timer.h"
|
||||||
#include "exec-memory.h"
|
#include "exec-memory.h"
|
||||||
|
#include "host-utils.h"
|
||||||
|
|
||||||
#define PFLASH_BUG(fmt, ...) \
|
#define PFLASH_BUG(fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
@ -543,42 +544,6 @@ static const MemoryRegionOps pflash_cfi01_ops_le = {
|
|||||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
.endianness = DEVICE_NATIVE_ENDIAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Count trailing zeroes of a 32 bits quantity */
|
|
||||||
static int ctz32 (uint32_t n)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
if (!(n & 0xFFFF)) {
|
|
||||||
ret += 16;
|
|
||||||
n = n >> 16;
|
|
||||||
}
|
|
||||||
if (!(n & 0xFF)) {
|
|
||||||
ret += 8;
|
|
||||||
n = n >> 8;
|
|
||||||
}
|
|
||||||
if (!(n & 0xF)) {
|
|
||||||
ret += 4;
|
|
||||||
n = n >> 4;
|
|
||||||
}
|
|
||||||
if (!(n & 0x3)) {
|
|
||||||
ret += 2;
|
|
||||||
n = n >> 2;
|
|
||||||
}
|
|
||||||
if (!(n & 0x1)) {
|
|
||||||
ret++;
|
|
||||||
#if 0 /* This is not necessary as n is never 0 */
|
|
||||||
n = n >> 1;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#if 0 /* This is not necessary as n is never 0 */
|
|
||||||
if (!n)
|
|
||||||
ret++;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
pflash_t *pflash_cfi01_register(target_phys_addr_t base,
|
pflash_t *pflash_cfi01_register(target_phys_addr_t base,
|
||||||
DeviceState *qdev, const char *name,
|
DeviceState *qdev, const char *name,
|
||||||
target_phys_addr_t size,
|
target_phys_addr_t size,
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include "qemu-timer.h"
|
#include "qemu-timer.h"
|
||||||
#include "block.h"
|
#include "block.h"
|
||||||
#include "exec-memory.h"
|
#include "exec-memory.h"
|
||||||
|
#include "host-utils.h"
|
||||||
|
|
||||||
//#define PFLASH_DEBUG
|
//#define PFLASH_DEBUG
|
||||||
#ifdef PFLASH_DEBUG
|
#ifdef PFLASH_DEBUG
|
||||||
@ -575,42 +576,6 @@ static const MemoryRegionOps pflash_cfi02_ops_le = {
|
|||||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
.endianness = DEVICE_NATIVE_ENDIAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Count trailing zeroes of a 32 bits quantity */
|
|
||||||
static int ctz32 (uint32_t n)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
if (!(n & 0xFFFF)) {
|
|
||||||
ret += 16;
|
|
||||||
n = n >> 16;
|
|
||||||
}
|
|
||||||
if (!(n & 0xFF)) {
|
|
||||||
ret += 8;
|
|
||||||
n = n >> 8;
|
|
||||||
}
|
|
||||||
if (!(n & 0xF)) {
|
|
||||||
ret += 4;
|
|
||||||
n = n >> 4;
|
|
||||||
}
|
|
||||||
if (!(n & 0x3)) {
|
|
||||||
ret += 2;
|
|
||||||
n = n >> 2;
|
|
||||||
}
|
|
||||||
if (!(n & 0x1)) {
|
|
||||||
ret++;
|
|
||||||
#if 0 /* This is not necessary as n is never 0 */
|
|
||||||
n = n >> 1;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#if 0 /* This is not necessary as n is never 0 */
|
|
||||||
if (!n)
|
|
||||||
ret++;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
pflash_t *pflash_cfi02_register(target_phys_addr_t base,
|
pflash_t *pflash_cfi02_register(target_phys_addr_t base,
|
||||||
DeviceState *qdev, const char *name,
|
DeviceState *qdev, const char *name,
|
||||||
target_phys_addr_t size,
|
target_phys_addr_t size,
|
||||||
|
Loading…
Reference in New Issue
Block a user