Bitwise operations

The header qemu/bitops.h provides utility functions for performing bitwise operations.

void set_bit(long nr, unsigned long *addr)

Parameters

long nr

void set_bit_atomic(long nr, unsigned long *addr)

Parameters

long nr

void clear_bit(long nr, unsigned long *addr)

Parameters

long nr

void clear_bit_atomic(long nr, unsigned long *addr)

Parameters

long nr

void change_bit(long nr, unsigned long *addr)

Parameters

long nr

int test_and_set_bit(long nr, unsigned long *addr)

Parameters

long nr

int test_and_clear_bit(long nr, unsigned long *addr)

Parameters

long nr

int test_and_change_bit(long nr, unsigned long *addr)

Parameters

long nr

int test_bit(long nr, const unsigned long *addr)

Parameters

long nr

unsigned long find_last_bit(const unsigned long *addr, unsigned long size)

Parameters

const unsigned long *addr

unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset)

Parameters

const unsigned long *addr

unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size, unsigned long offset)

Parameters

const unsigned long *addr

unsigned long find_first_bit(const unsigned long *addr, unsigned long size)

Parameters

const unsigned long *addr

unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)

Parameters

const unsigned long *addr

uint8_t rol8(uint8_t word, unsigned int shift)

Parameters

uint8_t word

uint8_t ror8(uint8_t word, unsigned int shift)

Parameters

uint8_t word

uint16_t rol16(uint16_t word, unsigned int shift)

Parameters

uint16_t word

uint16_t ror16(uint16_t word, unsigned int shift)

Parameters

uint16_t word

uint32_t rol32(uint32_t word, unsigned int shift)

Parameters

uint32_t word

uint32_t ror32(uint32_t word, unsigned int shift)

Parameters

uint32_t word

uint64_t rol64(uint64_t word, unsigned int shift)

Parameters

uint64_t word

uint64_t ror64(uint64_t word, unsigned int shift)

Parameters

uint64_t word

uint32_t hswap32(uint32_t h)

Parameters

uint32_t h

uint64_t hswap64(uint64_t h)

Parameters

uint64_t h

uint64_t wswap64(uint64_t h)

Parameters

uint64_t h

uint32_t extract32(uint32_t value, int start, int length)

Parameters

uint32_t value

uint8_t extract8(uint8_t value, int start, int length)

Parameters

uint8_t value

uint16_t extract16(uint16_t value, int start, int length)

Parameters

uint16_t value

uint64_t extract64(uint64_t value, int start, int length)

Parameters

uint64_t value

int32_t sextract32(uint32_t value, int start, int length)

Parameters

uint32_t value

int64_t sextract64(uint64_t value, int start, int length)

Parameters

uint64_t value

uint32_t deposit32(uint32_t value, int start, int length, uint32_t fieldval)

Parameters

uint32_t value

uint64_t deposit64(uint64_t value, int start, int length, uint64_t fieldval)

Parameters

uint64_t value

uint32_t half_shuffle32(uint32_t x)

Parameters

uint32_t x

uint64_t half_shuffle64(uint64_t x)

Parameters

uint64_t x

uint32_t half_unshuffle32(uint32_t x)

Parameters

uint32_t x

uint64_t half_unshuffle64(uint64_t x)

Parameters

uint64_t x