diff options
author | Brady OBrien <brady.obrien128@gmail.com> | 2018-05-17 17:58:54 -0500 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-21 17:31:22 +0200 |
commit | b962d7d791bb13830d62d7ae326780b413463971 (patch) | |
tree | 0b0a27de77af3319bfd8115230688b46e07d5fb6 /rwcancel/fdset_freebsd.go | |
parent | 837a12c84151968fac6477f75d6bcb52e7ae64db (diff) |
Add FreeBSD support
Signed-off-by: Brady OBrien <brady.obrien128@gmail.com>
Diffstat (limited to 'rwcancel/fdset_freebsd.go')
-rw-r--r-- | rwcancel/fdset_freebsd.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/rwcancel/fdset_freebsd.go b/rwcancel/fdset_freebsd.go new file mode 100644 index 0000000..39a7a4e --- /dev/null +++ b/rwcancel/fdset_freebsd.go @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright (C) 2017-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + */ + +package rwcancel + +import "golang.org/x/sys/unix" + +type fdSet struct { + fdset unix.FdSet +} + +func (fdset *fdSet) set(i int) { + bits := 32 << (^uint(0) >> 63) + fdset.fdset.X__fds_bits[i/bits] |= 1 << uint(i%bits) +} + +func (fdset *fdSet) check(i int) bool { + bits := 32 << (^uint(0) >> 63) + return (fdset.fdset.X__fds_bits[i/bits] & (1 << uint(i%bits))) != 0 +} |