IDA C++ SDK 9.2
Loading...
Searching...
No Matches
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?
 bool (idaapi *apply)(const fixup_handler_t *fh
 Apply a fixup: take it into account while analyzing the file.
 uval_t (idaapi *get_value)(const fixup_handler_t *fh
 Get the operand value.
 bool (idaapi *patch_value)(const fixup_handler_t *fh
 Patch the fixup bytes.
 DECLARE_COMPARISONS (fixup_handler_t)

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.
uint8 width
 number of significant bits before shifting
uint8 shift
 number of bits to shift right before patching.
uint8 rsrv4
uint32 reftype
 reference info type and flags, std_apply() produces an offset of this type
ea_t item_ea
ea_t ea_t fixup_ea
ea_t ea_t int opnum
ea_t ea_t int bool is_macro
ea_t ea_t int bool const fixup_data_tfd
ea_t ea
ea_t const fixup_data_tfd

Detailed Description

Implements the core behavior of a custom fixup.

Member Function Documentation

◆ is_signed()

bool fixup_handler_t::is_signed ( ) const
inline

Is the operand value signed?

◆ bool() [1/2]

fixup_handler_t::bool ( idaapi * apply) const

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.

◆ uval_t()

fixup_handler_t::uval_t ( idaapi * get_value) const

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.

◆ bool() [2/2]

fixup_handler_t::bool ( idaapi * patch_value) const

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.

◆ DECLARE_COMPARISONS()

fixup_handler_t::DECLARE_COMPARISONS ( fixup_handler_t )

Member Data Documentation

◆ cbsize

int32 fixup_handler_t::cbsize

size of this structure

◆ name

const char* fixup_handler_t::name

Format name, must be unique.

◆ props

uint32 fixup_handler_t::props

◆ item_ea

ea_t fixup_handler_t::item_ea

◆ fixup_ea

ea_t ea_t fixup_handler_t::fixup_ea

◆ opnum

ea_t ea_t int fixup_handler_t::opnum

◆ is_macro

ea_t ea_t int bool fixup_handler_t::is_macro

◆ fd [1/2]

ea_t ea_t int bool const fixup_data_t& fixup_handler_t::fd

◆ ea

ea_t fixup_handler_t::ea

◆ fd [2/2]

ea_t const fixup_data_t& fixup_handler_t::fd

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