43#define V695_FIXUP_VHIGH 10
44#define V695_FIXUP_VLOW 11
47#define FIXUP_OFF16S 15
48#define FIXUP_OFF32S 16
50#define FIXUP_CUSTOM 0x8000
56 return (
type & FIXUP_CUSTOM) != 0;
65#define FIXUPF_REL 0x0001
69#define FIXUPF_EXTDEF 0x0002
73#define FIXUPF_UNUSED 0x0004
75#define FIXUPF_CREATED 0x0008
78#define FIXUPF_LOADER_MASK 0xF0000000
164 sel = seg ==
nullptr ? BADSEL : seg->
sel;
173 flags &= ~FIXUPF_REL;
369#define FHF_VERIFY 0x0001
372#define FHF_CODE 0x0002
374#define FHF_FORCE_CODE 0x0004
377#define FHF_ABS_OPVAL 0x0008
380#define FHF_SIGNED 0x0010
572 uint32 macro_reft_and_flags);
Reimplementation of vector class from STL.
Definition pro.h:2250
Describes a program segment.
Definition segment.hpp:69
sel_t sel
segment selector - should be unique.
Definition segment.hpp:242
idaman fixup_type_t ida_export find_custom_fixup(const char *name)
Get id of a custom fixup handler.
idaman ea_t ida_export get_next_fixup_ea(ea_t ea)
Find next address with fixup information.
idaman void ida_export set_fixup(ea_t source, const fixup_data_t &fd)
Set fixup information.
idaman void ida_export del_fixup(ea_t source)
Delete fixup information.
idaman const fixup_handler_t *ida_export get_fixup_handler(fixup_type_t type)
Get handler of standard or custom fixup.
qvector< fixup_info_t > fixups_t
Definition fixup.hpp:531
idaman bool ida_export patch_fixup_value(ea_t ea, const fixup_data_t &fd)
Patch the fixup bytes.
idaman void ida_export gen_fix_fixups(ea_t from, ea_t to, asize_t size)
Relocate the bytes with fixup information once more (generic function).
idaman bool ida_export unregister_custom_fixup(fixup_type_t type)
Unregister a new custom fixup format.
idaman ea_t ida_export get_prev_fixup_ea(ea_t ea)
Find previous address with fixup information.
bool contains_fixups(ea_t ea, asize_t size)
Does the specified address range contain any fixup information?
Definition fixup.hpp:538
THREAD_SAFE bool is_fixup_custom(fixup_type_t type)
Is fixup processed by processor module?
Definition fixup.hpp:54
idaman bool ida_export handle_fixups_in_macro(refinfo_t *ri, ea_t ea, fixup_type_t other, uint32 macro_reft_and_flags)
Handle two fixups in a macro.
bool exists_fixup(ea_t source)
Check that a fixup exists at the given address.
Definition fixup.hpp:202
idaman fixup_type_t ida_export register_custom_fixup(const fixup_handler_t *cfh)
Register a new custom fixup.
DECLARE_TYPE_AS_MOVABLE(fixup_info_t)
idaman bool ida_export get_fixup(fixup_data_t *fd, ea_t source)
Get fixup information.
idaman int ida_export calc_fixup_size(fixup_type_t type)
Calculate size of fixup in bytes (the number of bytes the fixup patches)
idaman bool ida_export apply_fixup(ea_t item_ea, ea_t fixup_ea, int n, bool is_macro)
Use fixup information for an address.
uint16 fixup_type_t
Fixup information structure.
Definition fixup.hpp:24
idaman bool ida_export get_fixups(fixups_t *out, ea_t ea, asize_t size)
idaman ea_t ida_export get_first_fixup_ea(void)
idaman const char *ida_export get_fixup_desc(qstring *buf, ea_t source, const fixup_data_t &fd)
Get FIXUP description comment.
idaman uval_t ida_export get_fixup_value(ea_t ea, fixup_type_t type)
Get the operand value.
uint8 rsrv4
Definition fixup.hpp:396
uint32 reftype
reference info type and flags, std_apply() produces an offset of this type
Definition fixup.hpp:398
uint8 shift
number of bits to shift right before patching.
Definition fixup.hpp:393
uint8 size
The examples below show how these options work.
Definition fixup.hpp:391
uint8 width
number of significant bits before shifting
Definition fixup.hpp:392
idaman size_t n
Definition pro.h:997
idaman segment_t *ida_export getseg(ea_t ea)
Get pointer to segment by linear address.
ea_t idaapi sel2ea(sel_t selector)
Get mapping of a selector as a linear address.
Definition segment.hpp:459
const tinfo_t & type
Definition hexrays.hpp:7301
uval_t uval_t
Definition kernwin.hpp:1878
asize_t size
Definition kernwin.hpp:6339
Definitions of various information kept in netnodes.
unsigned short uint16
unsigned 16 bit value
Definition pro.h:346
unsigned int uint32
unsigned 32 bit value
Definition pro.h:348
uint64 asize_t
Definition pro.h:423
int64 adiff_t
Definition pro.h:424
uint64 ea_t
Definition pro.h:421
int int32
signed 32 bit value
Definition pro.h:347
uint64 sel_t
Definition pro.h:422
unsigned char uint8
unsigned 8 bit value
Definition pro.h:344
_qstring< char > qstring
regular string
Definition pro.h:3694
Functions that deal with segments.
uval_t base
Definition fixup.hpp:87
const fixup_handler_t * get_handler() const
get_fixup_handler()
Definition fixup.hpp:346
void set_type_and_flags(fixup_type_t type_, uint32 flags_=0)
Definition fixup.hpp:119
ea_t off
target offset
Definition fixup.hpp:94
bool has_base(void) const
Is fixup relative?
Definition fixup.hpp:139
fixup_type_t type
Definition fixup.hpp:85
sel_t sel
selector of the target segment.
Definition fixup.hpp:90
bool is_unused(void) const
Definition fixup.hpp:134
bool patch_value(ea_t ea) const
patch_fixup_value()
Definition fixup.hpp:341
fixup_data_t(fixup_type_t type_, uint32 flags_=0)
Definition fixup.hpp:108
bool was_created(void) const
Is fixup artificial?
Definition fixup.hpp:142
void set_base(ea_t new_base)
Set base of fixup.
Definition fixup.hpp:154
fixup_type_t get_type(void) const
Fixup type Types of fixups.
Definition fixup.hpp:117
bool is_extdef(void) const
Definition fixup.hpp:130
bool is_custom(void) const
is_fixup_custom()
Definition fixup.hpp:312
uval_t get_value(ea_t ea) const
get_fixup_value()
Definition fixup.hpp:336
void clr_unused(void)
Definition fixup.hpp:136
uint32 flags
Definition fixup.hpp:86
void set_extdef(void)
Definition fixup.hpp:131
bool get(ea_t source)
get_fixup()
Definition fixup.hpp:321
uint32 get_flags() const
Fixup flags Fixup flags.
Definition fixup.hpp:128
const char * get_desc(qstring *buf, ea_t source) const
get_fixup_desc()
Definition fixup.hpp:326
adiff_t displacement
displacement (offset from the target)
Definition fixup.hpp:98
int calc_size() const
calc_fixup_size()
Definition fixup.hpp:331
void set_unused(void)
Definition fixup.hpp:135
void set_sel(const segment_t *seg)
Definition fixup.hpp:162
fixup_data_t()
Definition fixup.hpp:101
void clr_extdef(void)
Definition fixup.hpp:132
void set_target_sel()
Set selector of fixup to the target.
Definition fixup.hpp:169
void set_type(fixup_type_t type_)
Definition fixup.hpp:118
ea_t get_base() const
Get base of fixup.
Definition fixup.hpp:147
void set(ea_t source) const
set_fixup()
Definition fixup.hpp:316
Implements the core behavior of a custom fixup.
Definition fixup.hpp:362
ea_t ea_t int bool is_macro
Definition fixup.hpp:411
bool(idaapi *patch_value)(const fixup_handler_t *fh
Patch the fixup bytes.
ea_t ea_t int bool const fixup_data_t & fd
Definition fixup.hpp:412
ea_t ea_t int opnum
Definition fixup.hpp:410
DECLARE_COMPARISONS(fixup_handler_t)
int32 cbsize
size of this structure
Definition fixup.hpp:363
ea_t item_ea
Definition fixup.hpp:408
ea_t ea
Definition fixup.hpp:418
bool(idaapi *apply)(const fixup_handler_t *fh
Apply a fixup: take it into account while analyzing the file.
ea_t ea_t fixup_ea
Definition fixup.hpp:409
const char * name
Format name, must be unique.
Definition fixup.hpp:364
bool is_signed() const
Is the operand value signed?
Definition fixup.hpp:385
uint32 props
Fixup handler properties
Definition fixup.hpp:365
Collect fixup records for the specified range.
Definition fixup.hpp:526
ea_t ea
Definition fixup.hpp:527
fixup_data_t fd
Definition fixup.hpp:528
Information about a reference.
Definition nalt.hpp:1010