[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PULL 17/61] hw/registerfields: add 64-bit extract/deposi
From: |
Michael Tokarev |
Subject: |
[Qemu-trivial] [PULL 17/61] hw/registerfields: add 64-bit extract/deposit macros |
Date: |
Mon, 18 Dec 2017 00:27:22 +0300 |
From: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Darren Kenny <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Reviewed-by: Edgar E. Iglesias <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
include/hw/registerfields.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h
index ad9d7a82a3..f59e7f47bd 100644
--- a/include/hw/registerfields.h
+++ b/include/hw/registerfields.h
@@ -35,6 +35,9 @@
#define FIELD_EX32(storage, reg, field) \
extract32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
R_ ## reg ## _ ## field ## _LENGTH)
+#define FIELD_EX64(storage, reg, field) \
+ extract64((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH)
/* Extract a field from an array of registers */
#define ARRAY_FIELD_EX32(regs, reg, field) \
@@ -52,6 +55,14 @@
d = deposit32((storage), R_ ## reg ## _ ## field ## _SHIFT, \
R_ ## reg ## _ ## field ## _LENGTH, v.v); \
d; })
+#define FIELD_DP64(storage, reg, field, val) ({ \
+ struct { \
+ unsigned int v:R_ ## reg ## _ ## field ## _LENGTH; \
+ } v = { .v = val }; \
+ uint64_t d; \
+ d = deposit64((storage), R_ ## reg ## _ ## field ## _SHIFT, \
+ R_ ## reg ## _ ## field ## _LENGTH, v.v); \
+ d; })
/* Deposit a field to array of registers. */
#define ARRAY_FIELD_DP32(regs, reg, field, val) \
--
2.11.0
- [Qemu-trivial] [PULL 23/61] MAINTAINERS: add an entry for the i82378 (superio), (continued)
- [Qemu-trivial] [PULL 23/61] MAINTAINERS: add an entry for the i82378 (superio), Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 10/61] Document pretty parameter for mon option, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 35/61] i386/hax: remove duplicated include, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 33/61] ppc: remove duplicated includes, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 06/61] configure: check $CC available before verifying host CPU, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL v2 00/61] Trivial patches for 2017-12-18, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 14/61] Makefile: add more targets to the UNCHECKED_GOALS rule, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 17/61] hw/registerfields: add 64-bit extract/deposit macros,
Michael Tokarev <=
- [Qemu-trivial] [PULL 48/61] hw/virtio-balloon: remove old i386 dependency, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 49/61] hw/unicore32: restrict hw addr defines to source file, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 51/61] hw/timer/mc146818: rename rtc_init() -> mc146818_rtc_init(), Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 38/61] numa: remove unused #include, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 12/61] build: fix typo in error message, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 18/61] hw/registerfields: add missing include, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 46/61] hw/i2c: remove old i386 dependency, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 31/61] misc: remove headers implicitly included, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 37/61] misc: avoid "include/" in include path, Michael Tokarev, 2017/12/17
- [Qemu-trivial] [PULL 19/61] hw/input/hid: Add support for several keys., Michael Tokarev, 2017/12/17