| #define S390_RUNTIME_INSTR_START 0x1 |
| #define S390_RUNTIME_INSTR_STOP 0x2 |
| struct runtime_instr_cb { |
| __u32 pstate_set_buf : 1; |
| __u32 pstate_collect : 1; |
| __u32 sstate_collect : 1; |
| __u32 buffer_full_int : 1; |
| __u32 return_type_br : 1; |
| __u32 lat_lev_ignore : 1; |
| extern struct runtime_instr_cb runtime_instr_empty_cb; |
| static inline void load_runtime_instr_cb(struct runtime_instr_cb *cb) |
| asm volatile(".insn rsy,0xeb0000000060,0,0,%0" /* LRIC */ |
| static inline void store_runtime_instr_cb(struct runtime_instr_cb *cb) |
| asm volatile(".insn rsy,0xeb0000000061,0,0,%0" /* STRIC */ |
| static inline void save_ri_cb(struct runtime_instr_cb *cb_prev) |
| store_runtime_instr_cb(cb_prev); |
| static inline void restore_ri_cb(struct runtime_instr_cb *cb_next, |
| struct runtime_instr_cb *cb_prev) |
| load_runtime_instr_cb(cb_next); |
| load_runtime_instr_cb(&runtime_instr_empty_cb); |
| void exit_thread_runtime_instr(void); |
| #endif /* _RUNTIME_INSTR_H */ |