pkg/devicemapper/ioctl.go
85357a11
 // +build linux,cgo
24c03b2d
 
e2f8fbfb
 package devicemapper
1214b889
 
 import (
 	"unsafe"
069fdc8a
 
 	"golang.org/x/sys/unix"
1214b889
 )
 
 func ioctlBlkGetSize64(fd uintptr) (int64, error) {
 	var size int64
069fdc8a
 	if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, BlkGetSize64, uintptr(unsafe.Pointer(&size))); err != 0 {
1214b889
 		return 0, err
 	}
 	return size, nil
 }
93e120e7
 
 func ioctlBlkDiscard(fd uintptr, offset, length uint64) error {
 	var r [2]uint64
 	r[0] = offset
 	r[1] = length
 
069fdc8a
 	if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, BlkDiscard, uintptr(unsafe.Pointer(&r[0]))); err != 0 {
93e120e7
 		return err
 	}
 	return nil
 }