FILE
timex.h
File preview with syntax highlighting.
linux-6.19.14/arch/loongarch/include/asm/timex.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 4 */ 5#ifndef _ASM_TIMEX_H 6#define _ASM_TIMEX_H 7 8#ifdef __KERNEL__ 9 10#include <linux/compiler.h> 11 12#include <asm/cpu.h> 13#include <asm/cpu-features.h> 14 15typedef unsigned long cycles_t; 16 17#define get_cycles get_cycles 18 19static inline cycles_t get_cycles(void) 20{ 21#ifdef CONFIG_32BIT 22 return rdtime_l(); 23#else 24 return rdtime_d(); 25#endif 26} 27 28#ifdef CONFIG_32BIT 29 30#define get_cycles_hi get_cycles_hi 31 32static inline cycles_t get_cycles_hi(void) 33{ 34 return rdtime_h(); 35} 36 37#endif 38 39static inline u64 get_cycles64(void) 40{ 41#ifdef CONFIG_32BIT 42 u32 hi, lo; 43 44 do { 45 hi = rdtime_h(); 46 lo = rdtime_l(); 47 } while (hi != rdtime_h()); 48 49 return ((u64)hi << 32) | lo; 50#else 51 return rdtime_d(); 52#endif 53} 54 55#endif /* __KERNEL__ */ 56 57#endif /* _ASM_TIMEX_H */
~/
Read-only file preview.