Lines Matching refs:self

16     def __init__(self, base: int, size: int, owner: 'WrappedNode'):
17 self.base = base
18 self.size = size
19 self.owner = owner
26 def __repr__(self):
27 return 'Region(base=0x{:x},size=0x{:x})'.format(self.base, self.size)
29 def __eq__(self, other):
30 return self.base == other.base and self.size == other.size
32 def __ne__(self, other):
34 return not self.__eq__(other)
36 def __gt__(self, other):
37 return self.base > other.base
39 def __hash__(self):
40 return hash((self.base, self.size))
48 def overlaps(self, other):
51 if self.base <= other.base and (self.base + self.size) > other.base:
53 # or other.base is first, and to overlap other's end must be > self.base
54 elif other.base <= self.base and (other.base + other.size) > self.base:
58 def reserve(self, excluded):
61 if not self.overlaps(excluded):
62 return [Region(self.base, self.size, self.owner)]
65 if self.base < excluded.base:
67 ret.append(Region.from_range(self.base, excluded.base, self.owner))
70 if (excluded.base + excluded.size) < (self.base + self.size):
72 self.base + self.size, self.owner))
73 else: # self.base >= excluded.base
76 if (self.base + self.size) > (excluded.base + excluded.size):
78 self.base + self.size, self.owner))
81 def align_base(self, align_bits):
83 new_base = utils.align_up(self.base, align_bits)
84 diff = new_base - self.base
85 new_size = self.size - diff
86 new = Region(new_base, new_size, self.owner)
89 def align_size(self, align_bits):
93 new_base = utils.align_down(self.base, align_bits)
94 new_size = utils.align_up(self.size, align_bits)
95 new = Region(new_base, new_size, self.owner)
98 def make_chunks(self, chunksz):
99 base = self.base
100 size = self.size
103 ret.append(Region(base, min(size, chunksz), self.owner))