diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2020-02-27 17:12:31 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2020-02-27 17:12:31 +0000 |
commit | 8b6269c8ec14b9213dd22200c1c05aaecd6cbb9d (patch) | |
tree | 6063a65140b9547b3679754d2c0c17a593195c6e /include | |
parent | 2a7b18a3205bdc18403dfa48b9746fbafeac14a0 (diff) | |
parent | bc97f9f64f8a4a84d0d06949749e9dbec143b9f5 (diff) | |
download | qemu-8b6269c8ec14b9213dd22200c1c05aaecd6cbb9d.zip qemu-8b6269c8ec14b9213dd22200c1c05aaecd6cbb9d.tar.gz qemu-8b6269c8ec14b9213dd22200c1c05aaecd6cbb9d.tar.bz2 |
Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-and-plugins-250220-1' into staging
Testing and plugin updates:
- fix pauth TCG tests
- tweak away rcutorture failures
- various Travis updates
- relax iotest size check a little
- fix for -trace/-D clash
- fix cross compile detection for tcg tests
- document plugin query lifetime
- fix missing break in plugin core
- fix some plugin warnings
- better progressive instruction decode
- avoid trampling vaddr in plugins
# gpg: Signature made Tue 25 Feb 2020 20:21:56 GMT
# gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full]
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44
* remotes/stsquad/tags/pull-testing-and-plugins-250220-1:
tests/tcg: take into account expected clashes pauth-4
tests/tcg: fix typo in configure.sh test for v8.3
tcg: save vaddr temp for plugin usage
tests/tcg: give debug builds a little bit longer
tests/plugins: make howvec clean-up after itself.
target/riscv: progressively load the instruction during decode
qemu/bitops.h: Add extract8 and extract16
tests/plugin: prevent uninitialized warning
plugins/core: add missing break in cb_to_tcg_flags
docs/devel: document query handle lifetimes
tracing: only allow -trace to override -D if set
tests/iotests: be a little more forgiving on the size test
travis.yml: single-thread build-tcg stages
travis.yml: Fix Travis YAML configuration warnings
travis.yml: Test the s390-ccw build, too
tests/rcutorture: mild documenting refactor of update thread
tests/rcutorture: better document locking of stats
tests/rcutorture: update usage hint
tests/tcg: include a skip runner for pauth3 with plugins
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/qemu/bitops.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/qemu/bitops.h b/include/qemu/bitops.h index 02c1ce6..f55ce8b 100644 --- a/include/qemu/bitops.h +++ b/include/qemu/bitops.h @@ -302,6 +302,44 @@ static inline uint32_t extract32(uint32_t value, int start, int length) } /** + * extract8: + * @value: the value to extract the bit field from + * @start: the lowest bit in the bit field (numbered from 0) + * @length: the length of the bit field + * + * Extract from the 8 bit input @value the bit field specified by the + * @start and @length parameters, and return it. The bit field must + * lie entirely within the 8 bit word. It is valid to request that + * all 8 bits are returned (ie @length 8 and @start 0). + * + * Returns: the value of the bit field extracted from the input value. + */ +static inline uint8_t extract8(uint8_t value, int start, int length) +{ + assert(start >= 0 && length > 0 && length <= 8 - start); + return extract32(value, start, length); +} + +/** + * extract16: + * @value: the value to extract the bit field from + * @start: the lowest bit in the bit field (numbered from 0) + * @length: the length of the bit field + * + * Extract from the 16 bit input @value the bit field specified by the + * @start and @length parameters, and return it. The bit field must + * lie entirely within the 16 bit word. It is valid to request that + * all 16 bits are returned (ie @length 16 and @start 0). + * + * Returns: the value of the bit field extracted from the input value. + */ +static inline uint16_t extract16(uint16_t value, int start, int length) +{ + assert(start >= 0 && length > 0 && length <= 16 - start); + return extract32(value, start, length); +} + +/** * extract64: * @value: the value to extract the bit field from * @start: the lowest bit in the bit field (numbered from 0) |