14486d586SSumit Garg /* SPDX-License-Identifier: BSD-2-Clause */ 24486d586SSumit Garg /* 34486d586SSumit Garg * Copyright (c) 2019, Linaro Limited 44486d586SSumit Garg */ 54486d586SSumit Garg #ifndef ARM_USER_SYSREG_H 64486d586SSumit Garg #define ARM_USER_SYSREG_H 74486d586SSumit Garg 84486d586SSumit Garg #include <util.h> 94486d586SSumit Garg 104486d586SSumit Garg #ifdef ARM32 114486d586SSumit Garg #include <arm32_user_sysreg.h> 124486d586SSumit Garg #endif 134486d586SSumit Garg 144486d586SSumit Garg #ifdef ARM64 154486d586SSumit Garg #include <arm64_user_sysreg.h> 164486d586SSumit Garg #endif 174486d586SSumit Garg 18739fd3abSJens Wiklander #ifndef __ASSEMBLER__ 19739fd3abSJens Wiklander static inline __noprof void isb(void) 20739fd3abSJens Wiklander { 21739fd3abSJens Wiklander asm volatile ("isb"); 22739fd3abSJens Wiklander } 23739fd3abSJens Wiklander 24*c6e827c0SJens Wiklander static inline __noprof uint64_t barrier_read_counter_timer(void) 25739fd3abSJens Wiklander { 26739fd3abSJens Wiklander isb(); 27739fd3abSJens Wiklander return read_cntpct(); 28739fd3abSJens Wiklander } 29739fd3abSJens Wiklander #endif 30739fd3abSJens Wiklander 314486d586SSumit Garg #endif /*ARM_USER_SYSREG_H*/ 32