cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

timex.h (1440B)


      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) 2001 - 2013 Tensilica Inc.
      7 */
      8
      9#ifndef _XTENSA_TIMEX_H
     10#define _XTENSA_TIMEX_H
     11
     12#include <asm/processor.h>
     13
     14#if XCHAL_NUM_TIMERS > 0 && \
     15	XTENSA_INT_LEVEL(XCHAL_TIMER0_INTERRUPT) <= XCHAL_EXCM_LEVEL
     16# define LINUX_TIMER     0
     17# define LINUX_TIMER_INT XCHAL_TIMER0_INTERRUPT
     18#elif XCHAL_NUM_TIMERS > 1 && \
     19	XTENSA_INT_LEVEL(XCHAL_TIMER1_INTERRUPT) <= XCHAL_EXCM_LEVEL
     20# define LINUX_TIMER     1
     21# define LINUX_TIMER_INT XCHAL_TIMER1_INTERRUPT
     22#elif XCHAL_NUM_TIMERS > 2 && \
     23	XTENSA_INT_LEVEL(XCHAL_TIMER2_INTERRUPT) <= XCHAL_EXCM_LEVEL
     24# define LINUX_TIMER     2
     25# define LINUX_TIMER_INT XCHAL_TIMER2_INTERRUPT
     26#else
     27# error "Bad timer number for Linux configurations!"
     28#endif
     29
     30extern unsigned long ccount_freq;
     31
     32void local_timer_setup(unsigned cpu);
     33
     34/*
     35 * Register access.
     36 */
     37
     38static inline unsigned long get_ccount (void)
     39{
     40	return xtensa_get_sr(ccount);
     41}
     42
     43static inline void set_ccount (unsigned long ccount)
     44{
     45	xtensa_set_sr(ccount, ccount);
     46}
     47
     48static inline unsigned long get_linux_timer (void)
     49{
     50	return xtensa_get_sr(SREG_CCOMPARE + LINUX_TIMER);
     51}
     52
     53static inline void set_linux_timer (unsigned long ccompare)
     54{
     55	xtensa_set_sr(ccompare, SREG_CCOMPARE + LINUX_TIMER);
     56}
     57
     58#include <asm-generic/timex.h>
     59
     60#endif	/* _XTENSA_TIMEX_H */