From: Peter Crosthwaite <peter.crosthwa...@xilinx.com> Allow defining of optional address decoding information in register definitions. This is useful for clients that want to associate registers with specific addresses.
Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> Signed-off-by: Alistair Francis <alistair.fran...@xilinx.com> --- V3: - Remove unused flags option include/hw/register.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/hw/register.h b/include/hw/register.h index 9aa9cfc..29edb5b 100644 --- a/include/hw/register.h +++ b/include/hw/register.h @@ -41,6 +41,11 @@ typedef struct RegisterAccessInfo RegisterAccessInfo; * allowing this function to modify the value before return to the client. */ +#define REG_DECODE_READ (1 << 0) +#define REG_DECODE_WRITE (1 << 1) +#define REG_DECODE_EXECUTE (1 << 2) +#define REG_DECODE_RW (REG_DECODE_READ | REG_DECODE_WRITE) + struct RegisterAccessInfo { const char *name; uint64_t ro; @@ -54,6 +59,10 @@ struct RegisterAccessInfo { void (*post_write)(RegisterInfo *reg, uint64_t val); uint64_t (*post_read)(RegisterInfo *reg, uint64_t val); + + struct { + hwaddr addr; + } decode; }; /** -- 2.5.0