github.com/wfusion/gofusion@v1.1.14/common/utils/inspect/moduledata_go115.go (about)

     1  // +build go1.15,!go1.16
     2  
     3  package inspect
     4  
     5  type _func struct {
     6  	entry       uintptr // start pc
     7  	nameoff     int32   // function name
     8  	args        int32   // in/out args size
     9  	deferreturn uint32  // offset of start of a deferreturn call instruction from entry, if any.
    10  	pcsp        int32
    11  	pcfile      int32
    12  	pcln        int32
    13  	npcdata     int32
    14  	funcID      uint8   // set for certain special runtime functions
    15  	_           [2]int8 // unused
    16  	nfuncdata   uint8   // must be last
    17  	argptrs     uintptr
    18  	localptrs   uintptr
    19  }
    20  
    21  type _funcTab struct {
    22  	entry   uintptr
    23  	funcoff uintptr
    24  }
    25  
    26  type _bitVector struct {
    27  	n        int32 // # of bits
    28  	bytedata *uint8
    29  }
    30  
    31  type _ptabEntry struct {
    32  	name int32
    33  	typ  int32
    34  }
    35  
    36  type _textSection struct {
    37  	vaddr    uintptr // prelinked section vaddr
    38  	length   uintptr // section length
    39  	baseaddr uintptr // relocated section address
    40  }
    41  
    42  type _moduleData struct {
    43  	pclntable    []byte
    44  	ftab         []_funcTab
    45  	filetab      []uint32
    46  	findfunctab  *_findFuncBucket
    47  	minpc, maxpc uintptr
    48  
    49  	text, etext           uintptr
    50  	noptrdata, enoptrdata uintptr
    51  	data, edata           uintptr
    52  	bss, ebss             uintptr
    53  	noptrbss, enoptrbss   uintptr
    54  	end, gcdata, gcbss    uintptr
    55  	types, etypes         uintptr
    56  
    57  	textsectmap []_textSection
    58  	typelinks   []int32 // offsets from types
    59  	itablinks   []*itab
    60  
    61  	ptab []_ptabEntry
    62  
    63  	pluginpath string
    64  	pkghashes  []byte
    65  
    66  	modulename   string
    67  	modulehashes []byte
    68  
    69  	hasmain uint8 // 1 if module contains the main function, 0 otherwise
    70  
    71  	gcdatamask, gcbssmask _bitVector
    72  
    73  	typemap map[int32]*rtype // offset to *_rtype in previous module
    74  
    75  	bad bool // module failed to load and should be ignored
    76  
    77  	next *_moduleData
    78  }
    79  
    80  type _findFuncBucket struct {
    81  	idx        uint32
    82  	subbuckets [16]byte
    83  }