xref: /optee_os/lib/libutee/include/arm_user_sysreg.h (revision c6e827c0ef7f04c1e4cad39dd46e033e895178f6)
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