timex.h 867 B

12345678910111213141516171819202122232425262728293031323334
  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. #define CLOCK_TICK_RATE ((1000 * 1000000UL) / 6)
  16. /* 64-bit timestamp */
  17. typedef unsigned long long cycles_t;
  18. static inline cycles_t get_cycles(void)
  19. {
  20. unsigned l, h;
  21. asm volatile (" dint\n"
  22. " mvc .s2 TSCL,%0\n"
  23. " mvc .s2 TSCH,%1\n"
  24. " rint\n"
  25. : "=b"(l), "=b"(h));
  26. return ((cycles_t)h << 32) | l;
  27. }
  28. #endif /* _ASM_C6X_TIMEX_H */