| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| #include "sw/device/lib/base/bitfield.h" |
| |
| // `extern` declarations to give the inline functions in the |
| // corresponding header a link location. |
| |
| extern uint32_t bitfield_field32_read(uint32_t bitfield, |
| bitfield_field32_t field); |
| extern uint32_t bitfield_field32_write(uint32_t bitfield, |
| bitfield_field32_t field, |
| uint32_t value); |
| |
| extern bitfield_field32_t bitfield_bit32_to_field32( |
| bitfield_bit32_index_t bit_index); |
| |
| extern bool bitfield_bit32_read(uint32_t bitfield, |
| bitfield_bit32_index_t bit_index); |
| extern uint32_t bitfield_bit32_write(uint32_t bitfield, |
| bitfield_bit32_index_t bit_index, |
| bool value); |
| extern uint32_t bitfield_bit32_copy(uint32_t dest, |
| bitfield_bit32_index_t dest_bit, |
| uint32_t src, |
| bitfield_bit32_index_t src_bit); |
| |
| extern int32_t bitfield_find_first_set32(int32_t bitfield); |
| extern int32_t bitfield_count_leading_zeroes32(uint32_t bitfield); |
| extern int32_t bitfield_count_trailing_zeroes32(uint32_t bitfield); |
| extern int32_t bitfield_popcount32(uint32_t bitfield); |
| extern int32_t bitfield_parity32(uint32_t bitfield); |
| extern uint32_t bitfield_byteswap32(uint32_t bitfield); |
| extern bool bitfield_is_power_of_two32(uint32_t bitfield); |