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

mips_gictimer.h (1550B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 2016 Imagination Technologies
      7 *
      8 */
      9
     10#ifndef MIPS_GICTIMER_H
     11#define MIPS_GICTIMER_H
     12
     13typedef struct MIPSGICTimerVPState MIPSGICTimerVPState;
     14typedef struct MIPSGICTimerState MIPSGICTimerState;
     15
     16typedef void MIPSGICTimerCB(void *opaque, uint32_t vp_index);
     17
     18struct MIPSGICTimerVPState {
     19    QEMUTimer *qtimer;
     20    uint32_t vp_index;
     21    uint32_t comparelo;
     22    MIPSGICTimerState *gictimer;
     23};
     24
     25struct MIPSGICTimerState {
     26    void *opaque;
     27    uint8_t countstop;
     28    uint32_t sh_counterlo;
     29    int32_t num_vps;
     30    MIPSGICTimerVPState *vptimers;
     31    MIPSGICTimerCB *cb;
     32};
     33
     34uint32_t mips_gictimer_get_freq(MIPSGICTimerState *gic);
     35uint32_t mips_gictimer_get_sh_count(MIPSGICTimerState *gic);
     36void mips_gictimer_store_sh_count(MIPSGICTimerState *gic, uint64_t count);
     37uint32_t mips_gictimer_get_vp_compare(MIPSGICTimerState *gictimer,
     38                                      uint32_t vp_index);
     39void mips_gictimer_store_vp_compare(MIPSGICTimerState *gic, uint32_t vp_index,
     40                                    uint64_t compare);
     41uint8_t mips_gictimer_get_countstop(MIPSGICTimerState *gic);
     42void mips_gictimer_start_count(MIPSGICTimerState *gic);
     43void mips_gictimer_stop_count(MIPSGICTimerState *gic);
     44MIPSGICTimerState *mips_gictimer_init(void *opaque, uint32_t nvps,
     45                                      MIPSGICTimerCB *cb);
     46
     47#endif /* MIPS_GICTIMER_H */