^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * linux/include/asm-alpha/timex.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * ALPHA architecture timex specifications
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef _ASMALPHA_TIMEX_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define _ASMALPHA_TIMEX_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) /* With only one or two oddballs, we use the RTC as the ticker, selecting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) the 32.768kHz reference clock, which nicely divides down to our HZ. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define CLOCK_TICK_RATE 32768
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * Standard way to access the cycle counter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * Currently only used on SMP for scheduling.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * Only the low 32 bits are available as a continuously counting entity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * But this only means we'll force a reschedule every 8 seconds or so,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * which isn't an evil thing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) typedef unsigned int cycles_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) static inline cycles_t get_cycles (void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) cycles_t ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __asm__ __volatile__ ("rpcc %0" : "=r"(ret));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #endif