| // Copyright 2016 Peter Mattis. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| // implied. See the License for the specific language governing |
| // permissions and limitations under the License. See the AUTHORS file |
| // for names of contributors. |
| |
| // +build go1.5,!go1.6 |
| |
| package goid |
| |
| // Just enough of the structs from runtime/runtime2.go to get the offset to goid. |
| // See https://github.com/golang/go/blob/release-branch.go1.5/src/runtime/runtime2.go |
| |
| type stack struct { |
| lo uintptr |
| hi uintptr |
| } |
| |
| type gobuf struct { |
| sp uintptr |
| pc uintptr |
| g uintptr |
| ctxt uintptr |
| ret uintptr |
| lr uintptr |
| bp uintptr |
| } |
| |
| type g struct { |
| stack stack |
| stackguard0 uintptr |
| stackguard1 uintptr |
| |
| _panic uintptr |
| _defer uintptr |
| m uintptr |
| stackAlloc uintptr |
| sched gobuf |
| syscallsp uintptr |
| syscallpc uintptr |
| stkbar []uintptr |
| stkbarPos uintptr |
| param uintptr |
| atomicstatus uint32 |
| stackLock uint32 |
| goid int64 // Here it is! |
| } |