// 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 }