github.com/gotranspile/cxgo@v0.3.8-0.20240118201721-29871598a6a2/runtime/csys/ioctl.go (about) 1 // +build !windows 2 3 package csys 4 5 import ( 6 "syscall" 7 8 "github.com/gotranspile/cxgo/runtime/libc" 9 ) 10 11 func Ioctl(fd uintptr, req uintptr, args ...interface{}) int32 { 12 var err syscall.Errno 13 switch req { 14 case FIONREAD: 15 if len(args) != 1 { 16 panic("invalid number of args") 17 } 18 p, err := libc.AsPtr(args[0]) 19 if err != nil { 20 panic(err) 21 } 22 _, _, err = syscall.Syscall(syscall.SYS_IOCTL, fd, req, uintptr(p)) 23 } 24 if err != 0 { 25 return -1 26 } 27 return 0 28 }