From 2d0786266e9cd132da844109aa05016f11f3df28 Mon Sep 17 00:00:00 2001 From: Matt Layher Date: Wed, 8 May 2019 17:10:54 -0400 Subject: [PATCH] unix: add IoctlGetUint32 on Linux Because the size of int varies on different architectures, IoctlGetInt is unsuitable for ioctl APIs which explicitly deal with fixed size integers, such as uint32. Change-Id: I5a8dc397b713027c4ef9f9a91490f177ac8342e2 Reviewed-on: https://go-review.googlesource.com/c/sys/+/175982 Run-TryBot: Matt Layher Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- unix/syscall_linux.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index c302f01b..d7a8f731 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -109,6 +109,12 @@ func IoctlGetInt(fd int, req uint) (int, error) { return value, err } +func IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 + err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) + return value, err +} + func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { var value Winsize err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))