github.com/bir3/gocompiler@v0.9.2202/src/internal/syscall/unix/pty_darwin.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 package unix 6 7 import ( 8 "github.com/bir3/gocompiler/src/internal/abi" 9 "unsafe" 10 ) 11 12 //go:cgo_import_dynamic libc_grantpt grantpt "/usr/lib/libSystem.B.dylib" 13 func libc_grantpt_trampoline() 14 15 func Grantpt(fd int) error { 16 _, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_grantpt_trampoline), uintptr(fd), 0, 0, 0, 0, 0) 17 if errno != 0 { 18 return errno 19 } 20 return nil 21 } 22 23 //go:cgo_import_dynamic libc_unlockpt unlockpt "/usr/lib/libSystem.B.dylib" 24 func libc_unlockpt_trampoline() 25 26 func Unlockpt(fd int) error { 27 _, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_unlockpt_trampoline), uintptr(fd), 0, 0, 0, 0, 0) 28 if errno != 0 { 29 return errno 30 } 31 return nil 32 } 33 34 //go:cgo_import_dynamic libc_ptsname_r ptsname_r "/usr/lib/libSystem.B.dylib" 35 func libc_ptsname_r_trampoline() 36 37 func Ptsname(fd int) (string, error) { 38 buf := make([]byte, 256) 39 _, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_ptsname_r_trampoline), 40 uintptr(fd), 41 uintptr(unsafe.Pointer(&buf[0])), 42 uintptr(len(buf)-1), 43 0, 0, 0) 44 if errno != 0 { 45 return "", errno 46 } 47 for i, c := range buf { 48 if c == 0 { 49 buf = buf[:i] 50 break 51 } 52 } 53 return string(buf), nil 54 } 55 56 //go:cgo_import_dynamic libc_posix_openpt posix_openpt "/usr/lib/libSystem.B.dylib" 57 func libc_posix_openpt_trampoline() 58 59 func PosixOpenpt(flag int) (fd int, err error) { 60 ufd, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_posix_openpt_trampoline), uintptr(flag), 0, 0, 0, 0, 0) 61 if errno != 0 { 62 return -1, errno 63 } 64 return int(ufd), nil 65 }