diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2022-06-28 18:05:44 +1000 |
---|---|---|
committer | Daniel Henrique Barboza <danielhb413@gmail.com> | 2022-07-06 10:22:38 -0300 |
commit | 95444afcab4dd7ecd117b67aae5af8f8665be0ff (patch) | |
tree | 169a6e17c6336a0c52fff98165d06520b03e4ec0 /hw/intc | |
parent | b7d30fae5b4fe672c31f567358947990c37cd957 (diff) | |
download | qemu-95444afcab4dd7ecd117b67aae5af8f8665be0ff.zip qemu-95444afcab4dd7ecd117b67aae5af8f8665be0ff.tar.gz qemu-95444afcab4dd7ecd117b67aae5af8f8665be0ff.tar.bz2 |
ppc: Define SETFIELD for the ppc target
It keeps repeating, move it to the header. This uses __builtin_ffsll() to
allow using the macros in #define.
This is not using the QEMU's FIELD macros as this would require changing
all such macros found in skiboot (the PPC PowerNV firmware).
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220628080544.1509428-1-aik@ozlabs.ru>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Diffstat (limited to 'hw/intc')
-rw-r--r-- | hw/intc/pnv_xive.c | 20 | ||||
-rw-r--r-- | hw/intc/pnv_xive2.c | 20 |
2 files changed, 0 insertions, 40 deletions
diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c index 1ce1d7b..c7b75ed 100644 --- a/hw/intc/pnv_xive.c +++ b/hw/intc/pnv_xive.c @@ -67,26 +67,6 @@ static const XiveVstInfo vst_infos[] = { (xive)->chip->chip_id, ## __VA_ARGS__); /* - * QEMU version of the GETFIELD/SETFIELD macros - * - * TODO: It might be better to use the existing extract64() and - * deposit64() but this means that all the register definitions will - * change and become incompatible with the ones found in skiboot. - * - * Keep it as it is for now until we find a common ground. - */ -static inline uint64_t GETFIELD(uint64_t mask, uint64_t word) -{ - return (word & mask) >> ctz64(mask); -} - -static inline uint64_t SETFIELD(uint64_t mask, uint64_t word, - uint64_t value) -{ - return (word & ~mask) | ((value << ctz64(mask)) & mask); -} - -/* * When PC_TCTXT_CHIPID_OVERRIDE is configured, the PC_TCTXT_CHIPID * field overrides the hardwired chip ID in the Powerbus operations * and for CAM compares diff --git a/hw/intc/pnv_xive2.c b/hw/intc/pnv_xive2.c index f31c53c..f22ce5c 100644 --- a/hw/intc/pnv_xive2.c +++ b/hw/intc/pnv_xive2.c @@ -76,26 +76,6 @@ static const XiveVstInfo vst_infos[] = { (xive)->chip->chip_id, ## __VA_ARGS__); /* - * QEMU version of the GETFIELD/SETFIELD macros - * - * TODO: It might be better to use the existing extract64() and - * deposit64() but this means that all the register definitions will - * change and become incompatible with the ones found in skiboot. - * - * Keep it as it is for now until we find a common ground. - */ -static inline uint64_t GETFIELD(uint64_t mask, uint64_t word) -{ - return (word & mask) >> ctz64(mask); -} - -static inline uint64_t SETFIELD(uint64_t mask, uint64_t word, - uint64_t value) -{ - return (word & ~mask) | ((value << ctz64(mask)) & mask); -} - -/* * TODO: Document block id override */ static uint32_t pnv_xive2_block_id(PnvXive2 *xive) |