• Borislav Petkov's avatar
    x86/insn: Add an insn_decode() API · 93281c4a
    Borislav Petkov authored
    Users of the instruction decoder should use this to decode instruction
    bytes. For that, have insn*() helpers return an int value to denote
    success/failure. When there's an error fetching the next insn byte and
    the insn falls short, return -ENODATA to denote that.
    
    While at it, make insn_get_opcode() more stricter as to whether what has
    seen so far is a valid insn and if not.
    
    Copy linux/kconfig.h for the tools-version of the decoder so that it can
    use IS_ENABLED().
    
    Also, cast the INSN_MODE_KERN dummy define value to (enum insn_mode)
    for tools use of the decoder because perf tool builds with -Werror and
    errors out with -Werror=sign-compare otherwise.
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Link: https://lkml.kernel.org/r/20210304174237.31945-5-bp@alien8.de
    93281c4a
insn.c 17.2 KB