Zydis  v3.0.0
Status.h File Reference

Status code definitions and check macros. More...

#include <Zycore/Status.h>
Include dependency graph for Status.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ZYAN_MODULE_ZYDIS   0x002
 The zydis module id. More...
 
#define ZYDIS_STATUS_NO_MORE_DATA    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x00)
 An attempt was made to read data from an input data-source that has no more data available. More...
 
#define ZYDIS_STATUS_DECODING_ERROR    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x01)
 An general error occured while decoding the current instruction. More...
 
#define ZYDIS_STATUS_INSTRUCTION_TOO_LONG    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x02)
 The instruction exceeded the maximum length of 15 bytes. More...
 
#define ZYDIS_STATUS_BAD_REGISTER    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x03)
 The instruction encoded an invalid register. More...
 
#define ZYDIS_STATUS_ILLEGAL_LOCK    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x04)
 A lock-prefix (F0) was found while decoding an instruction that does not support locking. More...
 
#define ZYDIS_STATUS_ILLEGAL_LEGACY_PFX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x05)
 A legacy-prefix (F2, F3, 66) was found while decoding a XOP/VEX/EVEX/MVEX instruction. More...
 
#define ZYDIS_STATUS_ILLEGAL_REX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x06)
 A rex-prefix was found while decoding a XOP/VEX/EVEX/MVEX instruction. More...
 
#define ZYDIS_STATUS_INVALID_MAP    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x07)
 An invalid opcode-map value was found while decoding a XOP/VEX/EVEX/MVEX-prefix. More...
 
#define ZYDIS_STATUS_MALFORMED_EVEX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x08)
 An error occured while decoding the EVEX-prefix. More...
 
#define ZYDIS_STATUS_MALFORMED_MVEX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x09)
 An error occured while decoding the MVEX-prefix. More...
 
#define ZYDIS_STATUS_INVALID_MASK    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x0A)
 An invalid write-mask was specified for an EVEX/MVEX instruction. More...
 
#define ZYDIS_STATUS_SKIP_TOKEN    ZYAN_MAKE_STATUS(0, ZYAN_MODULE_ZYDIS, 0x0B)
 Returning this status code in some specified formatter callbacks will cause the formatter to omit the corresponding token. More...
 

Detailed Description

Status code definitions and check macros.

Macro Definition Documentation

◆ ZYAN_MODULE_ZYDIS

#define ZYAN_MODULE_ZYDIS   0x002

The zydis module id.

◆ ZYDIS_STATUS_BAD_REGISTER

#define ZYDIS_STATUS_BAD_REGISTER    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x03)

The instruction encoded an invalid register.

◆ ZYDIS_STATUS_DECODING_ERROR

#define ZYDIS_STATUS_DECODING_ERROR    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x01)

An general error occured while decoding the current instruction.

The instruction might be undefined.

◆ ZYDIS_STATUS_ILLEGAL_LEGACY_PFX

#define ZYDIS_STATUS_ILLEGAL_LEGACY_PFX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x05)

A legacy-prefix (F2, F3, 66) was found while decoding a XOP/VEX/EVEX/MVEX instruction.

◆ ZYDIS_STATUS_ILLEGAL_LOCK

#define ZYDIS_STATUS_ILLEGAL_LOCK    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x04)

A lock-prefix (F0) was found while decoding an instruction that does not support locking.

◆ ZYDIS_STATUS_ILLEGAL_REX

#define ZYDIS_STATUS_ILLEGAL_REX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x06)

A rex-prefix was found while decoding a XOP/VEX/EVEX/MVEX instruction.

◆ ZYDIS_STATUS_INSTRUCTION_TOO_LONG

#define ZYDIS_STATUS_INSTRUCTION_TOO_LONG    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x02)

The instruction exceeded the maximum length of 15 bytes.

◆ ZYDIS_STATUS_INVALID_MAP

#define ZYDIS_STATUS_INVALID_MAP    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x07)

An invalid opcode-map value was found while decoding a XOP/VEX/EVEX/MVEX-prefix.

◆ ZYDIS_STATUS_INVALID_MASK

#define ZYDIS_STATUS_INVALID_MASK    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x0A)

An invalid write-mask was specified for an EVEX/MVEX instruction.

◆ ZYDIS_STATUS_MALFORMED_EVEX

#define ZYDIS_STATUS_MALFORMED_EVEX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x08)

An error occured while decoding the EVEX-prefix.

◆ ZYDIS_STATUS_MALFORMED_MVEX

#define ZYDIS_STATUS_MALFORMED_MVEX    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x09)

An error occured while decoding the MVEX-prefix.

◆ ZYDIS_STATUS_NO_MORE_DATA

#define ZYDIS_STATUS_NO_MORE_DATA    ZYAN_MAKE_STATUS(1, ZYAN_MODULE_ZYDIS, 0x00)

An attempt was made to read data from an input data-source that has no more data available.

◆ ZYDIS_STATUS_SKIP_TOKEN

#define ZYDIS_STATUS_SKIP_TOKEN    ZYAN_MAKE_STATUS(0, ZYAN_MODULE_ZYDIS, 0x0B)

Returning this status code in some specified formatter callbacks will cause the formatter to omit the corresponding token.

Valid callbacks:

  • ZYDIS_FORMATTER_FUNC_PRE_OPERAND
  • ZYDIS_FORMATTER_FUNC_POST_OPERAND
  • ZYDIS_FORMATTER_FUNC_FORMAT_OPERAND_REG
  • ZYDIS_FORMATTER_FUNC_FORMAT_OPERAND_MEM
  • ZYDIS_FORMATTER_FUNC_FORMAT_OPERAND_PTR
  • ZYDIS_FORMATTER_FUNC_FORMAT_OPERAND_IMM