Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon
fixup_handler_t Struct Reference

Implements the core behavior of a custom fixup. More...

#include <fixup.hpp>

Public Member Functions

bool is_signed () const
 Is the operand value signed?
 

Public Attributes

int32 cbsize
 size of this structure
 
const char * name
 Format name, must be unique.
 
uint32 props
 Fixup handler properties
 
uint8 size
 The examples below show how these options work. More...
 
uint8 width
 number of significant bits before shifting
 
uint8 shift
 number of bits to shift right before patching. More...
 
uint8 rsrv4
 
uint32 reftype
 reference info type and flags, std_apply() produces an offset of this type
 
bool(idaapi * apply )(const fixup_handler_t *fh, ea_t item_ea, ea_t fixup_ea, int opnum, bool is_macro, const fixup_data_t &fd)
 Apply a fixup: take it into account while analyzing the file. More...
 
uval_t(idaapi * get_value )(const fixup_handler_t *fh, ea_t ea)
 Get the operand value. More...
 
bool(idaapi * patch_value )(const fixup_handler_t *fh, ea_t ea, const fixup_data_t &fd)
 Patch the fixup bytes. More...
 

Detailed Description

Implements the core behavior of a custom fixup.

Member Data Documentation

◆ apply

bool(idaapi * fixup_handler_t::apply) (const fixup_handler_t *fh, ea_t item_ea, ea_t fixup_ea, int opnum, bool is_macro, const fixup_data_t &fd)

Apply a fixup: take it into account while analyzing the file.

Usually it consists of converting the operand into an offset expression.

See also
apply_fixup() If this callback is not specified then std_apply() is used.

◆ get_value

uval_t(idaapi * fixup_handler_t::get_value) (const fixup_handler_t *fh, ea_t ea)

Get the operand value.

This callback is called from get_fixup_value().

See also
get_fixup_value() If this callback is not specified then std_get_value() is used.

◆ patch_value

bool(idaapi * fixup_handler_t::patch_value) (const fixup_handler_t *fh, ea_t ea, const fixup_data_t &fd)

Patch the fixup bytes.

This callback is called from patch_fixup_value() or after changing the fixup (e.g. after it was moved from one location to another). If this callback is not specified then std_patch_value() is used.

See also
patch_fixup_value()
Return values
falsethe fixup bytes do not fit. The database is changed even in this case.

The documentation for this struct was generated from the following file: