Source File
mranges.go
Belonging Package
runtime
package runtime
import (
)
func (, uintptr) addrRange {
:= addrRange{offAddr{}, offAddr{}}
if (-arenaBaseOffset >= ) != (-arenaBaseOffset >= ) {
throw("addr range base and limit are not in the same memory segment")
}
return
}
func ( addrRange) ( addrRange) addrRange {
if .base.lessEqual(.base) && .limit.lessEqual(.limit) {
return addrRange{}
} else if .base.lessThan(.base) && .limit.lessThan(.limit) {
throw("bad prune")
} else if .limit.lessThan(.limit) && .base.lessThan(.limit) {
.base = .limit
} else if .base.lessThan(.base) && .base.lessThan(.limit) {
.limit = .base
}
return
}
maxOffAddr = offAddr{(((1 << heapAddrBits) - 1) + arenaBaseOffset) & uintptrMask}
)
func ( offAddr) ( offAddr) bool {
return (.a - arenaBaseOffset) < (.a - arenaBaseOffset)
}
func ( offAddr) ( offAddr) bool {
return (.a - arenaBaseOffset) <= (.a - arenaBaseOffset)
}
return ==
}
sysStat *sysMemStat
}
func ( *addrRanges) ( *sysMemStat) {
:= (*notInHeapSlice)(unsafe.Pointer(&.ranges))
.len = 0
.cap = 16
.array = (*notInHeap)(persistentalloc(unsafe.Sizeof(addrRange{})*uintptr(.cap), sys.PtrSize, ))
.sysStat =
.totalBytes = 0
}
func ( *addrRanges) ( uintptr) int {
:= offAddr{}
return + 1
}
=
= + 1
}
func ( *addrRanges) ( uintptr) {
:= .findSucc()
func ( *addrRanges) ( *addrRanges) {
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |