github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSys/kmgSys_darwin.go (about) 1 package kmgSys 2 3 import ( 4 "os" 5 "syscall" 6 "unsafe" 7 ) 8 9 func SyscallIoctl(fd int, request, argp uintptr) error { 10 _, _, errorp := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), request, argp) 11 if errorp == 0 { 12 return nil 13 } 14 return os.NewSyscallError("ioctl", errorp) 15 } 16 17 func SyscallConnect(s int, addr uintptr, addrlen uintptr) (err error) { 18 _, _, e1 := syscall.Syscall(syscall.SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) 19 if e1 != 0 { 20 return os.NewSyscallError("connect", e1) 21 } 22 return nil 23 } 24 25 func SyscallFcntl(fd int, cmd int, arg int) (val int, err error) { 26 r0, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) 27 if e1 != 0 { 28 return 0, os.NewSyscallError("fcntl", e1) 29 } 30 val = int(r0) 31 return val, nil 32 } 33 34 func SyscallGetSockopt(s int, level int, name int, val uintptr, vallen *uint32) (err error) { 35 _, _, e1 := syscall.Syscall6(syscall.SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) 36 if e1 != 0 { 37 return os.NewSyscallError("getsockopt", e1) 38 } 39 return nil 40 }