github.com/JimmyHuang454/JLS-go@v0.0.0-20230831150107-90d536585ba0/internal/pkgbits/reloc.go (about)

     1  // Copyright 2021 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 pkgbits
     6  
     7  // A RelocKind indicates a particular section within a unified IR export.
     8  type RelocKind int32
     9  
    10  // An Index represents a bitstream element index within a particular
    11  // section.
    12  type Index int32
    13  
    14  // A relocEnt (relocation entry) is an entry in an element's local
    15  // reference table.
    16  //
    17  // TODO(mdempsky): Rename this too.
    18  type RelocEnt struct {
    19  	Kind RelocKind
    20  	Idx  Index
    21  }
    22  
    23  // Reserved indices within the meta relocation section.
    24  const (
    25  	PublicRootIdx  Index = 0
    26  	PrivateRootIdx Index = 1
    27  )
    28  
    29  const (
    30  	RelocString RelocKind = iota
    31  	RelocMeta
    32  	RelocPosBase
    33  	RelocPkg
    34  	RelocName
    35  	RelocType
    36  	RelocObj
    37  	RelocObjExt
    38  	RelocObjDict
    39  	RelocBody
    40  
    41  	numRelocs = iota
    42  )