blob: f34c86c899ac2759a063b230f1351b62dc762261 [file] [log] [blame]
khenaidooac637102019-01-14 15:44:34 -05001// Copyright 2018 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// +build darwin,go1.12
6
7package unix
8
9import "unsafe"
10
11// Implemented in the runtime package (runtime/sys_darwin.go)
12func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
13func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
14func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
15func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only
16func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
17func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
Andrea Campanella3614a922021-02-25 12:40:42 +010018func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
khenaidooac637102019-01-14 15:44:34 -050019
20//go:linkname syscall_syscall syscall.syscall
21//go:linkname syscall_syscall6 syscall.syscall6
22//go:linkname syscall_syscall6X syscall.syscall6X
23//go:linkname syscall_syscall9 syscall.syscall9
24//go:linkname syscall_rawSyscall syscall.rawSyscall
25//go:linkname syscall_rawSyscall6 syscall.rawSyscall6
Andrea Campanella3614a922021-02-25 12:40:42 +010026//go:linkname syscall_syscallPtr syscall.syscallPtr
khenaidooac637102019-01-14 15:44:34 -050027
28// Find the entry point for f. See comments in runtime/proc.go for the
29// function of the same name.
30//go:nosplit
31func funcPC(f func()) uintptr {
32 return **(**uintptr)(unsafe.Pointer(&f))
33}