diff --git a/unix/dev_aix_ppc.go b/unix/dev_aix_ppc.go
index 27f92c9..5e5fb45 100644
--- a/unix/dev_aix_ppc.go
+++ b/unix/dev_aix_ppc.go
@@ -6,17 +6,7 @@
 // +build ppc
 
 // Functions to access/create device major and minor numbers matching the
-// encoding used by the Linux kernel and glibc.
-//
-// The information below is extracted and adapted from bits/sysmacros.h in the
-// glibc sources:
-//
-// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's
-// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major
-// number and m is a hex digit of the minor number. This is backward compatible
-// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also
-// backward compatible with the Linux kernel, which for some architectures uses
-// 32-bit dev_t, encoded as mmmM MMmm.
+// encoding used by AIX.
 
 package unix
 
diff --git a/unix/dev_aix_ppc64.go b/unix/dev_aix_ppc64.go
index 65d93a6..8b40124 100644
--- a/unix/dev_aix_ppc64.go
+++ b/unix/dev_aix_ppc64.go
@@ -6,17 +6,7 @@
 // +build ppc64
 
 // Functions to access/create device major and minor numbers matching the
-// encoding used by the Linux kernel and glibc.
-//
-// The information below is extracted and adapted from bits/sysmacros.h in the
-// glibc sources:
-//
-// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's
-// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major
-// number and m is a hex digit of the minor number. This is backward compatible
-// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also
-// backward compatible with the Linux kernel, which for some architectures uses
-// 32-bit dev_t, encoded as mmmM MMmm.
+// encoding used AIX.
 
 package unix
 
diff --git a/unix/ioctl.go b/unix/ioctl.go
index 8c9aaeb..f121a8d 100644
--- a/unix/ioctl.go
+++ b/unix/ioctl.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
 
 package unix
 
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index 787ae75..c8449cf 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -46,6 +46,7 @@
 #include <sys/stropts.h>
 #include <sys/mman.h>
 #include <sys/poll.h>
+#include <sys/termio.h>
 #include <termios.h>
 #include <fcntl.h>
 
diff --git a/unix/syscall_aix.go b/unix/syscall_aix.go
index 86d7c7b..df1f9ea 100644
--- a/unix/syscall_aix.go
+++ b/unix/syscall_aix.go
@@ -345,11 +345,11 @@
 	return ioctl(fd, req, uintptr(value))
 }
 
-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+func ioctlSetWinsize(fd int, req uint, value *Winsize) error {
 	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
 }
 
-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+func ioctlSetTermios(fd int, req uint, value *Termios) error {
 	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
 }
 
@@ -419,8 +419,10 @@
 //sysnb	Getsid(pid int) (sid int, err error)
 //sysnb	Kill(pid int, sig syscall.Signal) (err error)
 //sys	Klogctl(typ int, buf []byte) (n int, err error) = syslog
+//sys	Mkdir(dirfd int, path string, mode uint32) (err error)
 //sys	Mkdirat(dirfd int, path string, mode uint32) (err error)
 //sys	Mkfifo(path string, mode uint32) (err error)
+//sys	Mknod(path string, mode uint32, dev int) (err error)
 //sys	Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
 //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
 //sys   Open(path string, mode int, perm uint32) (fd int, err error) = open64
diff --git a/unix/types_aix.go b/unix/types_aix.go
index 355ad6c..18fbddd 100644
--- a/unix/types_aix.go
+++ b/unix/types_aix.go
@@ -22,6 +22,11 @@
 #include <utime.h>
 #include <sys/utsname.h>
 #include <sys/poll.h>
+#include <sys/resource.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/termio.h>
+#include <sys/ioctl.h>
 
 #include <termios.h>
 
@@ -33,7 +38,6 @@
 
 #include <dirent.h>
 #include <fcntl.h>
-#include <gcrypt.h>
 
 enum {
 	sizeofPtr = sizeof(void*),
@@ -224,6 +228,9 @@
 
 // Statfs
 
+type Fsid_t C.struct_fsid_t
+type Fsid64_t C.struct_fsid64_t
+
 type Statfs_t C.struct_statfs
 
 const RNDGETENTCNT = 0x80045200
diff --git a/unix/zerrors_aix_ppc.go b/unix/zerrors_aix_ppc.go
index 17c1537..4b7b965 100644
--- a/unix/zerrors_aix_ppc.go
+++ b/unix/zerrors_aix_ppc.go
@@ -867,6 +867,9 @@
 	TAB2                          = 0x800
 	TAB3                          = 0xc00
 	TABDLY                        = 0xc00
+	TCFLSH                        = 0x540c
+	TCGETA                        = 0x5405
+	TCGETS                        = 0x5401
 	TCIFLUSH                      = 0x0
 	TCIOFF                        = 0x2
 	TCIOFLUSH                     = 0x2
@@ -915,6 +918,15 @@
 	TCP_TIMESTAMP_OPTLEN          = 0xc
 	TCP_UNSETPRIV                 = 0x28
 	TCSAFLUSH                     = 0x2
+	TCSBRK                        = 0x5409
+	TCSETA                        = 0x5406
+	TCSETAF                       = 0x5408
+	TCSETAW                       = 0x5407
+	TCSETS                        = 0x5402
+	TCSETSF                       = 0x5404
+	TCSETSW                       = 0x5403
+	TCXONC                        = 0x540b
+	TIOC                          = 0x5400
 	TIOCCBRK                      = 0x2000747a
 	TIOCCDTR                      = 0x20007478
 	TIOCCONS                      = 0x80047462
diff --git a/unix/zerrors_aix_ppc64.go b/unix/zerrors_aix_ppc64.go
index fdfd25c..ed04fd1 100644
--- a/unix/zerrors_aix_ppc64.go
+++ b/unix/zerrors_aix_ppc64.go
@@ -867,6 +867,9 @@
 	TAB2                          = 0x800
 	TAB3                          = 0xc00
 	TABDLY                        = 0xc00
+	TCFLSH                        = 0x540c
+	TCGETA                        = 0x5405
+	TCGETS                        = 0x5401
 	TCIFLUSH                      = 0x0
 	TCIOFF                        = 0x2
 	TCIOFLUSH                     = 0x2
@@ -915,6 +918,15 @@
 	TCP_TIMESTAMP_OPTLEN          = 0xc
 	TCP_UNSETPRIV                 = 0x28
 	TCSAFLUSH                     = 0x2
+	TCSBRK                        = 0x5409
+	TCSETA                        = 0x5406
+	TCSETAF                       = 0x5408
+	TCSETAW                       = 0x5407
+	TCSETS                        = 0x5402
+	TCSETSF                       = 0x5404
+	TCSETSW                       = 0x5403
+	TCXONC                        = 0x540b
+	TIOC                          = 0x5400
 	TIOCCBRK                      = 0x2000747a
 	TIOCCDTR                      = 0x20007478
 	TIOCCONS                      = 0xffffffff80047462
diff --git a/unix/zsyscall_aix_ppc.go b/unix/zsyscall_aix_ppc.go
index 46d0652..ab2f761 100644
--- a/unix/zsyscall_aix_ppc.go
+++ b/unix/zsyscall_aix_ppc.go
@@ -39,8 +39,10 @@
 int getsid(int);
 int kill(int, int);
 int syslog(int, uintptr_t, size_t);
+int mkdir(int, uintptr_t, unsigned int);
 int mkdirat(int, uintptr_t, unsigned int);
 int mkfifo(uintptr_t, unsigned int);
+int mknod(uintptr_t, unsigned int, int);
 int mknodat(int, uintptr_t, unsigned int, int);
 int nanosleep(uintptr_t, uintptr_t);
 int open64(uintptr_t, int, unsigned int);
@@ -502,6 +504,17 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Mkdir(dirfd int, path string, mode uint32) (err error) {
+	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
+	r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
+	if r0 == -1 && er != nil {
+		err = er
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Mkdirat(dirfd int, path string, mode uint32) (err error) {
 	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
 	r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
@@ -524,6 +537,17 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Mknod(path string, mode uint32, dev int) (err error) {
+	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
+	r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))
+	if r0 == -1 && er != nil {
+		err = er
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
 	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
 	r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))
diff --git a/unix/zsyscall_aix_ppc64.go b/unix/zsyscall_aix_ppc64.go
index b33f9ec..2e4f93f 100644
--- a/unix/zsyscall_aix_ppc64.go
+++ b/unix/zsyscall_aix_ppc64.go
@@ -39,8 +39,10 @@
 int getsid(int);
 int kill(int, int);
 int syslog(int, uintptr_t, size_t);
+int mkdir(int, uintptr_t, unsigned int);
 int mkdirat(int, uintptr_t, unsigned int);
 int mkfifo(uintptr_t, unsigned int);
+int mknod(uintptr_t, unsigned int, int);
 int mknodat(int, uintptr_t, unsigned int, int);
 int nanosleep(uintptr_t, uintptr_t);
 int open64(uintptr_t, int, unsigned int);
@@ -502,6 +504,17 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Mkdir(dirfd int, path string, mode uint32) (err error) {
+	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
+	r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
+	if r0 == -1 && er != nil {
+		err = er
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Mkdirat(dirfd int, path string, mode uint32) (err error) {
 	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
 	r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
@@ -524,6 +537,17 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Mknod(path string, mode uint32, dev int) (err error) {
+	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
+	r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))
+	if r0 == -1 && er != nil {
+		err = er
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
 	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
 	r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))
diff --git a/unix/ztypes_aix_ppc.go b/unix/ztypes_aix_ppc.go
index ee45536..f1cfe7d 100644
--- a/unix/ztypes_aix_ppc.go
+++ b/unix/ztypes_aix_ppc.go
@@ -268,9 +268,22 @@
 	Cc    [16]uint8
 }
 
-type Termio struct{}
+type Termio struct {
+	Iflag uint16
+	Oflag uint16
+	Cflag uint16
+	Lflag uint16
+	Line  uint8
+	Cc    [8]uint8
+	_     [1]byte
+}
 
-type Winsize struct{}
+type Winsize struct {
+	Row    uint16
+	Col    uint16
+	Xpixel uint16
+	Ypixel uint16
+}
 
 type PollFd struct {
 	Fd      int32
@@ -301,6 +314,32 @@
 	Len    int64
 }
 
-type Statfs_t struct{}
+type Fsid_t struct {
+	Val [2]uint32
+}
+type Fsid64_t struct {
+	Val [2]uint64
+}
+
+type Statfs_t struct {
+	Version   int32
+	Type      int32
+	Bsize     uint32
+	Blocks    uint32
+	Bfree     uint32
+	Bavail    uint32
+	Files     uint32
+	Ffree     uint32
+	Fsid      Fsid_t
+	Vfstype   int32
+	Fsize     uint32
+	Vfsnumber int32
+	Vfsoff    int32
+	Vfslen    int32
+	Vfsvers   int32
+	Fname     [32]uint8
+	Fpack     [32]uint8
+	Name_max  int32
+}
 
 const RNDGETENTCNT = 0x80045200
diff --git a/unix/ztypes_aix_ppc64.go b/unix/ztypes_aix_ppc64.go
index cdb1699..95581a3 100644
--- a/unix/ztypes_aix_ppc64.go
+++ b/unix/ztypes_aix_ppc64.go
@@ -275,9 +275,22 @@
 	Cc    [16]uint8
 }
 
-type Termio struct{}
+type Termio struct {
+	Iflag uint16
+	Oflag uint16
+	Cflag uint16
+	Lflag uint16
+	Line  uint8
+	Cc    [8]uint8
+	_     [1]byte
+}
 
-type Winsize struct{}
+type Winsize struct {
+	Row    uint16
+	Col    uint16
+	Xpixel uint16
+	Ypixel uint16
+}
 
 type PollFd struct {
 	Fd      int32
@@ -308,6 +321,34 @@
 	Len    int64
 }
 
-type Statfs_t struct{}
+type Fsid_t struct {
+	Val [2]uint32
+}
+type Fsid64_t struct {
+	Val [2]uint64
+}
+
+type Statfs_t struct {
+	Version   int32
+	Type      int32
+	Bsize     uint64
+	Blocks    uint64
+	Bfree     uint64
+	Bavail    uint64
+	Files     uint64
+	Ffree     uint64
+	Fsid      Fsid64_t
+	Vfstype   int32
+	_         [4]byte
+	Fsize     uint64
+	Vfsnumber int32
+	Vfsoff    int32
+	Vfslen    int32
+	Vfsvers   int32
+	Fname     [32]uint8
+	Fpack     [32]uint8
+	Name_max  int32
+	_         [4]byte
+}
 
 const RNDGETENTCNT = 0x80045200
