timex.h 758 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * include/asm-s390/timex.h
  3. *
  4. * S390 version
  5. * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
  6. *
  7. * Derived from "include/asm-i386/timex.h"
  8. * Copyright (C) 1992, Linus Torvalds
  9. */
  10. #ifndef _ASM_S390_TIMEX_H
  11. #define _ASM_S390_TIMEX_H
  12. #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
  13. typedef unsigned long long cycles_t;
  14. static inline unsigned long long get_clock (void)
  15. {
  16. unsigned long long clk;
  17. #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
  18. asm volatile("stck %0" : "=Q" (clk) : : "cc");
  19. #else /* __GNUC__ */
  20. asm volatile("stck 0(%1)" : "=m" (clk) : "a" (&clk) : "cc");
  21. #endif /* __GNUC__ */
  22. return clk;
  23. }
  24. static inline cycles_t get_cycles(void)
  25. {
  26. return (cycles_t) get_clock() >> 2;
  27. }
  28. #endif