github.com/bytedance/mockey@v1.2.10/internal/monkey/common/mem_above_1_19.go (about) 1 //go:build go1.19 2 // +build go1.19 3 4 /* 5 * Copyright 2022 ByteDance Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 package common 21 22 import ( 23 "unsafe" 24 25 "github.com/bytedance/mockey/internal/tool" 26 ) 27 28 /* 29 * This may lead to runtime.ReadMemStats inaccurate 30 * See https://github.com/bytedance/mockey/issues/13 31 */ 32 func sysAlloc(n uintptr, sysStat *uint64) unsafe.Pointer { 33 tool.DebugPrintf("sysAlloc: go version >= 1.19 use sysAllocOS") 34 return sysAllocOS(n) 35 } 36 37 func sysFree(v unsafe.Pointer, n uintptr, sysStat *uint64) { 38 tool.DebugPrintf("sysAlloc: go version >= 1.19 use sysFreeOS") 39 sysFreeOS(v, n) 40 } 41 42 //go:linkname sysAllocOS runtime.sysAllocOS 43 func sysAllocOS(n uintptr) unsafe.Pointer 44 45 //go:linkname sysFreeOS runtime.sysFreeOS 46 func sysFreeOS(v unsafe.Pointer, n uintptr)