arch/csky/kernel/probes/simulate-insn.h

Source file repositories/reference/linux-study-clean/arch/csky/kernel/probes/simulate-insn.h

File Facts

System
Linux kernel
Corpus path
arch/csky/kernel/probes/simulate-insn.h
Extension
.h
Size
1801 bytes
Lines
50
Domain
Architecture Layer
Bucket
arch/csky
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

if (csky_insn_is_##name(code)) {			\
			api->handler = simulate_##name;			\
			return INSN_GOOD_NO_SLOT;			\
		}							\
	} while (0)

__CSKY_INSN_FUNCS(br16,		0xfc00, 0x0400)
__CSKY_INSN_FUNCS(bt16,		0xfc00, 0x0800)
__CSKY_INSN_FUNCS(bf16,		0xfc00, 0x0c00)
__CSKY_INSN_FUNCS(jmp16,	0xffc3, 0x7800)
__CSKY_INSN_FUNCS(jsr16,	0xffc3, 0x7801)
__CSKY_INSN_FUNCS(lrw16,	0xfc00, 0x1000)
__CSKY_INSN_FUNCS(pop16,	0xffe0, 0x1480)

__CSKY_INSN_FUNCS(br32,		0x0000ffff, 0x0000e800)
__CSKY_INSN_FUNCS(bt32,		0x0000ffff, 0x0000e860)
__CSKY_INSN_FUNCS(bf32,		0x0000ffff, 0x0000e840)
__CSKY_INSN_FUNCS(jmp32,	0xffffffe0, 0x0000e8c0)
__CSKY_INSN_FUNCS(jsr32,	0xffffffe0, 0x0000e8e0)
__CSKY_INSN_FUNCS(lrw32,	0x0000ffe0, 0x0000ea80)
__CSKY_INSN_FUNCS(pop32,	0xfe00ffff, 0x0000ebc0)

__CSKY_INSN_FUNCS(bez32,	0x0000ffe0, 0x0000e900)
__CSKY_INSN_FUNCS(bnez32,	0x0000ffe0, 0x0000e920)
__CSKY_INSN_FUNCS(bnezad32,	0x0000ffe0, 0x0000e820)
__CSKY_INSN_FUNCS(bhsz32,	0x0000ffe0, 0x0000e9a0)
__CSKY_INSN_FUNCS(bhz32,	0x0000ffe0, 0x0000e940)
__CSKY_INSN_FUNCS(blsz32,	0x0000ffe0, 0x0000e960)
__CSKY_INSN_FUNCS(blz32,	0x0000ffe0, 0x0000e980)
__CSKY_INSN_FUNCS(bsr32,	0x0000fc00, 0x0000e000)
__CSKY_INSN_FUNCS(jmpi32,	0x0000ffff, 0x0000eac0)
__CSKY_INSN_FUNCS(jsri32,	0x0000ffff, 0x0000eae0)

#endif /* __CSKY_KERNEL_PROBES_SIMULATE_INSN_H */

Annotation

Implementation Notes