mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: define the AddrRange used for testing in terms of addrRange
Currently the AddrRange used for testing is defined separately from addrRange in the runtime, making it difficult to test it as well as addrRanges. Redefine AddrRange in terms of addrRange instead. For #40191. Change-Id: I3aa5b8df3e4c9a3c494b46ab802dd574b2488141 Reviewed-on: https://go-review.googlesource.com/c/go/+/242677 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
de74ea5d74
commit
b4a06b2089
2 changed files with 72 additions and 56 deletions
|
|
@ -749,10 +749,7 @@ func (p *PageAlloc) Scavenge(nbytes uintptr, mayUnlock bool) (r uintptr) {
|
|||
func (p *PageAlloc) InUse() []AddrRange {
|
||||
ranges := make([]AddrRange, 0, len(p.inUse.ranges))
|
||||
for _, r := range p.inUse.ranges {
|
||||
ranges = append(ranges, AddrRange{
|
||||
Base: r.base.addr(),
|
||||
Limit: r.limit.addr(),
|
||||
})
|
||||
ranges = append(ranges, AddrRange{r})
|
||||
}
|
||||
return ranges
|
||||
}
|
||||
|
|
@ -763,10 +760,29 @@ func (p *PageAlloc) PallocData(i ChunkIdx) *PallocData {
|
|||
return (*PallocData)((*pageAlloc)(p).tryChunkOf(ci))
|
||||
}
|
||||
|
||||
// AddrRange represents a range over addresses.
|
||||
// Specifically, it represents the range [Base, Limit).
|
||||
// AddrRange is a wrapper around addrRange for testing.
|
||||
type AddrRange struct {
|
||||
Base, Limit uintptr
|
||||
addrRange
|
||||
}
|
||||
|
||||
// MakeAddrRange creates a new address range.
|
||||
func MakeAddrRange(base, limit uintptr) AddrRange {
|
||||
return AddrRange{makeAddrRange(base, limit)}
|
||||
}
|
||||
|
||||
// Base returns the virtual base address of the address range.
|
||||
func (a AddrRange) Base() uintptr {
|
||||
return a.addrRange.base.addr()
|
||||
}
|
||||
|
||||
// Base returns the virtual address of the limit of the address range.
|
||||
func (a AddrRange) Limit() uintptr {
|
||||
return a.addrRange.limit.addr()
|
||||
}
|
||||
|
||||
// Equals returns true if the two address ranges are exactly equal.
|
||||
func (a AddrRange) Equals(b AddrRange) bool {
|
||||
return a == b
|
||||
}
|
||||
|
||||
// BitRange represents a range over a bitmap.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue