cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

mc146818rtc.h (1408B)


      1/*
      2 * QEMU MC146818 RTC emulation
      3 *
      4 * Copyright (c) 2003-2004 Fabrice Bellard
      5 *
      6 * SPDX-License-Identifier: MIT
      7 */
      8
      9#ifndef HW_RTC_MC146818RTC_H
     10#define HW_RTC_MC146818RTC_H
     11
     12#include "qapi/qapi-types-machine.h"
     13#include "qemu/queue.h"
     14#include "qemu/timer.h"
     15#include "hw/isa/isa.h"
     16#include "qom/object.h"
     17
     18#define TYPE_MC146818_RTC "mc146818rtc"
     19OBJECT_DECLARE_SIMPLE_TYPE(RTCState, MC146818_RTC)
     20
     21struct RTCState {
     22    ISADevice parent_obj;
     23
     24    MemoryRegion io;
     25    MemoryRegion coalesced_io;
     26    uint8_t cmos_data[128];
     27    uint8_t cmos_index;
     28    int32_t base_year;
     29    uint64_t base_rtc;
     30    uint64_t last_update;
     31    int64_t offset;
     32    qemu_irq irq;
     33    int it_shift;
     34    /* periodic timer */
     35    QEMUTimer *periodic_timer;
     36    int64_t next_periodic_time;
     37    /* update-ended timer */
     38    QEMUTimer *update_timer;
     39    uint64_t next_alarm_time;
     40    uint16_t irq_reinject_on_ack_count;
     41    uint32_t irq_coalesced;
     42    uint32_t period;
     43    QEMUTimer *coalesced_timer;
     44    Notifier clock_reset_notifier;
     45    LostTickPolicy lost_tick_policy;
     46    Notifier suspend_notifier;
     47    QLIST_ENTRY(RTCState) link;
     48};
     49
     50#define RTC_ISA_IRQ 8
     51#define RTC_ISA_BASE 0x70
     52
     53ISADevice *mc146818_rtc_init(ISABus *bus, int base_year,
     54                             qemu_irq intercept_irq);
     55void rtc_set_memory(ISADevice *dev, int addr, int val);
     56int rtc_get_memory(ISADevice *dev, int addr);
     57
     58#endif /* MC146818RTC_H */