Merge pull request #540 from xushiwei/x

c/sys: select
This commit is contained in:
xushiwei
2024-07-19 11:18:58 +08:00
committed by GitHub
2 changed files with 20 additions and 11 deletions

View File

@@ -1,13 +1,13 @@
#include <sys/types.h> #include <sys/types.h>
int fd_isset(int n, fd_set *fd) { int llgo_FD_ISSET(int n, fd_set *fd) {
return FD_ISSET(n, fd); return FD_ISSET(n, fd);
} }
void fdSet(int n, fd_set *fd) { void llgo_FD_SET(int n, fd_set *fd) {
FD_SET(n, fd); FD_SET(n, fd);
} }
void fd_zero(fd_set *fd) { void llgo_FD_ZERO(fd_set *fd) {
FD_ZERO(fd); FD_ZERO(fd);
} }

View File

@@ -12,14 +12,23 @@ const (
LLGoPackage = "link" LLGoPackage = "link"
) )
//go:linkname FD_ZERO C.fd_zero // -----------------------------------------------------------------------------
func FD_ZERO(fdSet *syscall.FdSet)
//go:linkname FD_SET C.fdSet type (
func FD_SET(fd c.Int, fdSet *syscall.FdSet) FdSet = syscall.FdSet
Timeval = syscall.Timeval
)
//go:linkname FD_ISSET C.fd_isset //go:linkname FD_ZERO C.llgo_FD_ZERO
func FD_ISSET(fd c.Int, fdSet *syscall.FdSet) c.Int func FD_ZERO(fds *FdSet)
//go:linkname FD_SET C.llgo_FD_SET
func FD_SET(fd c.Int, fds *FdSet)
//go:linkname FD_ISSET C.llgo_FD_ISSET
func FD_ISSET(fd c.Int, fds *FdSet) c.Int
//go:linkname Select C.select //go:linkname Select C.select
func Select(n c.Int, r *syscall.FdSet, w *syscall.FdSet, e *syscall.FdSet, timeout *syscall.Timeval) c.Int func Select(n c.Int, fdsRead, fdsWrite, fdsError *FdSet, timeout *Timeval) c.Int
// -----------------------------------------------------------------------------