IDA C++ SDK 9.2
Loading...
Searching...
No Matches
vivl_t Struct Reference

Value interval (register or stack range) More...

#include <hexrays.hpp>

Inheritance diagram for vivl_t:
voff_t

Public Member Functions

 vivl_t (mopt_t _type=mop_z, sval_t _off=-1, int _size=0)
 vivl_t (const class chain_t &ch)
 vivl_t (const mop_t &op)
void set (mopt_t _type, sval_t _off, int _size=0)
void set (const voff_t &voff, int _size)
void set_stkoff (sval_t stkoff, int sz=0)
void set_reg (mreg_t mreg, int sz=0)
bool hexapi extend_to_cover (const vivl_t &r)
 Extend a value interval using another value interval of the same type.
uval_t hexapi intersect (const vivl_t &r)
 Intersect value intervals the same type.
bool overlap (const vivl_t &r) const
 Do two value intervals overlap?
bool includes (const vivl_t &r) const
 Does our value interval include another?
bool contains (const voff_t &voff2) const
 Does our value interval contain the specified value offset?
 DECLARE_COMPARISONS (vivl_t)
bool operator== (const mop_t &mop) const
void hexapi print (qstring *vout) const
const char *hexapi dstr () const
Public Member Functions inherited from voff_t
 voff_t ()
 voff_t (mopt_t _type, sval_t _off)
 voff_t (const mop_t &op)
void set (mopt_t _type, sval_t _off)
void set_stkoff (sval_t stkoff)
void set_reg (mreg_t mreg)
void undef ()
bool defined () const
bool is_reg () const
bool is_stkoff () const
mreg_t get_reg () const
sval_t get_stkoff () const
void inc (sval_t delta)
voff_t add (int width) const
sval_t diff (const voff_t &r) const
 DECLARE_COMPARISONS (voff_t)

Public Attributes

int size
 Interval size in bytes.
Public Attributes inherited from voff_t
sval_t off = -1
 register number or stack offset
mopt_t type = mop_z
 mop_r - register, mop_S - stack, mop_z - undefined

Detailed Description

Value interval (register or stack range)

Constructor & Destructor Documentation

◆ vivl_t() [1/3]

vivl_t::vivl_t ( mopt_t _type = mop_z,
sval_t _off = -1,
int _size = 0 )
inline

◆ vivl_t() [2/3]

vivl_t::vivl_t ( const class chain_t & ch)

◆ vivl_t() [3/3]

vivl_t::vivl_t ( const mop_t & op)
inline

Member Function Documentation

◆ set() [1/2]

void vivl_t::set ( mopt_t _type,
sval_t _off,
int _size = 0 )
inline

◆ set() [2/2]

void vivl_t::set ( const voff_t & voff,
int _size )
inline

◆ set_stkoff()

void vivl_t::set_stkoff ( sval_t stkoff,
int sz = 0 )
inline

◆ set_reg()

void vivl_t::set_reg ( mreg_t mreg,
int sz = 0 )
inline

◆ extend_to_cover()

bool vivl_t::extend_to_cover ( const vivl_t & r)
inline

Extend a value interval using another value interval of the same type.

Returns
success

◆ intersect()

uval_t vivl_t::intersect ( const vivl_t & r)
inline

Intersect value intervals the same type.

Returns
size of the resulting intersection

◆ overlap()

bool vivl_t::overlap ( const vivl_t & r) const
inline

Do two value intervals overlap?

◆ includes()

bool vivl_t::includes ( const vivl_t & r) const
inline

Does our value interval include another?

◆ contains()

bool vivl_t::contains ( const voff_t & voff2) const
inline

Does our value interval contain the specified value offset?

◆ DECLARE_COMPARISONS()

vivl_t::DECLARE_COMPARISONS ( vivl_t )
inline

◆ operator==()

bool vivl_t::operator== ( const mop_t & mop) const
inline

◆ print()

void vivl_t::print ( qstring * vout) const
inline

◆ dstr()

const char * vivl_t::dstr ( ) const
inline

Member Data Documentation

◆ size

int vivl_t::size

Interval size in bytes.


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