qemu/include/hw/timer/bcm2835_systmr.h
<<
>>
Prefs
   1/*
   2 * BCM2835 SYS timer emulation
   3 *
   4 * Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org>
   5 *
   6 * SPDX-License-Identifier: GPL-2.0-or-later
   7 */
   8
   9#ifndef BCM2835_SYSTIMER_H
  10#define BCM2835_SYSTIMER_H
  11
  12#include "hw/sysbus.h"
  13#include "hw/irq.h"
  14#include "qemu/timer.h"
  15#include "qom/object.h"
  16
  17#define TYPE_BCM2835_SYSTIMER "bcm2835-sys-timer"
  18OBJECT_DECLARE_SIMPLE_TYPE(BCM2835SystemTimerState, BCM2835_SYSTIMER)
  19
  20#define BCM2835_SYSTIMER_COUNT 4
  21
  22typedef struct {
  23    unsigned id;
  24    QEMUTimer timer;
  25    qemu_irq irq;
  26    BCM2835SystemTimerState *state;
  27} BCM2835SystemTimerCompare;
  28
  29struct BCM2835SystemTimerState {
  30    /*< private >*/
  31    SysBusDevice parent_obj;
  32
  33    /*< public >*/
  34    MemoryRegion iomem;
  35    struct {
  36        uint32_t ctrl_status;
  37        uint32_t compare[BCM2835_SYSTIMER_COUNT];
  38    } reg;
  39    BCM2835SystemTimerCompare tmr[BCM2835_SYSTIMER_COUNT];
  40};
  41
  42#endif
  43