github.com/bir3/gocompiler@v0.3.205/src/cmd/link/internal/ld/msync_darwin_syscall.go (about)

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build darwin && !go1.20
     6  
     7  package ld
     8  
     9  import (
    10  	"syscall"
    11  	"unsafe"
    12  )
    13  
    14  func msync(b []byte, flags int) (err error) {
    15  	var p unsafe.Pointer
    16  	if len(b) > 0 {
    17  		p = unsafe.Pointer(&b[0])
    18  	}
    19  	_, _, errno := syscall.Syscall(syscall.SYS_MSYNC, uintptr(p), uintptr(len(b)), uintptr(flags))
    20  	if errno != 0 {
    21  		return errno
    22  	}
    23  	return nil
    24  }