Fix ResetInputBuffer and ResetOutputBuffer on Darwin

This commit is contained in:
Jack Doan
2022-09-30 13:22:52 -05:00
parent a77d80189a
commit 1bf551e025
3 changed files with 27 additions and 8 deletions

View File

@@ -29,3 +29,11 @@ func (port *unixPort) setSpecialBaudrate(speed uint32) error {
const kIOSSIOSPEED = 0x80045402 const kIOSSIOSPEED = 0x80045402
return unix.IoctlSetPointerInt(port.handle, kIOSSIOSPEED, int(speed)) return unix.IoctlSetPointerInt(port.handle, kIOSSIOSPEED, int(speed))
} }
func (port *unixPort) ResetInputBuffer() error {
return unix.IoctlSetPointerInt(port.handle, ioctlTcflsh, unix.TCIFLUSH)
}
func (port *unixPort) ResetOutputBuffer() error {
return unix.IoctlSetPointerInt(port.handle, ioctlTcflsh, unix.TCOFLUSH)
}

View File

@@ -0,0 +1,19 @@
//
// 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.
//
// +build linux freebsd openbsd
package serial
import "golang.org/x/sys/unix"
func (port *unixPort) ResetInputBuffer() error {
return unix.IoctlSetInt(port.handle, ioctlTcflsh, unix.TCIFLUSH)
}
func (port *unixPort) ResetOutputBuffer() error {
return unix.IoctlSetInt(port.handle, ioctlTcflsh, unix.TCOFLUSH)
}

View File

@@ -117,14 +117,6 @@ func (port *unixPort) Write(p []byte) (n int, err error) {
return return
} }
func (port *unixPort) ResetInputBuffer() error {
return unix.IoctlSetInt(port.handle, ioctlTcflsh, unix.TCIFLUSH)
}
func (port *unixPort) ResetOutputBuffer() error {
return unix.IoctlSetInt(port.handle, ioctlTcflsh, unix.TCOFLUSH)
}
func (port *unixPort) SetMode(mode *Mode) error { func (port *unixPort) SetMode(mode *Mode) error {
settings, err := port.getTermSettings() settings, err := port.getTermSettings()
if err != nil { if err != nil {