1/* 2 * Port on Texas Instruments TMS320C6x architecture 3 * 4 * Copyright (C) 2004, 2009, 2010, 2011 Texas Instruments Incorporated 5 * Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com) 6 * 7 * Modified for 2.6.34: Mark Salter <msalter@redhat.com> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License version 2 as 11 * published by the Free Software Foundation. 12 */ 13#ifndef _ASM_C6X_TIMEX_H 14#define _ASM_C6X_TIMEX_H 15 16#define CLOCK_TICK_RATE ((1000 * 1000000UL) / 6) 17 18/* 64-bit timestamp */ 19typedef unsigned long long cycles_t; 20 21static inline cycles_t get_cycles(void) 22{ 23 unsigned l, h; 24 25 asm volatile (" dint\n" 26 " mvc .s2 TSCL,%0\n" 27 " mvc .s2 TSCH,%1\n" 28 " rint\n" 29 : "=b"(l), "=b"(h)); 30 return ((cycles_t)h << 32) | l; 31} 32 33#endif /* _ASM_C6X_TIMEX_H */ 34