From 49e14ddbcef3477c9c47900ef132a92d1ca4180c Mon Sep 17 00:00:00 2001 From: Peter Crosthwaite Date: Mon, 4 Jul 2016 13:06:36 +0100 Subject: register: QOMify QOMify registers as a child of TYPE_DEVICE. This allows registers to define GPIOs. Define an init helper that will do QOM initialisation. Signed-off-by: Peter Crosthwaite Signed-off-by: Alistair Francis Reviewed-by: KONRAD Frederic Reviewed-by: Peter Maydell Message-id: 2545f71db26bf5586ca0c08a3e3cf1b217450552.1467053537.git.alistair.francis@xilinx.com Signed-off-by: Peter Maydell --- include/hw/register.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include/hw/register.h') diff --git a/include/hw/register.h b/include/hw/register.h index e8c58a1dbb..61c53fbf0a 100644 --- a/include/hw/register.h +++ b/include/hw/register.h @@ -11,6 +11,7 @@ #ifndef REGISTER_H #define REGISTER_H +#include "hw/qdev-core.h" #include "exec/memory.h" typedef struct RegisterInfo RegisterInfo; @@ -72,6 +73,9 @@ struct RegisterAccessInfo { */ struct RegisterInfo { + /* */ + DeviceState parent_obj; + /* */ void *data; int data_size; @@ -81,6 +85,9 @@ struct RegisterInfo { void *opaque; }; +#define TYPE_REGISTER "qemu,register" +#define REGISTER(obj) OBJECT_CHECK(RegisterInfo, (obj), TYPE_REGISTER) + /** * This structure is used to group all of the individual registers which are * modeled using the RegisterInfo structure. @@ -131,6 +138,13 @@ uint64_t register_read(RegisterInfo *reg, uint64_t re, const char* prefix, void register_reset(RegisterInfo *reg); +/** + * Initialize a register. + * @reg: Register to initialize + */ + +void register_init(RegisterInfo *reg); + /** * Memory API MMIO write handler that will write to a Register API register. * @opaque: RegisterInfo to write to -- cgit v1.2.3