1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2016 Imagination Technologies
- *
- */
- #ifndef MIPS_GICTIMER_H
- #define MIPS_GICTIMER_H
- typedef struct MIPSGICTimerVPState MIPSGICTimerVPState;
- typedef struct MIPSGICTimerState MIPSGICTimerState;
- typedef void MIPSGICTimerCB(void *opaque, uint32_t vp_index);
- struct MIPSGICTimerVPState {
- QEMUTimer *qtimer;
- uint32_t vp_index;
- uint32_t comparelo;
- MIPSGICTimerState *gictimer;
- };
- struct MIPSGICTimerState {
- void *opaque;
- uint8_t countstop;
- uint32_t sh_counterlo;
- int32_t num_vps;
- MIPSGICTimerVPState *vptimers;
- MIPSGICTimerCB *cb;
- };
- uint32_t mips_gictimer_get_freq(MIPSGICTimerState *gic);
- uint32_t mips_gictimer_get_sh_count(MIPSGICTimerState *gic);
- void mips_gictimer_store_sh_count(MIPSGICTimerState *gic, uint64_t count);
- uint32_t mips_gictimer_get_vp_compare(MIPSGICTimerState *gictimer,
- uint32_t vp_index);
- void mips_gictimer_store_vp_compare(MIPSGICTimerState *gic, uint32_t vp_index,
- uint64_t compare);
- uint8_t mips_gictimer_get_countstop(MIPSGICTimerState *gic);
- void mips_gictimer_start_count(MIPSGICTimerState *gic);
- void mips_gictimer_stop_count(MIPSGICTimerState *gic);
- MIPSGICTimerState *mips_gictimer_init(void *opaque, uint32_t nvps,
- MIPSGICTimerCB *cb);
- #endif /* MIPS_GICTIMER_H */
|