R: Damien Hedde <damien.hedde@dahe.fr>
S: Maintained
F: include/hw/core/clock.h
-F: include/hw/qdev-clock.h
+F: include/hw/core/qdev-clock.h
F: hw/core/clock.c
F: hw/core/clock-vmstate.c
F: hw/core/qdev-clock.c
+--------------+
Clocks are defined in the ``include/hw/core/clock.h`` header and device
-related functions are defined in the ``include/hw/qdev-clock.h``
+related functions are defined in the ``include/hw/core/qdev-clock.h``
header.
The clock state
outputs. The function ``qdev_init_clocks()`` must be called with the array as
parameter to initialize the clocks: it has the same behaviour as calling the
``qdev_init_clock_in/out()`` for each clock in the array. To ease the array
-construction, some macros are defined in ``include/hw/qdev-clock.h``.
+construction, some macros are defined in ``include/hw/core/qdev-clock.h``.
As an example, the following creates 2 clocks to a device: one input and one
output.
#include "qemu/osdep.h"
#include "hw/adc/npcm7xx_adc.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/registerfields.h"
#include "migration/vmstate.h"
#include "hw/arm/armsse-version.h"
#include "hw/arm/boot.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
/*
* The SSE-300 puts some devices in different places to the
#include "hw/arm/boot.h"
#include "hw/core/loader.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "elf.h"
#include "system/reset.h"
#include "qemu/error-report.h"
#include "system/block-backend.h"
#include "qemu/error-report.h"
#include "qemu/units.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "system/system.h"
static struct arm_boot_info aspeed_board_binfo = {
#include "qapi/error.h"
#include "system/address-spaces.h"
#include "system/system.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "hw/arm/aspeed_soc.h"
#include "hw/arm/machines-qom.h"
#include "hw/arm/aspeed.h"
#include "hw/arm/aspeed_soc.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "system/system.h"
#include "hw/i2c/smbus_eeprom.h"
#include "system/system.h"
#include "hw/arm/aspeed.h"
#include "hw/core/boards.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/arm/aspeed_soc.h"
#include "hw/core/loader.h"
#include "hw/arm/boot.h"
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "hw/arm/aspeed_soc.h"
#include "hw/arm/aspeed_coprocessor.h"
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "hw/arm/aspeed_soc.h"
#include "hw/arm/aspeed_coprocessor.h"
#include "system/system.h"
#include "system/block-backend.h"
#include "hw/core/boards.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/arm/aspeed_soc.h"
#include "hw/arm/boot.h"
#include "hw/arm/machines-qom.h"
#include "system/address-spaces.h"
#include "system/system.h"
#include "hw/arm/max78000_soc.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
static const uint32_t max78000_icc_addr[] = {0x4002a000, 0x4002a800};
#include "qapi/error.h"
#include "hw/core/boards.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/error-report.h"
#include "hw/arm/max78000_soc.h"
#include "hw/arm/boot.h"
#include "hw/net/lan9118.h"
#include "net/net.h"
#include "hw/core/split-irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qom/object.h"
#include "hw/core/irq.h"
#include "hw/net/lan9118.h"
#include "net/net.h"
#include "hw/watchdog/cmsdk-apb-watchdog.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qobject/qlist.h"
#include "qom/object.h"
#include "system/system.h"
#include "hw/core/boards.h"
#include "hw/core/or-irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/arm/boot.h"
#include "hw/arm/bsa.h"
#include "hw/char/serial-mm.h"
#include "hw/arm/msf2-soc.h"
#include "hw/misc/unimp.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "system/system.h"
#define MSF2_TIMER_BASE 0x40004000
#include "hw/qdev-properties.h"
#include "hw/arm/boot.h"
#include "hw/arm/machines-qom.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "system/address-spaces.h"
#include "hw/arm/msf2-soc.h"
#include "hw/misc/tz-ppc.h"
#include "hw/misc/unimp.h"
#include "hw/rtc/pl031.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qom/object.h"
#define MUSCA_NUMIRQ_MAX 96
#include "qapi/error.h"
#include "hw/core/boards.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/error-report.h"
#include "hw/arm/stm32f205_soc.h"
#include "hw/arm/boot.h"
#include "qapi/error.h"
#include "hw/core/boards.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/error-report.h"
#include "hw/arm/stm32f405_soc.h"
#include "hw/arm/boot.h"
#include "hw/char/serial-mm.h"
#include "hw/core/loader.h"
#include "hw/misc/unimp.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "exec/tswap.h"
#include "hw/intc/arm_gic.h"
#include "hw/core/loader.h"
#include "hw/misc/unimp.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/units.h"
#include "qapi/error.h"
#include "hw/arm/boot.h"
#include "hw/sysbus.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "qemu/log.h"
#include "qapi/error.h"
#include "hw/core/boards.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/error-report.h"
#include "hw/arm/stm32f405_soc.h"
#include "hw/arm/boot.h"
#include "migration/vmstate.h"
#include "hw/misc/unimp.h"
#include "hw/timer/stellaris-gptm.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qom/object.h"
#include "qobject/qlist.h"
#include "ui/input.h"
#include "system/address-spaces.h"
#include "hw/arm/stm32f100_soc.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "system/system.h"
#include "system/address-spaces.h"
#include "hw/arm/stm32f205_soc.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "system/system.h"
/* At the moment only Timer 2 to 5 are modelled */
#include "system/address-spaces.h"
#include "system/system.h"
#include "hw/arm/stm32f405_soc.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#define RCC_ADDR 0x40023800
#include "hw/arm/stm32l4x5_soc.h"
#include "hw/char/stm32l4x5_usart.h"
#include "hw/gpio/stm32l4x5_gpio.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#define FLASH_BASE_ADDRESS 0x08000000
#include "qapi/error.h"
#include "hw/core/boards.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/error-report.h"
#include "hw/arm/stm32f100_soc.h"
#include "hw/arm/boot.h"
#include "hw/char/cadence_uart.h"
#include "hw/net/cadence_gem.h"
#include "hw/cpu/a9mpcore.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/misc/unimp.h"
#include "system/reset.h"
#include "qom/object.h"
#include "qemu/module.h"
#include "hw/char/cadence_uart.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties-system.h"
#include "trace.h"
#include "qemu/osdep.h"
#include "hw/char/ibex_uart.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/qdev-properties-system.h"
#include "hw/registerfields.h"
#include "hw/char/pl011.h"
#include "hw/core/irq.h"
#include "hw/sysbus.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/qdev-properties-system.h"
#include "migration/vmstate.h"
#include "hw/char/stm32l4x5_usart.h"
#include "hw/core/clock.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/qdev-properties-system.h"
#include "hw/registerfields.h"
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-core.h"
#include "qapi/error.h"
#include "hw/qdev-properties.h"
#include "hw/core/boards.h"
#include "hw/sysbus.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "migration/vmstate.h"
#include "trace.h"
#include "hw/gpio/stm32l4x5_gpio.h"
#include "hw/core/irq.h"
#include "hw/core/clock.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "qapi/visitor.h"
#include "qapi/error.h"
#include "hw/mips/bootloader.h"
#include "hw/mips/cps.h"
#include "hw/pci-host/xilinx-pcie.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "hw/mips/cps.h"
#include "hw/mips/mips.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "system/tcg.h"
#include "system/reset.h"
#include "system/kvm.h"
#include "semihosting/semihost.h"
#include "hw/mips/cps.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "target/mips/internal.h"
#include "trace.h"
#include "cpu.h"
#include "qemu/osdep.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/misc/npcm7xx_mft.h"
#include "hw/misc/npcm7xx_pwm.h"
#include "qemu/osdep.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/misc/npcm7xx_pwm.h"
#include "hw/registerfields.h"
#include "hw/misc/npcm_clk.h"
#include "hw/timer/npcm7xx_timer.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
#include "hw/misc/stm32l4x5_rcc_internals.h"
#include "hw/core/clock.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/qdev-properties-system.h"
#include "hw/registerfields.h"
#include "hw/core/irq.h"
#include "migration/vmstate.h"
#include "hw/core/clock.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qapi/error.h"
#include "hw/misc/stm32l4x5_syscfg.h"
#include "hw/gpio/stm32l4x5_gpio.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/registerfields.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qom/object.h"
#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include <zlib.h> /* for crc32 */
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/net/npcm7xx_emc.h"
#include "net/eth.h"
#include "migration/vmstate.h"
#include "hw/core/irq.h"
#include "hw/sysbus.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "qemu/timer.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/core/irq.h"
#include "hw/qdev-properties.h"
#include "hw/registerfields.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/timer/cmsdk-apb-dualtimer.h"
#include "migration/vmstate.h"
#include "hw/sysbus.h"
#include "hw/core/irq.h"
#include "hw/registerfields.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/timer/cmsdk-apb-timer.h"
#include "migration/vmstate.h"
#include "qemu/osdep.h"
#include "hw/core/irq.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/timer/npcm7xx_timer.h"
#include "migration/vmstate.h"
#include "hw/sysbus.h"
#include "hw/registerfields.h"
#include "hw/core/clock.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "migration/vmstate.h"
/* Registers in the control frame */
#include "hw/core/irq.h"
#include "hw/registerfields.h"
#include "hw/core/clock.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qapi/error.h"
#include "migration/vmstate.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/timer/stellaris-gptm.h"
static void gptm_update_irq(gptm_state *s)
#include "hw/core/irq.h"
#include "hw/qdev-properties.h"
#include "hw/registerfields.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/watchdog/cmsdk-apb-watchdog.h"
#include "migration/vmstate.h"
#define HW_MISC_BCM2835_CPRMAN_H
#include "hw/sysbus.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#define TYPE_BCM2835_CPRMAN "bcm2835-cprman"
#include "hw/register.h"
#include "hw/core/ptimer.h"
#include "net/can_emu.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#define TYPE_XILINX_CANFD "xlnx.versal-canfd"
#include "net/can_host.h"
#include "qemu/fifo32.h"
#include "hw/core/ptimer.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#define TYPE_XLNX_ZYNQMP_CAN "xlnx.zynqmp-can"
#include "hw/sysbus.h"
#include "hw/core/clock.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "hw/qdev-properties.h"
#include "hw/qdev-properties-system.h"
#include "hw/core/irq.h"
#include "system/kvm.h"
#include "system/qtest.h"
#include "hw/qdev-properties.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "fpu_helper.h"
#ifndef CONFIG_USER_ONLY
#include "semihosting/semihost.h"
#include "fpu/softfloat.h"
#include "qemu/module.h"
#include "migration/vmstate.h"
-#include "hw/qdev-clock.h"
+#include "hw/core/qdev-clock.h"
#include "accel/tcg/cpu-ops.h"
#ifndef CONFIG_USER_ONLY
#include "system/memory.h"