github.com/choleraehyq/pid@v0.0.18/p_m_go1.13.go (about)

     1  // Copyright 2022 Cholerae Hu.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    12  // implied. See the License for the specific language governing
    13  // permissions and limitations under the License. See the AUTHORS file
    14  // for names of contributors.
    15  
    16  //go:build gc && go1.13 && !go1.19
    17  // +build gc,go1.13,!go1.19
    18  
    19  package goid
    20  
    21  type p struct {
    22  	id int32 // Here is pid
    23  }
    24  
    25  type m struct {
    26  	g0      uintptr // goroutine with scheduling stack
    27  	morebuf gobuf   // gobuf arg to morestack
    28  	divmod  uint32  // div/mod denominator for arm - known to liblink
    29  
    30  	// Fields not known to debuggers.
    31  	procid     uint64       // for debuggers, but offset not hard-coded
    32  	gsignal    uintptr      // signal-handling g
    33  	goSigStack gsignalStack // Go-allocated signal handling stack
    34  	sigmask    sigset       // storage for saved signal mask
    35  	tls        [6]uintptr   // thread-local storage (for x86 extern register)
    36  	mstartfn   func()
    37  	curg       uintptr // current running goroutine
    38  	caughtsig  uintptr // goroutine running during fatal signal
    39  	p          *p      // attached p for executing go code (nil if not executing go code)
    40  }