blob: bbb93acced7d62e1f641c672534debbc154855b0 [file] [log] [blame]
// 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 rtcov
// This package contains types whose structure is shared between
// the runtime package and the "runtime/coverage" package.
// CovMetaBlob is a container for holding the meta-data symbol (an
// RODATA variable) for an instrumented Go package. Here "p" points to
// the symbol itself, "len" is the length of the sym in bytes, and
// "hash" is an md5sum for the sym computed by the compiler. When
// the init function for a coverage-instrumented package executes, it
// will make a call into the runtime which will create a covMetaBlob
// object for the package and chain it onto a global list.
type CovMetaBlob struct {
P *byte
Len uint32
Hash [16]byte
PkgPath string
PkgID int
CounterMode uint8 // coverage.CounterMode
CounterGranularity uint8 // coverage.CounterGranularity
}
// CovCounterBlob is a container for encapsulating a counter section
// (BSS variable) for an instrumented Go module. Here "counters"
// points to the counter payload and "len" is the number of uint32
// entries in the section.
type CovCounterBlob struct {
Counters *uint32
Len uint64
}