// Check if a particular arch is supported by this engine. // To verify if this engine supports everything, use CS_ARCH_ALL func (e *Engine) Support(arch int) bool { return bool(C.cs_support(C.int(arch))) }
ErrVersion = Errno(9) // Unsupported version (bindings) ErrDiet = Errno(10) // Access irrelevant data in "diet" engine ErrSkipdata = Errno(11) // Access irrelevant data for "data" instruction in SKIPDATA mode ErrX86ATT = Errno(12) // X86 AT&T syntax is unsupported (opt-out at compile time) ErrX86Intel = Errno(13) // X86 Intel syntax is unsupported (opt-out at compile time) ) // Since this is a build-time option for the C lib, it seems logical to have // this as a static flag. // Diet Mode Changes: // - No regs_read, regs_written or groups // - No response to reg_name or insn_name // - No mnemonic or op_str // If you want to see any operands in diet mode, then you need CS_DETAIL. var dietMode = bool(C.cs_support(CS_SUPPORT_DIET)) // The arch and mode given at create time will determine how code is // disassembled. After use you must close an Engine with engine.Close() to allow // the C lib to free resources. type Engine struct { handle C.csh arch int mode uint skipdata *C.cs_opt_skipdata } // Information that exists for every Instruction, regardless of arch. // Structure members here will be promoted, so every Instruction will have // them available. Check the constants for each architecture for available // Instruction groups etc.