1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Disassemble s390 instructions. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright IBM Corp. 2007 6*4882a593Smuzhiyun * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __ASM_S390_DIS_H__ 10*4882a593Smuzhiyun #define __ASM_S390_DIS_H__ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #include <asm/dis-defs.h> 13*4882a593Smuzhiyun insn_length(unsigned char code)14*4882a593Smuzhiyunstatic inline int insn_length(unsigned char code) 15*4882a593Smuzhiyun { 16*4882a593Smuzhiyun return ((((int) code + 64) >> 7) + 1) << 1; 17*4882a593Smuzhiyun } 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun struct pt_regs; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun void show_code(struct pt_regs *regs); 22*4882a593Smuzhiyun void print_fn_code(unsigned char *code, unsigned long len); 23*4882a593Smuzhiyun struct s390_insn *find_insn(unsigned char *code); 24*4882a593Smuzhiyun is_known_insn(unsigned char * code)25*4882a593Smuzhiyunstatic inline int is_known_insn(unsigned char *code) 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun return !!find_insn(code); 28*4882a593Smuzhiyun } 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif /* __ASM_S390_DIS_H__ */ 31