Software APIs
sw
device
lib
base
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
5
#include "
sw/device/lib/base/bitfield.h
"
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
16
extern
bitfield_field32_t
bitfield_bit32_to_field32
(
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);
Return to
OpenTitan Documentation