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-2025 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
93
94idaman bool ida_export set_default_sreg_value(segment_t *sg, int rg, sel_t value);
95
96
108
109idaman void ida_export set_sreg_at_next_code(ea_t ea1, ea_t ea2, int rg, sel_t value);
110
111
117
118idaman bool ida_export get_sreg_range(sreg_range_t *out, ea_t ea, int rg);
119
120
127
128idaman bool ida_export get_prev_sreg_range(sreg_range_t *out, ea_t ea, int rg);
129
130
132
133idaman void ida_export set_default_dataseg(sel_t ds_sel);
134
135
138
139idaman size_t ida_export get_sreg_ranges_qty(int rg);
140
141
147
148idaman bool ida_export getn_sreg_range(sreg_range_t *out, int rg, int n);
149
150
157
158idaman int ida_export get_sreg_range_num(ea_t ea, int rg);
159
160
168
169idaman bool ida_export del_sreg_range(ea_t ea, int rg);
170
171
176
177idaman void ida_export copy_sreg_ranges(int dst_rg, int src_rg, bool map_selector=false);
178
179
180#endif // _SRAREA_HPP
Describes a program segment.
Definition segment.hpp:69
idaman size_t n
Definition pro.h:997
uint64 ea_t
Definition pro.h:421
unsigned char uchar
unsigned 8 bit value
Definition pro.h:337
uint64 sel_t
Definition pro.h:422
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 set_default_sreg_value(segment_t *sg, int rg, sel_t value)
Set default value of a segment register for a segment.
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 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.
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