~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/csky/kernel/probes/simulate-insn.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0+ */
  2 
  3 #ifndef __CSKY_KERNEL_PROBES_SIMULATE_INSN_H
  4 #define __CSKY_KERNEL_PROBES_SIMULATE_INSN_H
  5 
  6 #define __CSKY_INSN_FUNCS(name, mask, val)                              \
  7 static __always_inline bool csky_insn_is_##name(probe_opcode_t code)    \
  8 {                                                                       \
  9         BUILD_BUG_ON(~(mask) & (val));                                  \
 10         return (code & (mask)) == (val);                                \
 11 }                                                                       \
 12 void simulate_##name(u32 opcode, long addr, struct pt_regs *regs);
 13 
 14 #define CSKY_INSN_SET_SIMULATE(name, code)                              \
 15         do {                                                            \
 16                 if (csky_insn_is_##name(code)) {                        \
 17                         api->handler = simulate_##name;                 \
 18                         return INSN_GOOD_NO_SLOT;                       \
 19                 }                                                       \
 20         } while (0)
 21 
 22 __CSKY_INSN_FUNCS(br16,         0xfc00, 0x0400)
 23 __CSKY_INSN_FUNCS(bt16,         0xfc00, 0x0800)
 24 __CSKY_INSN_FUNCS(bf16,         0xfc00, 0x0c00)
 25 __CSKY_INSN_FUNCS(jmp16,        0xffc3, 0x7800)
 26 __CSKY_INSN_FUNCS(jsr16,        0xffc3, 0x7801)
 27 __CSKY_INSN_FUNCS(lrw16,        0xfc00, 0x1000)
 28 __CSKY_INSN_FUNCS(pop16,        0xffe0, 0x1480)
 29 
 30 __CSKY_INSN_FUNCS(br32,         0x0000ffff, 0x0000e800)
 31 __CSKY_INSN_FUNCS(bt32,         0x0000ffff, 0x0000e860)
 32 __CSKY_INSN_FUNCS(bf32,         0x0000ffff, 0x0000e840)
 33 __CSKY_INSN_FUNCS(jmp32,        0xffffffe0, 0x0000e8c0)
 34 __CSKY_INSN_FUNCS(jsr32,        0xffffffe0, 0x0000e8e0)
 35 __CSKY_INSN_FUNCS(lrw32,        0x0000ffe0, 0x0000ea80)
 36 __CSKY_INSN_FUNCS(pop32,        0xfe00ffff, 0x0000ebc0)
 37 
 38 __CSKY_INSN_FUNCS(bez32,        0x0000ffe0, 0x0000e900)
 39 __CSKY_INSN_FUNCS(bnez32,       0x0000ffe0, 0x0000e920)
 40 __CSKY_INSN_FUNCS(bnezad32,     0x0000ffe0, 0x0000e820)
 41 __CSKY_INSN_FUNCS(bhsz32,       0x0000ffe0, 0x0000e9a0)
 42 __CSKY_INSN_FUNCS(bhz32,        0x0000ffe0, 0x0000e940)
 43 __CSKY_INSN_FUNCS(blsz32,       0x0000ffe0, 0x0000e960)
 44 __CSKY_INSN_FUNCS(blz32,        0x0000ffe0, 0x0000e980)
 45 __CSKY_INSN_FUNCS(bsr32,        0x0000fc00, 0x0000e000)
 46 __CSKY_INSN_FUNCS(jmpi32,       0x0000ffff, 0x0000eac0)
 47 __CSKY_INSN_FUNCS(jsri32,       0x0000ffff, 0x0000eae0)
 48 
 49 #endif /* __CSKY_KERNEL_PROBES_SIMULATE_INSN_H */
 50 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php