Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
dis.c File Reference
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/ptrace.h>
#include <linux/timer.h>
#include <linux/mm.h>
#include <linux/smp.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/kallsyms.h>
#include <linux/reboot.h>
#include <linux/kprobes.h>
#include <linux/kdebug.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/atomic.h>
#include <asm/mathemu.h>
#include <asm/cpcmd.h>
#include <asm/lowcore.h>
#include <asm/debug.h>
#include <asm/irq.h>

Go to the source code of this file.

Data Structures

struct  operand
 
struct  insn
 

Macros

#define ONELONG   "%08lx: "
 
#define OPERAND_GPR   0x1 /* Operand printed as %rx */
 
#define OPERAND_FPR   0x2 /* Operand printed as %fx */
 
#define OPERAND_AR   0x4 /* Operand printed as %ax */
 
#define OPERAND_CR   0x8 /* Operand printed as %cx */
 
#define OPERAND_DISP   0x10 /* Operand printed as displacement */
 
#define OPERAND_BASE   0x20 /* Operand printed as base register */
 
#define OPERAND_INDEX   0x40 /* Operand printed as index register */
 
#define OPERAND_PCREL   0x80 /* Operand printed as pc-relative symbol */
 
#define OPERAND_SIGNED   0x100 /* Operand printed as signed value */
 
#define OPERAND_LENGTH   0x200 /* Operand printed as length (+1) */
 

Enumerations

enum  {
  UNUSED, R_8, R_12, R_16,
  R_20, R_24, R_28, R_32,
  F_8, F_12, F_16, F_20,
  F_24, F_28, F_32, A_8,
  A_12, A_24, A_28, C_8,
  C_12, B_16, B_32, X_12,
  D_20, D_36, D20_20, L4_8,
  L4_12, L8_8, U4_8, U4_12,
  U4_16, U4_20, U4_32, U8_8,
  U8_16, U8_24, U8_32, I8_8,
  I8_32, I16_16, I16_32, U16_16,
  U16_32, J16_16, J32_16, I32_16,
  U32_16, M_16, RO_28
}
 
enum  {
  INSTR_INVALID, INSTR_E, INSTR_RIE_R0IU, INSTR_RIE_R0UU,
  INSTR_RIE_RRP, INSTR_RIE_RRPU, INSTR_RIE_RRUUU, INSTR_RIE_RUPI,
  INSTR_RIE_RUPU, INSTR_RIE_RRI0, INSTR_RIL_RI, INSTR_RIL_RP,
  INSTR_RIL_RU, INSTR_RIL_UP, INSTR_RIS_R0RDU, INSTR_RIS_R0UU,
  INSTR_RIS_RURDI, INSTR_RIS_RURDU, INSTR_RI_RI, INSTR_RI_RP,
  INSTR_RI_RU, INSTR_RI_UP, INSTR_RRE_00, INSTR_RRE_0R,
  INSTR_RRE_AA, INSTR_RRE_AR, INSTR_RRE_F0, INSTR_RRE_FF,
  INSTR_RRE_FR, INSTR_RRE_R0, INSTR_RRE_RA, INSTR_RRE_RF,
  INSTR_RRE_RR, INSTR_RRE_RR_OPT, INSTR_RRF_0UFF, INSTR_RRF_F0FF,
  INSTR_RRF_F0FF2, INSTR_RRF_F0FR, INSTR_RRF_FFRU, INSTR_RRF_FUFF,
  INSTR_RRF_M0RR, INSTR_RRF_R0RR, INSTR_RRF_R0RR2, INSTR_RRF_RURR,
  INSTR_RRF_U0FF, INSTR_RRF_U0RF, INSTR_RRF_U0RR, INSTR_RRF_UUFF,
  INSTR_RRR_F0FF, INSTR_RRS_RRRDU, INSTR_RR_FF, INSTR_RR_R0,
  INSTR_RR_RR, INSTR_RR_U0, INSTR_RR_UR, INSTR_RSE_CCRD,
  INSTR_RSE_RRRD, INSTR_RSE_RURD, INSTR_RSI_RRP, INSTR_RSL_R0RD,
  INSTR_RSY_AARD, INSTR_RSY_CCRD, INSTR_RSY_RRRD, INSTR_RSY_RURD,
  INSTR_RSY_RDRM, INSTR_RS_AARD, INSTR_RS_CCRD, INSTR_RS_R0RD,
  INSTR_RS_RRRD, INSTR_RS_RURD, INSTR_RXE_FRRD, INSTR_RXE_RRRD,
  INSTR_RXF_FRRDF, INSTR_RXY_FRRD, INSTR_RXY_RRRD, INSTR_RXY_URRD,
  INSTR_RX_FRRD, INSTR_RX_RRRD, INSTR_RX_URRD, INSTR_SIL_RDI,
  INSTR_SIL_RDU, INSTR_SIY_IRD, INSTR_SIY_URD, INSTR_SI_URD,
  INSTR_SSE_RDRD, INSTR_SSF_RRDRD, INSTR_SSF_RRDRD2, INSTR_SS_L0RDRD,
  INSTR_SS_LIRDRD, INSTR_SS_LLRDRD, INSTR_SS_RRRDRD, INSTR_SS_RRRDRD2,
  INSTR_SS_RRRDRD3, INSTR_S_00, INSTR_S_RD
}
 
enum  {
  LONG_INSN_ALGHSIK, LONG_INSN_ALHSIK, LONG_INSN_CLFHSI, LONG_INSN_CLGFRL,
  LONG_INSN_CLGHRL, LONG_INSN_CLGHSI, LONG_INSN_CLHHSI, LONG_INSN_LLGFRL,
  LONG_INSN_LLGHRL, LONG_INSN_POPCNT, LONG_INSN_RISBHG, LONG_INSN_RISBLG,
  LONG_INSN_RINEXT, LONG_INSN_RIEMIT, LONG_INSN_TABORT, LONG_INSN_TBEGIN,
  LONG_INSN_TBEGINC
}
 

Functions

int insn_to_mnemonic (unsigned char *instruction, char buf[8])
 
 EXPORT_SYMBOL_GPL (insn_to_mnemonic)
 
void show_code (struct pt_regs *regs)
 
void print_fn_code (unsigned char *code, unsigned long len)
 

Macro Definition Documentation

#define ONELONG   "%08lx: "

Definition at line 35 of file dis.c.

#define OPERAND_AR   0x4 /* Operand printed as %ax */

Definition at line 42 of file dis.c.

#define OPERAND_BASE   0x20 /* Operand printed as base register */

Definition at line 45 of file dis.c.

#define OPERAND_CR   0x8 /* Operand printed as %cx */

Definition at line 43 of file dis.c.

#define OPERAND_DISP   0x10 /* Operand printed as displacement */

Definition at line 44 of file dis.c.

#define OPERAND_FPR   0x2 /* Operand printed as %fx */

Definition at line 41 of file dis.c.

#define OPERAND_GPR   0x1 /* Operand printed as %rx */

Definition at line 40 of file dis.c.

#define OPERAND_INDEX   0x40 /* Operand printed as index register */

Definition at line 46 of file dis.c.

#define OPERAND_LENGTH   0x200 /* Operand printed as length (+1) */

Definition at line 49 of file dis.c.

#define OPERAND_PCREL   0x80 /* Operand printed as pc-relative symbol */

Definition at line 47 of file dis.c.

#define OPERAND_SIGNED   0x100 /* Operand printed as signed value */

Definition at line 48 of file dis.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
UNUSED 
R_8 
R_12 
R_16 
R_20 
R_24 
R_28 
R_32 
F_8 
F_12 
F_16 
F_20 
F_24 
F_28 
F_32 
A_8 
A_12 
A_24 
A_28 
C_8 
C_12 
B_16 
B_32 
X_12 
D_20 
D_36 
D20_20 
L4_8 
L4_12 
L8_8 
U4_8 
U4_12 
U4_16 
U4_20 
U4_32 
U8_8 
U8_16 
U8_24 
U8_32 
I8_8 
I8_32 
I16_16 
I16_32 
U16_16 
U16_32 
J16_16 
J32_16 
I32_16 
U32_16 
M_16 
RO_28 

Definition at line 51 of file dis.c.

anonymous enum
Enumerator:
INSTR_INVALID 
INSTR_E 
INSTR_RIE_R0IU 
INSTR_RIE_R0UU 
INSTR_RIE_RRP 
INSTR_RIE_RRPU 
INSTR_RIE_RRUUU 
INSTR_RIE_RUPI 
INSTR_RIE_RUPU 
INSTR_RIE_RRI0 
INSTR_RIL_RI 
INSTR_RIL_RP 
INSTR_RIL_RU 
INSTR_RIL_UP 
INSTR_RIS_R0RDU 
INSTR_RIS_R0UU 
INSTR_RIS_RURDI 
INSTR_RIS_RURDU 
INSTR_RI_RI 
INSTR_RI_RP 
INSTR_RI_RU 
INSTR_RI_UP 
INSTR_RRE_00 
INSTR_RRE_0R 
INSTR_RRE_AA 
INSTR_RRE_AR 
INSTR_RRE_F0 
INSTR_RRE_FF 
INSTR_RRE_FR 
INSTR_RRE_R0 
INSTR_RRE_RA 
INSTR_RRE_RF 
INSTR_RRE_RR 
INSTR_RRE_RR_OPT 
INSTR_RRF_0UFF 
INSTR_RRF_F0FF 
INSTR_RRF_F0FF2 
INSTR_RRF_F0FR 
INSTR_RRF_FFRU 
INSTR_RRF_FUFF 
INSTR_RRF_M0RR 
INSTR_RRF_R0RR 
INSTR_RRF_R0RR2 
INSTR_RRF_RURR 
INSTR_RRF_U0FF 
INSTR_RRF_U0RF 
INSTR_RRF_U0RR 
INSTR_RRF_UUFF 
INSTR_RRR_F0FF 
INSTR_RRS_RRRDU 
INSTR_RR_FF 
INSTR_RR_R0 
INSTR_RR_RR 
INSTR_RR_U0 
INSTR_RR_UR 
INSTR_RSE_CCRD 
INSTR_RSE_RRRD 
INSTR_RSE_RURD 
INSTR_RSI_RRP 
INSTR_RSL_R0RD 
INSTR_RSY_AARD 
INSTR_RSY_CCRD 
INSTR_RSY_RRRD 
INSTR_RSY_RURD 
INSTR_RSY_RDRM 
INSTR_RS_AARD 
INSTR_RS_CCRD 
INSTR_RS_R0RD 
INSTR_RS_RRRD 
INSTR_RS_RURD 
INSTR_RXE_FRRD 
INSTR_RXE_RRRD 
INSTR_RXF_FRRDF 
INSTR_RXY_FRRD 
INSTR_RXY_RRRD 
INSTR_RXY_URRD 
INSTR_RX_FRRD 
INSTR_RX_RRRD 
INSTR_RX_URRD 
INSTR_SIL_RDI 
INSTR_SIL_RDU 
INSTR_SIY_IRD 
INSTR_SIY_URD 
INSTR_SI_URD 
INSTR_SSE_RDRD 
INSTR_SSF_RRDRD 
INSTR_SSF_RRDRD2 
INSTR_SS_L0RDRD 
INSTR_SS_LIRDRD 
INSTR_SS_LLRDRD 
INSTR_SS_RRRDRD 
INSTR_SS_RRRDRD2 
INSTR_SS_RRRDRD3 
INSTR_S_00 
INSTR_S_RD 

Definition at line 109 of file dis.c.

anonymous enum
Enumerator:
LONG_INSN_ALGHSIK 
LONG_INSN_ALHSIK 
LONG_INSN_CLFHSI 
LONG_INSN_CLGFRL 
LONG_INSN_CLGHRL 
LONG_INSN_CLGHSI 
LONG_INSN_CLHHSI 
LONG_INSN_LLGFRL 
LONG_INSN_LLGHRL 
LONG_INSN_POPCNT 
LONG_INSN_RISBHG 
LONG_INSN_RISBLG 
LONG_INSN_RINEXT 
LONG_INSN_RIEMIT 
LONG_INSN_TABORT 
LONG_INSN_TBEGIN 
LONG_INSN_TBEGINC 

Definition at line 305 of file dis.c.

Function Documentation

EXPORT_SYMBOL_GPL ( insn_to_mnemonic  )
int insn_to_mnemonic ( unsigned char instruction,
char  buf[8] 
)

insn_to_mnemonic - decode an s390 instruction : instruction to decode : buffer to fill with mnemonic

Decode the instruction at and store the corresponding mnemonic into . is left unchanged if the instruction could not be decoded. Returns: %0 on success, %-ENOENT if the instruction was not found.

Definition at line 1515 of file dis.c.

void print_fn_code ( unsigned char code,
unsigned long  len 
)

Definition at line 1665 of file dis.c.

void show_code ( struct pt_regs regs)

Definition at line 1592 of file dis.c.