Skip to content

Commit 5efbe92

Browse files
Ethan Kannqv
Ethan Kan
authored andcommitted
Fixed cross compilation on MIPS architecture (#10)
* Fixed termios portability issue. * Cleaned up for cross compilation.
1 parent d490ecc commit 5efbe92

File tree

5 files changed

+61
-2
lines changed

5 files changed

+61
-2
lines changed

serial_posix.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ func newTermios(c *Config) (termios *syscall.Termios, err error) {
173173
}
174174
termios.Cflag |= flag
175175
// Input baud.
176-
termios.Ispeed = flag
176+
cfSetIspeed(termios, flag)
177177
// Output baud.
178-
termios.Ospeed = flag
178+
cfSetOspeed(termios, flag)
179179
// Character size.
180180
if c.DataBits == 0 {
181181
flag = syscall.CS8

termios_bsd.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// +build freebsd openbsd netbsd
2+
3+
package serial
4+
5+
import (
6+
"syscall"
7+
)
8+
9+
func cfSetIspeed(termios *syscall.Termios, speed uint32) {
10+
termios.Ispeed = speed
11+
}
12+
13+
func cfSetOspeed(termios *syscall.Termios, speed uint32) {
14+
termios.Ospeed = speed
15+
}

termios_darwin.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package serial
2+
3+
import (
4+
"syscall"
5+
)
6+
7+
func cfSetIspeed(termios *syscall.Termios, speed uint64) {
8+
termios.Ispeed = speed
9+
}
10+
11+
func cfSetOspeed(termios *syscall.Termios, speed uint64) {
12+
termios.Ospeed = speed
13+
}

termios_linux.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// +build !mips,!mipsle,!mips64,!mips64le
2+
3+
package serial
4+
5+
import (
6+
"syscall"
7+
)
8+
9+
func cfSetIspeed(termios *syscall.Termios, speed uint32) {
10+
termios.Ispeed = speed
11+
}
12+
13+
func cfSetOspeed(termios *syscall.Termios, speed uint32) {
14+
termios.Ospeed = speed
15+
}

termios_mipsx.go

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// +build linux
2+
// +build mips mipsle mips64 mips64le
3+
4+
package serial
5+
6+
import (
7+
"syscall"
8+
)
9+
10+
func cfSetIspeed(termios *syscall.Termios, speed uint32) {
11+
// MIPS has no Ispeed field in termios.
12+
}
13+
14+
func cfSetOspeed(termios *syscall.Termios, speed uint32) {
15+
// MIPS has no Ospeed field in termios.
16+
}

0 commit comments

Comments
 (0)