arch: Devel Asm Reference Manual

## arch arch |

## Functions

#define | AO_0
#define | AO_1()
#define | AO_2()
#define | AO_3()
#define | AO_4()
#define | AO_5()
#define | AO_GET_FLAGS()
#define | AO_GET_OFFSET()
#define | AO_GET_DSIZE()
#define | AO_GET_RSIZE()
#define | AO_GET_SIZE()
#define | AO_GET_TYPE()
#define | AO_GET_VALUE()
#define | AO_CONSTANT()
#define | AO_IMMEDIATE()
#define | AO_REGISTER()
#define | AO_DREGISTER()
#define | AO_DREGISTER2()
char const * | (*get_filename) ()
AsmFunction * | (*get_function_by_id) ()
AsmArchPrefix const * | (*get_prefix_by_opcode) ()
AsmArchInstruction const * | (*get_instruction_by_opcode) ()
AsmArchRegister const * | (*get_register_by_id_size) ()
AsmArchRegister const * | (*get_register_by_name_size) ()
AsmString * | (*get_string_by_id) ()
ssize_t | (*write) ()
ssize_t | (*peek) ()
ssize_t | (*read) ()
off_t | (*seek) ()
AsmArchPlugin * | (*init) ()
void | (*destroy) ()
int | (*encode) ()
int | (*decode) ()

## Types and Values

enum | AsmArchEndian
enum | AsmArchOperandType
#define | AOD_FLAGS
#define | AOD_OFFSET
#define | AOD_SIZE
#define | AOD_TYPE
#define | AOD_VALUE
#define | AOM_TYPE
#define | AOM_FLAGS
#define | AOM_OFFSET
#define | AOM_SIZE
#define | AOM_VALUE
#define | AOF_IMPLICIT
#define | AOF_SIGNED
#define | AOI_REFERS_STRING
#define | AOI_REFERS_FUNCTION
#define | ARO_COUNT
#define | ARF_ALIAS
| AsmArch
| AsmArchPlugin

## Description

## Functions

### AO_0

    # define AO_0()		AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE

### AO_1()

    # define AO_1(op1) op1, AOT_NONE, AOT_NONE, AOT_NONE, AOT_NONE

### AO_2()

    # define AO_2(op1, op2) op1, op2, AOT_NONE, AOT_NONE, AOT_NONE

### AO_3()

    #define             AO_3(op1, op2, op3)

### AO_4()

    #define             AO_4(op1, op2, op3, op4)

### AO_5()

    #define             AO_5(op1, op2, op3, op4, op5)

### AO_GET_FLAGS()

    # define AO_GET_FLAGS(operand) ((operand & AOM_FLAGS) >> AOD_FLAGS)

### AO_GET_OFFSET()

    # define AO_GET_OFFSET(operand) ((operand & AOM_OFFSET) >> AOD_OFFSET)

### AO_GET_DSIZE()

    # define AO_GET_DSIZE(operand) ((operand & AOM_OFFSET) >> AOD_OFFSET)

### AO_GET_RSIZE()

    # define AO_GET_RSIZE(operand) ((operand & AOM_SIZE) >> AOD_SIZE)

### AO_GET_SIZE()

    # define AO_GET_SIZE(operand) ((operand & AOM_SIZE) >> AOD_SIZE)

### AO_GET_TYPE()

    # define AO_GET_TYPE(operand) ((operand & AOM_TYPE) >> AOD_TYPE)

### AO_GET_VALUE()

    # define AO_GET_VALUE(operand) ((operand & AOM_VALUE) >> AOD_VALUE)

### AO_CONSTANT()

    #define             AO_CONSTANT(flags, size, value)

### AO_IMMEDIATE()

    #define             AO_IMMEDIATE(flags, size, type)

### AO_REGISTER()

    #define             AO_REGISTER(flags, size, id)

### AO_DREGISTER()

    #define             AO_DREGISTER(flags, dsize, rsize, id)

### AO_DREGISTER2()

    #define             AO_DREGISTER2(flags, did, dsize, id)

### get_filename ()

    char const *
    (*get_filename) (AsmArch *arch);

### get_function_by_id ()

    AsmFunction *
    (*get_function_by_id) (AsmArch *arch,
                           AsmFunctionId id);

### get_prefix_by_opcode ()

    AsmArchPrefix const *
    (*get_prefix_by_opcode) (AsmArch *arch,
                             uint8_t size,
                             uint32_t opcode);

### get_instruction_by_opcode ()

    AsmArchInstruction const *
    (*get_instruction_by_opcode) (AsmArch *arch,
                                  uint8_t size,
                                  uint32_t opcode);

### get_register_by_id_size ()

    AsmArchRegister const *
    (*get_register_by_id_size) (AsmArch *arch,
                                uint32_t id,
                                uint32_t size);

### get_register_by_name_size ()

    AsmArchRegister const *
    (*get_register_by_name_size) (AsmArch *arch,
                                  char const *name,
                                  uint32_t size);

### get_string_by_id ()

    AsmString *
    (*get_string_by_id) (AsmArch *arch,
                         AsmStringId id);

### write ()

    ssize_t
    (*write) (AsmArch *arch,
              void const *buf,
              size_t size);

### peek ()

    ssize_t
    (*peek) (AsmArch *arch,
             void *buf,
             size_t size);

### read ()

    ssize_t
    (*read) (AsmArch *arch,
             void *buf,
             size_t size);

### seek ()

    off_t
    (*seek) (AsmArch *arch,
             off_t offset,
             int whence);

### init ()

    AsmArchPlugin *
    (*init) (AsmArchPluginHelper *helper);

### destroy ()

    void
    (*destroy) (AsmArchPlugin *arch);

### encode ()

    int
    (*encode) (AsmArchPlugin *arch,
               AsmArchPrefix const *prefix,
               AsmArchInstruction const *instruction,
               AsmArchInstructionCall const *call);

### decode ()

    int
    (*decode) (AsmArchPlugin *arch,
               AsmArchInstructionCall *call);

## Types and Values

### enum AsmArchEndian

#### Members

ASM_ARCH_ENDIAN_BIG |  |
ASM_ARCH_ENDIAN_LITTLE |  |
ASM_ARCH_ENDIAN_BOTH |  |

### enum AsmArchOperandType

#### Members

AOT_NONE |  |
AOT_CONSTANT |  |
AOT_IMMEDIATE |  |
AOT_REGISTER |  |
AOT_DREGISTER |  |
AOT_DREGISTER2 |  |

### AOD_FLAGS

    # define AOD_FLAGS 24

### AOD_OFFSET

    # define AOD_OFFSET 16

### AOD_SIZE

    # define AOD_SIZE 8

### AOD_TYPE

    # define AOD_TYPE 28

### AOD_VALUE

    # define AOD_VALUE 0

### AOM_TYPE

    # define AOM_TYPE 0xf0000000

### AOM_FLAGS

    # define AOM_FLAGS 0x0f000000

### AOM_OFFSET

    # define AOM_OFFSET 0x00ff0000

### AOM_SIZE

    # define AOM_SIZE 0x0000ff00

### AOM_VALUE

    # define AOM_VALUE 0x000000ff

### AOF_IMPLICIT

    # define AOF_IMPLICIT 0x1

### AOF_SIGNED

    # define AOF_SIGNED 0x1

### AOI_REFERS_STRING

    # define AOI_REFERS_STRING 0x1

### AOI_REFERS_FUNCTION

    # define AOI_REFERS_FUNCTION 0x2

### ARO_COUNT

    # define ARO_COUNT 5

### ARF_ALIAS

    # define ARF_ALIAS 0x1

### AsmArch

    typedef struct _AsmArch AsmArch;

### AsmArchPlugin

    typedef struct _AsmArchPlugin AsmArchPlugin;