github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/coverage/rtcov/rtcov.go (about)

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package rtcov
     6  
     7  // This package contains types whose structure is shared between
     8  // the runtime package and the "runtime/coverage" package.
     9  
    10  // CovMetaBlob is a container for holding the meta-data symbol (an
    11  // RODATA variable) for an instrumented Go package. Here "p" points to
    12  // the symbol itself, "len" is the length of the sym in bytes, and
    13  // "hash" is an md5sum for the sym computed by the compiler. When
    14  // the init function for a coverage-instrumented package executes, it
    15  // will make a call into the runtime which will create a covMetaBlob
    16  // object for the package and chain it onto a global list.
    17  type CovMetaBlob struct {
    18  	P                  *byte
    19  	Len                uint32
    20  	Hash               [16]byte
    21  	PkgPath            string
    22  	PkgID              int
    23  	CounterMode        uint8 // coverage.CounterMode
    24  	CounterGranularity uint8 // coverage.CounterGranularity
    25  }
    26  
    27  // CovCounterBlob is a container for encapsulating a counter section
    28  // (BSS variable) for an instrumented Go module. Here "counters"
    29  // points to the counter payload and "len" is the number of uint32
    30  // entries in the section.
    31  type CovCounterBlob struct {
    32  	Counters *uint32
    33  	Len      uint64
    34  }