Merge pull request #142 from JackDoan/fix-mac-buffer-resets

Fix ResetInputBuffer and ResetOutputBuffer on Darwin
This commit is contained in:
Cristian Maglie
2022-11-25 14:42:21 +01:00
committed by GitHub
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 {