github.com/choleraehyq/pid@v0.0.18/p_m_go1.19.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.19 && !go1.23 17 // +build gc,go1.19,!go1.23 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 _ uint32 30 31 // Fields not known to debuggers. 32 procid uint64 // for debuggers, but offset not hard-coded 33 gsignal uintptr // signal-handling g 34 goSigStack gsignalStack // Go-allocated signal handling stack 35 sigmask sigset // storage for saved signal mask 36 tls [6]uintptr // thread-local storage (for x86 extern register) 37 mstartfn func() 38 curg uintptr // current running goroutine 39 caughtsig uintptr // goroutine running during fatal signal 40 p *p // attached p for executing go code (nil if not executing go code) 41 }