1 /*
2 * Copyright (c) 2023 Institute of Parallel And Distributed Systems (IPADS), Shanghai Jiao Tong University (SJTU)
3 * Licensed under the Mulan PSL v2.
4 * You can use this software according to the terms and conditions of the Mulan PSL v2.
5 * You may obtain a copy of Mulan PSL v2 at:
6 * http://license.coscl.org.cn/MulanPSL2
7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
9 * PURPOSE.
10 * See the Mulan PSL v2 for more details.
11 */
12 #ifndef ARCH_AARCH64_ARCH_TIME_H
13 #define ARCH_AARCH64_ARCH_TIME_H
14
15 #include <common/types.h>
16
get_cycles(void)17 static inline u64 get_cycles(void)
18 {
19 u64 tsc;
20
21 asm volatile("mrs %0, pmccntr_el0" : "=r"(tsc));
22 return tsc;
23 }
24
25 #endif /* ARCH_AARCH64_ARCH_TIME_H */