ROSE
0.11.145.237
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
a
c
d
g
h
i
l
m
n
s
t
u
v
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
Enumerations
a
b
c
d
e
f
i
k
l
m
o
p
s
t
v
w
x
Enumerator
a
b
c
d
e
f
h
i
l
m
n
o
p
s
t
u
v
w
y
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
u
v
w
x
y
Related Symbols
b
i
o
Files
File List
Examples
src
util
rose_extent.h
1
#ifndef ROSE_Extent_H
2
#define ROSE_Extent_H
3
#include <featureTests.h>
4
#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5
6
#include <Rose/BinaryAnalysis/Address.h>
7
#include <Rose/BinaryAnalysis/AddressInterval.h>
8
#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
9
10
#include <rangemap.h>
// rose
11
12
#include <string>
13
#include <stdio.h>
14
15
// Deprecated. Use Rose::BinaryAnalysis::AddressInterval for all new code.
16
typedef
Range<Rose::BinaryAnalysis::Address>
Extent
;
17
18
// Deprecated. Use Rose::BinaryAnalysis::AddressIntervalSet instead for all new code.
19
class
ExtentMap
:
public
RangeMap
<Extent> {
20
public
:
21
ExtentMap
():
RangeMap<Extent>
() {}
22
template
<
class
Other>
ExtentMap
(
const
Other &other):
RangeMap<Extent>
(other) {}
23
static
char
category(
const
Extent
&a,
const
Extent
&b);
24
ExtentMap
subtract_from(
const
Extent
&e)
const
{
25
return
invert_within<ExtentMap>(e);
26
}
27
void
allocate_at(
const
Extent
&request);
28
Extent
allocate_best_fit(
const
Rose::BinaryAnalysis::Address
size
);
29
Extent
allocate_first_fit(
const
Rose::BinaryAnalysis::Address
size
);
30
void
dump_extents(std::ostream&,
const
std::string &prefix=
""
,
const
std::string &label=
""
)
const
;
31
void
dump_extents(FILE *f,
const
char
*prefix,
const
char
*label,
bool
pad=
true
)
const
;
32
};
19
class
ExtentMap
:
public
RangeMap
<Extent> {
…
};
33
34
// deprecated. Conversion functions, to be deleted when the old types are no longer needed.
35
Extent
toExtent(
const
Rose::BinaryAnalysis::AddressInterval
&);
36
Rose::BinaryAnalysis::AddressInterval
toAddressInterval(
const
Extent
&);
37
ExtentMap
toExtentMap(
const
Rose::BinaryAnalysis::AddressIntervalSet
&);
38
Rose::BinaryAnalysis::AddressIntervalSet
toAddressIntervalSet(
const
ExtentMap
&);
39
40
#endif
41
#endif
ExtentMap
Definition
rose_extent.h:19
RangeMap
A container of ranges, somewhat like a set.
Definition
rangemap.h:848
RangeMap< Extent >::size
Range::Value size() const
Returns the number of values represented by this RangeMap.
Definition
rangemap.h:1068
Range
A contiguous range of values.
Definition
rangemap.h:50
Sawyer::Container::IntervalSet< AddressInterval >
Sawyer::Container::Interval< Address >
Rose::BinaryAnalysis::Address
std::uint64_t Address
Address.
Definition
Address.h:11
Generated on Mon Mar 10 2025 00:09:09 for ROSE by
1.9.8