Set "exec" command from client side.
[src/xds/xds-gdb.git] / gdb-common_darwin.go
1 package main
2
3 import (
4         "os"
5         "syscall"
6         "unsafe"
7 )
8
9 const (
10         syscallEBADE = syscall.EBADEXEC
11
12         syscall_TCGETS = 0x402c7413
13         syscall_TCSETS = 0x802c7414
14 )
15
16 func fcntl(fd uintptr, cmd int, arg int) (val int, err error) {
17         r, _, e := syscall.Syscall(syscall.SYS_FCNTL, fd, uintptr(cmd),
18                 uintptr(arg))
19         val = int(r)
20         if e != 0 {
21                 err = e
22         }
23         return
24 }
25
26 func tcsetattr(fd uintptr, termios *syscall.Termios) error {
27         r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
28                 fd, uintptr(syscall_TCSETS), uintptr(unsafe.Pointer(termios)))
29         if r != 0 {
30                 return os.NewSyscallError("SYS_IOCTL", e)
31         }
32         return nil
33 }
34
35 func tcgetattr(fd uintptr, termios *syscall.Termios) error {
36         r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
37                 fd, uintptr(syscall_TCGETS), uintptr(unsafe.Pointer(termios)))
38         if r != 0 {
39                 return os.NewSyscallError("SYS_IOCTL", e)
40         }
41         return nil
42 }