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 
10 extern uint32_t bitfield_field32_read(uint32_t bitfield,
11  bitfield_field32_t field);
12 extern uint32_t bitfield_field32_write(uint32_t bitfield,
13  bitfield_field32_t field,
14  uint32_t value);
15 
17  bitfield_bit32_index_t bit_index);
18 
19 extern bool bitfield_bit32_read(uint32_t bitfield,
20  bitfield_bit32_index_t bit_index);
21 extern uint32_t bitfield_bit32_write(uint32_t bitfield,
22  bitfield_bit32_index_t bit_index,
23  bool value);
24 extern uint32_t bitfield_bit32_copy(uint32_t dest,
25  bitfield_bit32_index_t dest_bit,
26  uint32_t src,
27  bitfield_bit32_index_t src_bit);
28 
29 extern int32_t bitfield_find_first_set32(int32_t bitfield);
30 extern int32_t bitfield_count_leading_zeroes32(uint32_t bitfield);
31 extern int32_t bitfield_count_trailing_zeroes32(uint32_t bitfield);
32 extern int32_t bitfield_popcount32(uint32_t bitfield);
33 extern int32_t bitfield_parity32(uint32_t bitfield);
34 extern uint32_t bitfield_byteswap32(uint32_t bitfield);
35 extern bool bitfield_is_power_of_two32(uint32_t bitfield);