New Upstream Snapshot - golang-github-goburrow-serial

Ready changes

Summary

Merged new upstream version: 0.1.0+git20211022.1.bfb6911+ds (was: 0.1.0).

Resulting package

Built on 2023-01-19T01:40 (took 2m25s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots golang-github-goburrow-serial-dev

Lintian Result

Diff

diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 2a4146d..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-* text=auto
-*.go text
-*.bat text eol=crlf
diff --git a/debian/changelog b/debian/changelog
index 026ab1f..6b0f027 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-github-goburrow-serial (0.1.0+git20211022.1.bfb6911+ds-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 19 Jan 2023 01:39:07 -0000
+
 golang-github-goburrow-serial (0.1.0-2) unstable; urgency=medium
 
   * upload source package
diff --git a/serial_bsd.go b/serial_bsd.go
index 398870c..5e23da6 100644
--- a/serial_bsd.go
+++ b/serial_bsd.go
@@ -1,4 +1,4 @@
-// +build freebsd openbsd netbsd
+// +build freebsd netbsd
 
 package serial
 
diff --git a/serial_openbsd.go b/serial_openbsd.go
new file mode 100644
index 0000000..01913aa
--- /dev/null
+++ b/serial_openbsd.go
@@ -0,0 +1,90 @@
+package serial
+
+import (
+	"fmt"
+	"syscall"
+	"unsafe"
+)
+
+var baudRates = map[int]uint32{
+	50:     syscall.B50,
+	75:     syscall.B75,
+	110:    syscall.B110,
+	134:    syscall.B134,
+	150:    syscall.B150,
+	200:    syscall.B200,
+	300:    syscall.B300,
+	600:    syscall.B600,
+	1200:   syscall.B1200,
+	1800:   syscall.B1800,
+	2400:   syscall.B2400,
+	4800:   syscall.B4800,
+	9600:   syscall.B9600,
+	19200:  syscall.B19200,
+	38400:  syscall.B38400,
+	57600:  syscall.B57600,
+	115200: syscall.B115200,
+	230400: syscall.B230400,
+}
+
+var charSizes = map[int]uint32{
+	5: syscall.CS5,
+	6: syscall.CS6,
+	7: syscall.CS7,
+	8: syscall.CS8,
+}
+
+// syscallSelect is a wapper for syscall.Select that only returns error.
+func syscallSelect(n int, r *syscall.FdSet, w *syscall.FdSet, e *syscall.FdSet, tv *syscall.Timeval) error {
+	return syscall.Select(n, r, w, e, tv)
+}
+
+// tcsetattr sets terminal file descriptor parameters.
+// See man tcsetattr(3).
+func tcsetattr(fd int, termios *syscall.Termios) (err error) {
+	r, _, errno := syscall.Syscall(uintptr(syscall.SYS_IOCTL),
+		uintptr(fd), uintptr(syscall.TIOCSETA), uintptr(unsafe.Pointer(termios)))
+	if errno != 0 {
+		err = errno
+		return
+	}
+	if r != 0 {
+		err = fmt.Errorf("tcsetattr failed %v", r)
+	}
+	return
+}
+
+// tcgetattr gets terminal file descriptor parameters.
+// See man tcgetattr(3).
+func tcgetattr(fd int, termios *syscall.Termios) (err error) {
+	r, _, errno := syscall.Syscall(uintptr(syscall.SYS_IOCTL),
+		uintptr(fd), uintptr(syscall.TIOCGETA), uintptr(unsafe.Pointer(termios)))
+	if errno != 0 {
+		err = errno
+		return
+	}
+	if r != 0 {
+		err = fmt.Errorf("tcgetattr failed %v", r)
+		return
+	}
+	return
+}
+
+// fdget returns index and offset of fd in fds.
+func fdget(fd int, fds *syscall.FdSet) (index, offset int) {
+	index = fd / (syscall.FD_SETSIZE / len(fds.Bits)) % len(fds.Bits)
+	offset = fd % (syscall.FD_SETSIZE / len(fds.Bits))
+	return
+}
+
+// fdset implements FD_SET macro.
+func fdset(fd int, fds *syscall.FdSet) {
+	idx, pos := fdget(fd, fds)
+	fds.Bits[idx] = 1 << uint(pos)
+}
+
+// fdisset implements FD_ISSET macro.
+func fdisset(fd int, fds *syscall.FdSet) bool {
+	idx, pos := fdget(fd, fds)
+	return fds.Bits[idx]&(1<<uint(pos)) != 0
+}
diff --git a/termios_bsd.go b/termios_bsd.go
index 17016a7..8479266 100644
--- a/termios_bsd.go
+++ b/termios_bsd.go
@@ -1,4 +1,4 @@
-// +build freebsd openbsd netbsd
+// +build freebsd netbsd
 
 package serial
 
diff --git a/termios_openbsd.go b/termios_openbsd.go
new file mode 100644
index 0000000..a4b0300
--- /dev/null
+++ b/termios_openbsd.go
@@ -0,0 +1,13 @@
+package serial
+
+import (
+	"syscall"
+)
+
+func cfSetIspeed(termios *syscall.Termios, speed uint32) {
+	termios.Ispeed = int32(speed)
+}
+
+func cfSetOspeed(termios *syscall.Termios, speed uint32) {
+	termios.Ospeed = int32(speed)
+}

More details

Full run details