IDA C++ SDK 9.2
Loading...
Searching...
No Matches
segregs.hpp
Go to the documentation of this file.
1/*
2 * Interactive disassembler (IDA).
3 * Copyright (c) 1990-2026 Hex-Rays
4 * ALL RIGHTS RESERVED.
5 *
6 */
7
8#ifndef _SRAREA_HPP
9#define _SRAREA_HPP
10
11#include <range.hpp>
12#include <segment.hpp>
13
24
25//-------------------------------------------------------------------------
39struct sreg_range_t : public range_t
40{
43
47#define SR_inherit 1
48#define SR_user 2
49#define SR_auto 3
50#define SR_autostart 4
52};
54
55
62
63idaman sel_t ida_export get_sreg(ea_t ea, int rg);
64
65
77
78idaman bool ida_export split_sreg_range(
79 ea_t ea,
80 int rg,
81 sel_t v,
82 uchar tag,
83 bool silent=false);
84
85
94
95idaman DEPRECATED bool ida_export set_default_sreg_value(segment_t *sg, int rg, sel_t value);
96
97
105
106idaman bool ida_export set_default_sreg_value_ea(ea_t seg_ea, int rg, sel_t value);
107
108
120
121idaman void ida_export set_sreg_at_next_code(ea_t ea1, ea_t ea2, int rg, sel_t value);
122
123
129
130idaman bool ida_export get_sreg_range(sreg_range_t *out, ea_t ea, int rg);
131
132
139
140idaman bool ida_export get_prev_sreg_range(sreg_range_t *out, ea_t ea, int rg);
141
142
144
145idaman void ida_export set_default_dataseg(sel_t ds_sel);
146
147
150
151idaman size_t ida_export get_sreg_ranges_qty(int rg);
152
153
159
160idaman bool ida_export getn_sreg_range(sreg_range_t *out, int rg, int n);
161
162
169
170idaman int ida_export get_sreg_range_num(ea_t ea, int rg);
171
172
180
181idaman bool ida_export del_sreg_range(ea_t ea, int rg);
182
183
188
189idaman void ida_export copy_sreg_ranges(int dst_rg, int src_rg, bool map_selector=false);
190
191
192#endif // _SRAREA_HPP
Describes a program segment.
Definition segment.hpp:408
idaman size_t n
Definition pro.h:1000
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
Contains the definition of range_t.
Functions that deal with segments.
idaman int ida_export get_sreg_range_num(ea_t ea, int rg)
Get number of segment register range by address.
idaman bool ida_export split_sreg_range(ea_t ea, int rg, sel_t v, uchar tag, bool silent=false)
Create a new segment register range.
idaman DEPRECATED bool ida_export set_default_sreg_value(segment_t *sg, int rg, sel_t value)
Set default value of a segment register for a segment.
idaman size_t ida_export get_sreg_ranges_qty(int rg)
Get number of segment register ranges.
DECLARE_TYPE_AS_MOVABLE(sreg_range_t)
idaman bool ida_export get_sreg_range(sreg_range_t *out, ea_t ea, int rg)
Get segment register range by linear address.
idaman bool ida_export getn_sreg_range(sreg_range_t *out, int rg, int n)
Get segment register range by its number.
idaman void ida_export set_default_dataseg(sel_t ds_sel)
Set default value of DS register for all segments.
idaman bool ida_export del_sreg_range(ea_t ea, int rg)
Delete segment register range started at ea.
idaman sel_t ida_export get_sreg(ea_t ea, int rg)
Get value of a segment register.
idaman void ida_export copy_sreg_ranges(int dst_rg, int src_rg, bool map_selector=false)
Duplicate segment register ranges.
idaman bool ida_export get_prev_sreg_range(sreg_range_t *out, ea_t ea, int rg)
Get segment register range previous to one with address.
idaman void ida_export set_sreg_at_next_code(ea_t ea1, ea_t ea2, int rg, sel_t value)
Set the segment register value at the next instruction.
idaman bool ida_export set_default_sreg_value_ea(ea_t seg_ea, int rg, sel_t value)
Set default value of a segment register for a segment.
range_t(ea_t ea1=0, ea_t ea2=0)
Definition range.hpp:39
The values of the segment registers are kept as address ranges.
Definition segregs.hpp:40
sel_t val
segment register value
Definition segregs.hpp:41
uchar tag
Segment register range tags
Definition segregs.hpp:42