gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

mmap_linux_64.go (896B)


      1 // Copyright 2009 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-GO file.
      4 
      5 //go:build linux && (amd64 || arm64 || mips64 || mips64le || riscv64 || ppc64le)
      6 // +build linux
      7 // +build amd64 arm64 mips64 mips64le riscv64 ppc64le
      8 
      9 package memory
     10 
     11 import (
     12 	"syscall"
     13 )
     14 
     15 // Function syscall.mmap is same for linux/amd64, linux/arm64, linux/mips64,
     16 // linux/mips64le and linux/riscv64.
     17 
     18 // https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_amd64.go;l=1575-1584
     19 func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
     20 	r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
     21 	xaddr = uintptr(r0)
     22 	if e1 != 0 {
     23 		err = e1
     24 	}
     25 	return
     26 }