blob: 72842bdd94c88853206804c19ab6afb168928472 [file] [log] [blame] [edit]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package runtime
import (
"internal/coverage/rtcov"
"unsafe"
)
//go:linkname runtime_coverage_getCovCounterList runtime/coverage.getCovCounterList
func runtime_coverage_getCovCounterList() []rtcov.CovCounterBlob {
res := []rtcov.CovCounterBlob{}
u32sz := unsafe.Sizeof(uint32(0))
for datap := &firstmoduledata; datap != nil; datap = datap.next {
if datap.covctrs == datap.ecovctrs {
continue
}
res = append(res, rtcov.CovCounterBlob{
Counters: (*uint32)(unsafe.Pointer(datap.covctrs)),
Len: uint64((datap.ecovctrs - datap.covctrs) / u32sz),
})
}
return res
}