add generated ztypes_arm.go and ztypes_freebsd_arm.go
Tidy unused ioctl arguments
diff --git a/pty_darwin.go b/pty_darwin.go
index 0f2bd58..4f4d5ca 100644
--- a/pty_darwin.go
+++ b/pty_darwin.go
@@ -52,11 +52,9 @@
}
func grantpt(f *os.File) error {
- var u _C_int
- return ioctl(f.Fd(), syscall.TIOCPTYGRANT, uintptr(unsafe.Pointer(&u)))
+ return ioctl(f.Fd(), syscall.TIOCPTYGRANT, 0)
}
func unlockpt(f *os.File) error {
- var u _C_int
- return ioctl(f.Fd(), syscall.TIOCPTYUNLK, uintptr(unsafe.Pointer(&u)))
+ return ioctl(f.Fd(), syscall.TIOCPTYUNLK, 0)
}
diff --git a/pty_freebsd.go b/pty_freebsd.go
index 17abe28..b341bab 100644
--- a/pty_freebsd.go
+++ b/pty_freebsd.go
@@ -7,10 +7,6 @@
"unsafe"
)
-const (
- SPECNAMELEN = 63 /* max length of devicename <sys/param.h> */
-)
-
func posix_openpt(oflag int) (fd int, err error) {
r0, _, e1 := syscall.Syscall(syscall.SYS_POSIX_OPENPT, uintptr(oflag), 0, 0)
fd = int(r0)
@@ -21,7 +17,7 @@
}
func open() (pty, tty *os.File, err error) {
- fd, err := posix_openpt(syscall.O_RDWR)
+ fd, err := posix_openpt(syscall.O_RDWR | syscall.O_CLOEXEC)
if err != nil {
return nil, nil, err
}
@@ -40,9 +36,8 @@
}
func isptmaster(fd uintptr) (bool, error) {
- var result int
- err := ioctl(fd, syscall.TIOCPTMASTER, uintptr(unsafe.Pointer(&result)))
- return (result == 0), err
+ err := ioctl(fd, syscall.TIOCPTMASTER, 0)
+ return err == nil, err
}
var (
@@ -59,7 +54,7 @@
return "", syscall.EINVAL
}
- const n = SPECNAMELEN + 1
+ const n = _C_SPECNAMELEN + 1
var (
buf = make([]byte, n)
arg = fiodgnameArg{Len: n, Buf: (*byte)(unsafe.Pointer(&buf[0]))}
diff --git a/pty_linux.go b/pty_linux.go
index a1278b8..6e5a042 100644
--- a/pty_linux.go
+++ b/pty_linux.go
@@ -46,5 +46,6 @@
func unlockpt(f *os.File) error {
var u _C_int
+ // use TIOCSPTLCK with a zero valued arg to clear the slave pty lock
return ioctl(f.Fd(), ioctl_TIOCSPTLCK, uintptr(unsafe.Pointer(&u)))
}
diff --git a/types_freebsd.go b/types_freebsd.go
index 7e0cfe8..ce3eb95 100644
--- a/types_freebsd.go
+++ b/types_freebsd.go
@@ -2,7 +2,14 @@
package pty
-// #include <sys/filio.h>
+/*
+#include <sys/param.h>
+#include <sys/filio.h>
+*/
import "C"
+const (
+ _C_SPECNAMELEN = C.SPECNAMELEN /* max length of devicename */
+)
+
type fiodgnameArg C.struct_fiodgname_arg
diff --git a/ztypes_arm.go b/ztypes_arm.go
new file mode 100644
index 0000000..ff0b8fd
--- /dev/null
+++ b/ztypes_arm.go
@@ -0,0 +1,9 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types.go
+
+package pty
+
+type (
+ _C_int int32
+ _C_uint uint32
+)
diff --git a/ztypes_freebsd_386.go b/ztypes_freebsd_386.go
index a7894a6..d997537 100644
--- a/ztypes_freebsd_386.go
+++ b/ztypes_freebsd_386.go
@@ -3,6 +3,10 @@
package pty
+const (
+ _C_SPECNAMELEN = 0x3f
+)
+
type fiodgnameArg struct {
Len int32
Buf *byte
diff --git a/ztypes_freebsd_amd64.go b/ztypes_freebsd_amd64.go
index 9d07d3f..5fa102f 100644
--- a/ztypes_freebsd_amd64.go
+++ b/ztypes_freebsd_amd64.go
@@ -3,6 +3,10 @@
package pty
+const (
+ _C_SPECNAMELEN = 0x3f
+)
+
type fiodgnameArg struct {
Len int32
Pad_cgo_0 [4]byte
diff --git a/ztypes_freebsd_arm.go b/ztypes_freebsd_arm.go
new file mode 100644
index 0000000..d997537
--- /dev/null
+++ b/ztypes_freebsd_arm.go
@@ -0,0 +1,13 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_freebsd.go
+
+package pty
+
+const (
+ _C_SPECNAMELEN = 0x3f
+)
+
+type fiodgnameArg struct {
+ Len int32
+ Buf *byte
+}