Fixed build for linux/ppc64le

This commit is contained in:
Cristian Maglie
2021-07-13 13:27:10 +02:00
parent 13b6f1ac38
commit 0213833089
4 changed files with 37 additions and 12 deletions

View File

@@ -46,6 +46,7 @@ jobs:
- "openbsd amd64"
- "openbsd 386"
- "openbsd arm"
- "linux ppc64le"
runs-on: "ubuntu-latest"

View File

@@ -83,15 +83,3 @@ func setTermSettingsBaudrate(speed int, settings *unix.Termios) (error, bool) {
settings.Ospeed = toTermiosSpeedType(baudrate)
return nil, false
}
func (port *unixPort) setSpecialBaudrate(speed uint32) error {
settings, err := unix.IoctlGetTermios(port.handle, unix.TCGETS2)
if err != nil {
return err
}
settings.Cflag &^= unix.CBAUD
settings.Cflag |= unix.BOTHER
settings.Ispeed = speed
settings.Ospeed = speed
return unix.IoctlSetTermios(port.handle, unix.TCSETS2, settings)
}

View File

@@ -0,0 +1,24 @@
// +build linux
// +build !ppc64le
//
// Copyright 2014-2021 Cristian Maglie. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//
package serial
import "golang.org/x/sys/unix"
func (port *unixPort) setSpecialBaudrate(speed uint32) error {
settings, err := unix.IoctlGetTermios(port.handle, unix.TCGETS2)
if err != nil {
return err
}
settings.Cflag &^= unix.CBAUD
settings.Cflag |= unix.BOTHER
settings.Ispeed = speed
settings.Ospeed = speed
return unix.IoctlSetTermios(port.handle, unix.TCSETS2, settings)
}

View File

@@ -0,0 +1,12 @@
//
// Copyright 2014-2021 Cristian Maglie. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//
package serial
func (port *unixPort) setSpecialBaudrate(speed uint32) error {
// TODO: unimplemented
return &PortError{code: InvalidSpeed}
}