ceph-csi/vendor/github.com/ceph/go-ceph/internal/cutil/cutil.go
Niels de Vos 29c78f97c0 rebase: update vendored go-ceph to v0.6
Closes: #1547
Signed-off-by: Niels de Vos <ndevos@redhat.com>
2020-10-13 16:09:04 +00:00

15 lines
562 B
Go

package cutil
import "unsafe"
// VoidPtr casts a uintptr value to an unsafe.Pointer value in order to use it
// directly as a void* argument in a C function call.
// CAUTION: NEVER store the result in a variable, or the Go GC could panic.
func VoidPtr(i uintptr) unsafe.Pointer {
var nullPtr unsafe.Pointer
// It's not possible to cast uintptr directly to unsafe.Pointer. Therefore we
// cast a null pointer to uintptr and apply pointer arithmetic on it, which
// allows us to cast it back to unsafe.Pointer.
return unsafe.Pointer(uintptr(nullPtr) + i)
}