Software APIs
bitfield.c
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
6
7// `extern` declarations to give the inline functions in the
8// corresponding header a link location.
9
10extern uint32_t bitfield_field32_read(uint32_t bitfield,
11 bitfield_field32_t field);
12extern uint32_t bitfield_field32_write(uint32_t bitfield,
14 uint32_t value);
15
16extern bitfield_field32_t bitfield_bit32_to_field32(
17 bitfield_bit32_index_t bit_index);
18
19extern bool bitfield_bit32_read(uint32_t bitfield,
20 bitfield_bit32_index_t bit_index);
21extern uint32_t bitfield_bit32_write(uint32_t bitfield,
22 bitfield_bit32_index_t bit_index,
23 bool value);
24extern uint32_t bitfield_bit32_copy(uint32_t dest,
26 uint32_t src,
28
29extern int32_t bitfield_find_first_set32(int32_t bitfield);
30extern int32_t bitfield_count_leading_zeroes32(uint32_t bitfield);
31extern int32_t bitfield_count_trailing_zeroes32(uint32_t bitfield);
32extern int32_t bitfield_popcount32(uint32_t bitfield);
33extern int32_t bitfield_parity32(uint32_t bitfield);
34extern uint32_t bitfield_byteswap32(uint32_t bitfield);
35extern bool bitfield_is_power_of_two32(uint32_t bitfield);