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)