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