1 // Copyright 2023 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 //go:build wasip1 6 7 package unix 8 9 import ( 10 "syscall" 11 _ "unsafe" // for go:linkname 12 ) 13 14 func IsNonblock(fd int) (nonblocking bool, err error) { 15 flags, e1 := fd_fdstat_get_flags(fd) 16 if e1 != nil { 17 return false, e1 18 } 19 return flags&syscall.FDFLAG_NONBLOCK != 0, nil 20 } 21 22 func HasNonblockFlag(flag int) bool { 23 return flag&syscall.FDFLAG_NONBLOCK != 0 24 } 25 26 // This helper is implemented in the syscall package. It means we don't have 27 // to redefine the fd_fdstat_get host import or the fdstat struct it 28 // populates. 29 // 30 //go:linkname fd_fdstat_get_flags syscall.fd_fdstat_get_flags 31 func fd_fdstat_get_flags(fd int) (uint32, error) 32