74#define SFL_COMORG 0x01
78#define SFL_HIDDEN 0x04
83#define SFL_LOADER 0x10
85#define SFL_HIDETYPE 0x20
87#define SFL_HEADER 0x40
107#define SEG_MAX_SEGTYPE_CODE SEG_IMEM
114#define SEGPERM_EXEC 1
115#define SEGPERM_WRITE 2
116#define SEGPERM_READ 4
117#define SEGPERM_MAXVAL (SEGPERM_EXEC + SEGPERM_WRITE + SEGPERM_READ)
134#define saRel32Bytes 8
135#define saRel64Bytes 9
137#define saRel128Bytes 11
138#define saRel512Bytes 12
139#define saRel1024Bytes 13
140#define saRel2048Bytes 14
141#define saRel_MAX_ALIGN_CODE saRel2048Bytes
158#define sc_MAX_COMB_CODE scPub3
161#define SEG_MAX_BITNESS_CODE 2
165#define DECLARE_SEGMENT_HELPERS(decl)\
166decl bool ida_export segment_info_t__visible_name(const segment_info_t *_this, qstring *); \
168DECLARE_SEGMENT_HELPERS(idaman)
172class segment_info_t :
public range_t
176 segment_info_t() { memset(defsr_, -1,
sizeof(defsr_)); }
179 bool is_valid()
const {
return !
empty(); }
184 bool has(
int gsi_flags)
const {
return (filled_ & gsi_flags) == gsi_flags; }
190 const char *
get_name()
const {
return qname_.c_str(); }
191 bool visible_name(
qstring *out)
const {
return segment_info_t__visible_name(
this, out); }
192 void set_name(
const char *v) { qname_ = v; updated_ |= SI_NAME; }
203 const char *get_sclass()
const {
return qsclass_.c_str(); }
204 void set_sclass(
const char *v) { qsclass_ = v; updated_ |= SI_SCLASS; }
208 uval_t get_orgbase()
const {
return orgbase_; }
209 void set_orgbase(
uval_t v) { orgbase_ = v; updated_ |= SI_ORGBASE; }
212 uchar get_align()
const {
return align_; }
213 void set_align(
uchar v) { align_ = v; updated_ |= SI_ALIGN; }
216 uchar get_comb()
const {
return comb_; }
217 void set_comb(
uchar v) { comb_ = v; updated_ |= SI_COMB; }
220 uchar get_perm()
const {
return perm_; }
221 void set_perm(
uchar v) { perm_ = v; updated_ |= SI_PERM; }
224 uchar get_bitness()
const {
return bitness_; }
225 void set_bitness(
uchar v) { bitness_ = v; updated_ |= SI_BITNESS; }
228 bool is_16bit()
const {
return bitness_ == 0; }
230 bool is_32bit()
const {
return bitness_ == 1; }
232 bool is_64bit()
const {
return bitness_ == 2; }
234 int abits()
const {
return 1 << (bitness_ + 4); }
236 int abytes()
const {
return abits() / 8; }
240 void set_flags(
ushort v) { flags_ = v; updated_ |= SI_FLAGS; }
245 bool comorg()
const {
return (flags_ & SFL_COMORG) != 0; }
246 void set_comorg(
bool v=
true) {
setflag(flags_, SFL_COMORG, v); updated_ |= SI_FLAGS; }
252 bool ob_ok()
const {
return (flags_ & SFL_OBOK) != 0; }
253 void set_ob_ok(
bool v=
true) {
setflag(flags_, SFL_OBOK, v); updated_ |= SI_FLAGS; }
268 void set_debugger_segm(
bool debseg=
true) {
setflag(flags_, SFL_DEBUG, debseg); updated_ |= SI_FLAGS; }
274 bool is_loader_segm()
const {
return (flags_ & SFL_LOADER) != 0; }
275 void set_loader_segm(
bool ldrseg=
true) {
setflag(flags_, SFL_LOADER, ldrseg); updated_ |= SI_FLAGS; }
281 bool is_hidden_segtype()
const {
return (flags_ & SFL_HIDETYPE) != 0; }
282 void set_hidden_segtype(
bool hide=
true) {
setflag(flags_, SFL_HIDETYPE, hide); updated_ |= SI_FLAGS; }
288 bool is_header_segm()
const {
return (flags_ & SFL_HEADER) != 0; }
289 void set_header_segm(
bool on=
true) {
setflag(flags_, SFL_HEADER, on); updated_ |= SI_FLAGS; }
297 {
return (flags_ & (SFL_DEBUG|SFL_LOADER)) == SFL_DEBUG; }
305 sel_t get_sel()
const {
return sel_; }
306 void set_sel(
sel_t v) { sel_ = v; updated_ |= SI_SEL; }
309 inline ea_t para()
const;
312 ea_t base()
const {
return to_ea(para(), 0); }
319 sel_t get_defsr(
int sr_idx)
const {
return (sr_idx >= 0 && sr_idx < SREG_NUM) ? defsr_[sr_idx] : BADSEL; }
320 void set_defsr(
int sr_idx,
sel_t v) {
if ( sr_idx >= 0 && sr_idx < SREG_NUM ) { defsr_[sr_idx] = v; updated_ |= si_defsr(sr_idx); } }
331 bgcolor_t get_color()
const {
return color_; }
332 void set_color(
bgcolor_t v) { color_ = v; updated_ |= SI_COLOR; }
336 const char *get_cmt_reg()
const {
return cmt_reg_.c_str(); }
337 void set_cmt_reg(
const char *v) { cmt_reg_ = v; updated_ |= SI_CMT_REG; }
341 const char *get_cmt_rpt()
const {
return cmt_rpt_.c_str(); }
342 void set_cmt_rpt(
const char *v) { cmt_rpt_ = v; updated_ |= SI_CMT_RPT; }
346 static constexpr int SI_VERSION = 1;
361 sel_t defsr_[SREG_NUM];
362 uchar type_ = SEG_NORM;
364 uchar version_ = SI_VERSION;
366 DECLARE_SEGMENT_HELPERS(
friend)
367 friend struct kdata_t;
375 SI_ORGBASE = 0x00000002,
376 SI_FLAGS = 0x00000004,
377 SI_TYPE = 0x00000008,
378 SI_PERM = 0x00000010,
379 SI_BITNESS = 0x00000020,
380 SI_ALIGN = 0x00000040,
381 SI_COMB = 0x00000080,
382 SI_COLOR = 0x00000100,
383 SI_NAME = 0x00000200,
384 SI_SCLASS = 0x00000400,
385 SI_CMT_REG = 0x00000800,
386 SI_CMT_RPT = 0x00001000,
387 SI_DEFSR_FIRST= 0x00002000,
388 SI_ALL_FIELDS = 0x00001FFF,
389 SI_ALL_DEFSR = 0x1FFFE000,
393 static uint64 si_defsr(
int rg) {
return SI_DEFSR_FIRST << rg; }
490 {
return (
flags & (SFL_DEBUG|SFL_LOADER)) == SFL_DEBUG; }
585 if ( segm !=
nullptr )
721 if ( selector == BADSEL )
884#define ADDSEG_NOSREG 0x0001
886#define ADDSEG_OR_DIE 0x0002
887#define ADDSEG_NOTRUNC 0x0004
889#define ADDSEG_QUIET 0x0008
890#define ADDSEG_FILLGAP 0x0010
897#define ADDSEG_SPARSE 0x0020
902#define ADDSEG_NOAA 0x0040
903#define ADDSEG_IDBENC 0x0080
905#define ADDSEG_KEEP_TYPE 0x0100
967#define SEGMOD_KILL 0x0001
968#define SEGMOD_KEEP 0x0002
969#define SEGMOD_SILENT 0x0004
970#define SEGMOD_KEEP0 0x0008
971#define SEGMOD_KEEPSEL 0x0010
972#define SEGMOD_NOMOVE 0x0020
974#define SEGMOD_SPARSE 0x0040
995#define GSI_NAME 0x0001
996#define GSI_SCLASS 0x0002
997#define GSI_CMT_REG 0x0004
998#define GSI_CMT_RPT 0x0008
999#define GSI_COMMENTS (GSI_CMT_REG|GSI_CMT_RPT)
1000#define GSI_ALL (GSI_NAME|GSI_SCLASS|GSI_COMMENTS)
1001#define GSI_UPDATED 0x0100
1242#define MSF_SILENT 0x0001
1243#define MSF_NOFIX 0x0002
1244#define MSF_LDKEEP 0x0004
1245#define MSF_FIXONCE 0x0008
1247#define MSF_PRIORITY 0x0020
1249#define MSF_NETNODES 0x0080
1287#define CSS_NORANGE -2
1298#define SNAP_ALL_SEG 0
1299#define SNAP_LOAD_SEG 1
1300#define SNAP_CUR_SEG 2
1415#define MAX_SEGM_TRANSLATIONS 64
1781ea_t segment_info_t::para()
const {
return sel2para(sel_); }
flags64_t idaapi get_flags(ea_t ea)
Get flags value for address 'ea'.
Definition bytes.hpp:282
~lock_segment_ea()
Definition segment.hpp:607
lock_segment_ea(ea_t ea)
Definition segment.hpp:603
lock_segment(const segment_t *segm)
Definition segment.hpp:583
~lock_segment()
Definition segment.hpp:591
Describes a program segment.
Definition segment.hpp:408
uchar comb
Segment combination codes
Definition segment.hpp:417
uchar align
Segment alignment codes
Definition segment.hpp:416
bool is_header_segm() const
Definition segment.hpp:481
void set_header_segm(bool on)
Definition segment.hpp:482
uchar type
segment type (see Segment types).
Definition segment.hpp:503
bool update()
Update segment information.
Definition segment.hpp:1808
sel_t defsr[SREG_NUM]
default segment register values.
Definition segment.hpp:499
DECLARE_COMPARISONS(segment_t)
void clr_ob_ok()
Definition segment.hpp:451
int abits() const
Get number of address bits.
Definition segment.hpp:430
bool is_ephemeral_segm() const
Ephemeral segments are not analyzed automatically (no flirt, no functions unless required,...
Definition segment.hpp:489
uval_t name
use get/set_segm_name() functions
Definition segment.hpp:410
uchar bitness
Number of bits in the segment addressing.
Definition segment.hpp:419
void set_loader_segm(bool ldrseg)
Definition segment.hpp:470
bool is_loader_segm() const
Definition segment.hpp:469
void set_debugger_segm(bool debseg)
Definition segment.hpp:464
uchar perm
Segment permissions (0 means no information)
Definition segment.hpp:418
bool is_debugger_segm() const
Definition segment.hpp:462
void set_ob_ok()
Definition segment.hpp:450
bool is_hidden_segtype() const
Definition segment.hpp:475
int abytes() const
Get number of address bytes.
Definition segment.hpp:432
bool is_32bit() const
Is a 32-bit segment?
Definition segment.hpp:426
uval_t orgbase
this field is IDP dependent.
Definition segment.hpp:412
bool is_visible_segm() const
Definition segment.hpp:456
bool comorg() const
Definition segment.hpp:442
void set_visible_segm(bool visible)
Definition segment.hpp:457
bool ob_ok() const
Definition segment.hpp:449
uval_t sclass
use get/set_segm_class() functions
Definition segment.hpp:411
bgcolor_t color
the segment color
Definition segment.hpp:509
sel_t sel
segment selector - should be unique.
Definition segment.hpp:492
ushort flags
Segment flags
Definition segment.hpp:438
void set_hidden_segtype(bool hide)
Definition segment.hpp:476
bool is_16bit() const
Is a 16-bit segment?
Definition segment.hpp:424
void clr_comorg()
Definition segment.hpp:444
bool is_64bit() const
Is a 64-bit segment?
Definition segment.hpp:428
segment_t()
Constructor.
Definition segment.hpp:518
void set_comorg()
Definition segment.hpp:443
move_segm_code_t
Definition segment.hpp:1193
@ MOVE_SEGM_MAPPING
Memory mapping ranges of addresses hinder segment movement.
Definition segment.hpp:1204
@ MOVE_SEGM_LOADER
The segment has been moved but the loader complained.
Definition segment.hpp:1199
@ MOVE_SEGM_ROOM
Not enough free room at the target address.
Definition segment.hpp:1196
@ MOVE_SEGM_PARAM
The specified segment does not exist.
Definition segment.hpp:1195
@ MOVE_SEGM_OK
all ok
Definition segment.hpp:1194
@ MOVE_SEGM_ORPHAN
Orphan bytes hinder segment movement.
Definition segment.hpp:1201
@ MOVE_SEGM_IDP
IDP module forbids moving the segment.
Definition segment.hpp:1197
@ MOVE_SEGM_INVAL
Invalid argument (delta/target does not fit the address space)
Definition segment.hpp:1205
@ MOVE_SEGM_CHUNK
Too many chunks are defined, can't move.
Definition segment.hpp:1198
@ MOVE_SEGM_ODD
Cannot move segments by an odd number of bytes.
Definition segment.hpp:1200
@ MOVE_SEGM_SOURCEFILES
Source files ranges of addresses hinder segment movement.
Definition segment.hpp:1203
@ MOVE_SEGM_DEBUG
Debugger segments cannot be moved.
Definition segment.hpp:1202
idaman const char * end
Definition pro.h:1004
int code
Definition fpro.h:88
idaman size_t n
Definition pro.h:1000
idaman ea_t ida_export get_segment_para(ea_t ea)
Get segment base paragraph by address.
idaman ea_t ida_export get_segment_base(ea_t ea)
Get segment base linear address by address.
idaman DEPRECATED bool ida_export set_segm_addressing(segment_t *s, size_t bitness)
Change segment addressing mode (16, 32, 64 bits).
idaman DEPRECATED ea_t ida_export get_segm_para(const segment_t *s)
Get segment base paragraph.
idaman bool ida_export set_segment_addressing(ea_t ea, size_t bitness)
Change segment addressing mode (16, 32, 64 bits) by address.
idaman DEPRECATED ea_t ida_export get_segm_base(const segment_t *s)
Get segment base linear address.
idaman bool ida_export is_same_segment(ea_t ea1, ea_t ea2)
Check two addresses belong to one segment.
idaman const char *ida_export get_segment_combination(uchar comb)
Get text representation of segment combination code.
idaman const char *ida_export get_segment_alignment(uchar align)
Get text representation of segment alignment code.
idaman void ida_export std_out_segment_footer(struct outctx_t &ctx, ea_t seg_ea)
Generate segment footer line as a comment line by address.
idaman ssize_t ida_export get_segment_cmt_by_ea(qstring *buf, ea_t ea, bool repeatable)
Get segment comment by address.
idaman DEPRECATED ssize_t ida_export get_segment_cmt(qstring *buf, const segment_t *s, bool repeatable)
Get segment comment.
idaman DEPRECATED void ida_export std_out_segm_footer(struct outctx_t &ctx, segment_t *seg)
Generate segment footer line as a comment line.
idaman DEPRECATED void ida_export set_segment_cmt(const segment_t *s, const char *cmt, bool repeatable)
Set segment comment.
idaman void ida_export set_segment_cmt_by_ea(ea_t ea, const char *cmt, bool repeatable)
Set segment comment by address.
idaman sel_t ida_export get_group_selector(sel_t grpsel)
Get common selector for a group of segments.
idaman int ida_export set_group_selector(sel_t grp, sel_t sel)
Create a new group of segments (used OMF files).
idaman ea_t ida_export get_first_segment_ea()
Get start address of the first segment.
idaman DEPRECATED segment_t *ida_export get_next_seg(ea_t ea)
Get pointer to the next segment.
idaman ea_t ida_export get_last_segment_ea()
Get start address of the last segment.
idaman bool ida_export add_segment_ex(segment_info_t *si, int flags)
Add a new segment using segment_info_t.
idaman DEPRECATED segment_t *ida_export get_segm_by_name(const char *name)
Get pointer to segment by its name.
idaman ea_t ida_export get_segment_ea_by_name(const char *name)
Get segment start address by its name.
idaman bool ida_export set_segment_info(segment_info_t *si, int flags=0)
Apply segment_info_t modifications to the database.
idaman DEPRECATED bool ida_export add_segm_ex(segment_t *NONNULL s, const char *name, const char *sclass, int flags)
Add a new segment.
idaman ea_t ida_export get_segment_ea(ea_t ea)
Get segment start address.
idaman ea_t ida_export get_prev_segment_ea(ea_t seg_ea)
Get start address of the previous segment.
idaman bool ida_export add_segm(ea_t para, ea_t start, ea_t end, const char *name, const char *sclass, int flags=0)
Add a new segment, second form.
idaman DEPRECATED segment_t *ida_export get_last_seg()
Get pointer to the last segment.
idaman DEPRECATED segment_t *ida_export getnseg(int n)
Get pointer to segment by its number.
idaman bool ida_export get_segment_info_by_num(segment_info_t *out, int n, int flags=0)
Fill segment_info_t structure for segment by its number.
idaman DEPRECATED segment_t *ida_export get_first_seg()
Get pointer to the first segment.
idaman ea_t ida_export get_segment_ea_by_num(int n)
Get segment start address by its number.
idaman int ida_export get_segm_num(ea_t ea)
Get number of segment by address.
idaman bool ida_export del_segm(ea_t ea, int flags)
Delete a segment.
idaman int ida_export get_segm_qty()
Get number of segments.
idaman DEPRECATED segment_t *ida_export get_prev_seg(ea_t ea)
Get pointer to the previous segment.
idaman ea_t ida_export get_next_segment_ea(ea_t seg_ea)
Get start address of the next segment.
idaman bool ida_export get_segment_info(segment_info_t *out, ea_t ea, int flags=0)
Fill segment_info_t structure for segment at the specified address.
idaman DEPRECATED segment_t *ida_export getseg(ea_t ea)
Get pointer to segment by linear address.
idaman int ida_export change_segment_status_by_ea(ea_t ea, bool is_deb_segm)
Convert a debugger segment to a regular segment and vice versa by address.
idaman DEPRECATED move_segm_code_t ida_export move_segm(segment_t *s, ea_t to, int flags=0)
This function moves all information to the new address.
idaman bool ida_export is_miniidb()
Is the database a miniidb created by the debugger?
idaman const char *ida_export move_segm_strerror(move_segm_code_t code)
Return string describing error MOVE_SEGM_... code.
idaman DEPRECATED bool ida_export set_segm_base(segment_t *s, ea_t newbase)
Internal function.
idaman bool ida_export set_segment_base_ea(ea_t seg_ea, ea_t newbase)
Set segment base.
idaman move_segm_code_t ida_export move_segment(ea_t seg_ea, ea_t to, int flags=0)
Move segment to a new address.
idaman bool ida_export move_segm_start(ea_t ea, ea_t newstart, int mode)
Move segment start.
idaman bool ida_export take_memory_snapshot(int type)
Take a memory snapshot of the running process.
idaman bool ida_export set_segm_end(ea_t ea, ea_t newend, int flags)
Set segment end address.
idaman DEPRECATED int ida_export change_segment_status(segment_t *s, bool is_deb_segm)
Convert a debugger segment to a regular segment and vice versa.
idaman move_segm_code_t ida_export rebase_program(adiff_t delta, int flags)
Rebase the whole program by 'delta' bytes.
idaman bool ida_export set_segm_start(ea_t ea, ea_t newstart, int flags)
Set segment start address.
idaman DEPRECATED int ida_export set_segm_name(segment_t *s, const char *name, int flags=0)
Rename segment.
idaman ssize_t ida_export get_segment_name(qstring *buf, ea_t ea, int flags=0)
Get segment name by address.
DEPRECATED ssize_t idaapi get_visible_segm_name(qstring *buf, const segment_t *s)
Get segment name by pointer to segment.
Definition segment.hpp:1589
idaman DEPRECATED ssize_t ida_export get_segm_name(qstring *buf, const segment_t *s, int flags=0)
Get true segment name by pointer to segment.
idaman int ida_export set_segment_name(ea_t ea, const char *name, int flags=0)
Rename segment by address.
ssize_t get_segm_expr(qstring *buf, ea_t from, sel_t sel)
Get colored segment name expression in the form (segname + displacement).
idaman sel_t ida_export allocate_selector(ea_t segbase)
Allocate a selector for a segment unconditionally.
ea_t idaapi sel2ea(sel_t selector)
Get mapping of a selector as a linear address.
Definition segment.hpp:719
idaman DEPRECATED segment_t *ida_export get_segm_by_sel(sel_t selector)
Get pointer to segment structure.
idaman void ida_export del_selector(sel_t selector)
Delete mapping of a selector.
idaman size_t ida_export get_selector_qty()
Get number of defined selectors.
idaman ea_t ida_export enumerate_segments_with_selector_ea(sel_t selector, const segment_selector_visitor_t &visitor)
Enumerate all segments with the specified selector.
idaman sel_t ida_export find_free_selector()
Find first unused selector.
idaman DEPRECATED ea_t ida_export enumerate_segments_with_selector(sel_t selector, ea_t(idaapi *func)(segment_t *s, void *ud), void *ud=nullptr)
Enumerate all segments with the specified selector.
idaman int ida_export enumerate_selectors(int(idaapi *func)(sel_t sel, ea_t para))
Enumerate all selectors from the translation table.
idaman ea_t ida_export sel2para(sel_t selector)
Get mapping of a selector.
idaman sel_t ida_export setup_selector(ea_t segbase)
Allocate a selector for a segment if necessary.
std::function< ea_t(ea_t seg_start_ea)> segment_selector_visitor_t
Callback type for enumerate_segments_with_selector_ea().
Definition segment.hpp:772
idaman ea_t ida_export get_segment_ea_by_sel(sel_t selector)
Get segment start address by its selector.
idaman bool ida_export getn_selector(sel_t *sel, ea_t *base, int n)
Get description of selector (0..get_selector_qty()-1)
idaman int ida_export set_selector(sel_t selector, ea_t paragraph)
Set mapping of selector to a paragraph.
idaman sel_t ida_export find_selector(ea_t base)
Find a selector that has mapping to the specified paragraph.
idaman void ida_export lock_segment_by_ea(ea_t ea, bool lock)
Lock segment by address.
bool is_finally_visible_segm(segment_t *s)
See SFL_HIDDEN, SCF_SHHID_SEGM.
Definition segment.hpp:535
idaman DEPRECATED bool ida_export is_segm_locked(const segment_t *segm)
Is a segment pointer locked?
idaman bool ida_export is_spec_ea(ea_t ea)
Does the address belong to a segment with a special type?
idaman void ida_export set_visible_segment(ea_t ea, bool visible)
Set segment visibility by address.
idaman bool ida_export is_segment_locked(ea_t ea)
Is segment locked by address?
idaman bool ida_export is_spec_segm(uchar seg_type)
Has segment a special type?
bool is_visible_segm(segment_t *s)
See SFL_HIDDEN.
Definition segment.hpp:533
CASSERT(sizeof(segment_t)==192)
idaman DEPRECATED void ida_export lock_segm(const segment_t *segm, bool lock)
Lock segment pointer.
idaman DEPRECATED void ida_export set_visible_segm(segment_t *s, bool visible)
See SFL_HIDDEN.
idaman bool ida_export add_segment_translation(ea_t segstart, ea_t mappedseg)
Add segment translation.
idaman void ida_export del_segment_translations(ea_t segstart)
Delete the translation list.
idaman ssize_t ida_export get_segment_translations(eavec_t *transmap, ea_t segstart)
Get segment translation list.
idaman bool ida_export set_segment_translations(ea_t segstart, const eavec_t &transmap)
Set new translation list.
idaman int ida_export set_segment_class(ea_t ea, const char *sclass, int flags=0)
Set segment class by address.
idaman uchar ida_export segtype(ea_t ea)
Get segment type.
idaman ssize_t ida_export get_segment_class(qstring *buf, ea_t ea)
Get segment class by address.
idaman DEPRECATED int ida_export set_segm_class(segment_t *s, const char *sclass, int flags=0)
Set segment class.
idaman DEPRECATED ssize_t ida_export get_segm_class(qstring *buf, const segment_t *s)
Get segment class.
bool hexapi get_type(uval_t id, tinfo_t *tif, type_source_t guess)
Get a global type.
Definition hexrays.hpp:11257
bool hexapi set_type(uval_t id, const tinfo_t &tif, type_source_t source, bool force=false)
Set a global type.
Definition hexrays.hpp:11263
const tinfo_t & type
Definition hexrays.hpp:7698
Contains the inf structure definition and some functions common to the whole IDA project.
ea_t idaapi to_ea(sel_t reg_cs, uval_t reg_ip)
Convert (sel,off) value to a linear address.
Definition ida.hpp:1152
uchar inf_get_cmtflg()
Definition ida.hpp:905
uval_t uval_t
Definition kernwin.hpp:1926
asize_t size
Definition kernwin.hpp:6701
unsigned __int64 uint64
Definition llong.hpp:13
ssize_t get_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:352
idaman bool ida_export set_name(ea_t ea, const char *name, int flags=0)
Set or delete name of an item at the specified address.
uint32 bgcolor_t
background color in RGB
Definition pro.h:5109
int64 adiff_t
Definition pro.h:428
uint64 ea_t
Definition pro.h:425
unsigned char uchar
unsigned 8 bit value
Definition pro.h:341
uint64 sel_t
Definition pro.h:426
qvector< ea_t > eavec_t
vector of addresses
Definition pro.h:2838
ptrdiff_t ssize_t
Signed size_t - used to check for size overflows when the counter becomes negative.
Definition pro.h:385
unsigned short ushort
unsigned 16 bit value
Definition pro.h:342
void idaapi setflag(T &where, U bit, bool cnd)
Set a 'bit' in 'where' if 'value' is not zero.
Definition pro.h:1530
_qstring< char > qstring
regular string
Definition pro.h:3771
Contains the definition of range_t.
idaman ea_t ida_export correct_address(ea_t ea, ea_t from, ea_t to, ea_t size, bool skip_check=false)
idaman DEPRECATED ea_t ida_export segm_adjust_ea(const segment_t *s, ea_t ea)
Truncate an address depending on the segment.
bool is_ephemeral_segm(ea_t ea)
Does the address belong to an ephemeral segment?
Definition segment.hpp:1796
idaman adiff_t ida_export adjust_segment_diff(ea_t seg_ea, adiff_t delta)
Truncate and sign extend a delta depending on the segment by address.
idaman bool ida_export update_segm(segment_t *s)
idaman DEPRECATED adiff_t ida_export segm_adjust_diff(const segment_t *s, adiff_t delta)
Truncate and sign extend a delta depending on the segment.
bool is_debugger_segm(ea_t ea)
Does the address belong to a debug segment?
Definition segment.hpp:1788
idaman ea_t ida_export adjust_segment_ea(ea_t seg_ea, ea_t ea)
Truncate an address depending on the segment by address.
Base class for an range.
Definition range.hpp:35
bool empty() const
Is the size of the range_t <= 0?
Definition range.hpp:60
ea_t start_ea
start_ea included
Definition range.hpp:37
range_t(ea_t ea1=0, ea_t ea2=0)
Definition range.hpp:39