1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _RUNTIME_INSTR_H
3 #define _RUNTIME_INSTR_H
4 
5 #include <uapi/asm/runtime_instr.h>
6 
7 extern struct runtime_instr_cb runtime_instr_empty_cb;
8 
9 static inline void save_ri_cb(struct runtime_instr_cb *cb_prev)
10 {
11 	if (cb_prev)
12 		store_runtime_instr_cb(cb_prev);
13 }
14 
15 static inline void restore_ri_cb(struct runtime_instr_cb *cb_next,
16 				 struct runtime_instr_cb *cb_prev)
17 {
18 	if (cb_next)
19 		load_runtime_instr_cb(cb_next);
20 	else if (cb_prev)
21 		load_runtime_instr_cb(&runtime_instr_empty_cb);
22 }
23 
24 struct task_struct;
25 
26 void runtime_instr_release(struct task_struct *tsk);
27 
28 #endif /* _RUNTIME_INSTR_H */
29