mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 21:33:40 +08:00
1599121b57
This API provides some encapsulation of registers and factors out some common functionality to common code. Bits of device state (usually MMIO registers) often have all sorts of access restrictions and semantics associated with them. This API allows you to define what those restrictions are on a bit-by-bit basis. Helper functions are then used to access the register which observe the semantics defined by the RegisterAccessInfo struct. Some features: Bits can be marked as read_only (ro field) Bits can be marked as write-1-clear (w1c field) Bits can be marked as reserved (rsvd field) Reset values can be defined (reset) Bits can be marked clear on read (cor) Pre and post action callbacks can be added to read and write ops Verbose debugging info can be enabled/disabled Useful for defining device register spaces in a data driven way. Cuts down on a lot of the verbosity and repetition in the switch-case blocks in the standard foo_mmio_read/write functions. Also useful for automated generation of device models from hardware design sources. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 40d62c7e1bf6e63bb4193ec46b15092a7d981e59.1467053537.git.alistair.francis@xilinx.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
20 lines
708 B
Makefile
20 lines
708 B
Makefile
# core qdev-related obj files, also used by *-user:
|
|
common-obj-y += qdev.o qdev-properties.o
|
|
common-obj-y += bus.o
|
|
common-obj-y += fw-path-provider.o
|
|
# irq.o needed for qdev GPIO handling:
|
|
common-obj-y += irq.o
|
|
common-obj-y += hotplug.o
|
|
obj-y += nmi.o
|
|
|
|
common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
|
|
common-obj-$(CONFIG_XILINX_AXI) += stream.o
|
|
common-obj-$(CONFIG_PTIMER) += ptimer.o
|
|
common-obj-$(CONFIG_SOFTMMU) += sysbus.o
|
|
common-obj-$(CONFIG_SOFTMMU) += machine.o
|
|
common-obj-$(CONFIG_SOFTMMU) += null-machine.o
|
|
common-obj-$(CONFIG_SOFTMMU) += loader.o
|
|
common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o
|
|
common-obj-$(CONFIG_SOFTMMU) += register.o
|
|
common-obj-$(CONFIG_PLATFORM_BUS) += platform-bus.o
|