github.com/Cloud-Foundations/Dominator@v0.3.4/lib/net/vsock/impl_linux.go (about) 1 package vsock 2 3 import ( 4 "fmt" 5 6 "golang.org/x/sys/unix" 7 ) 8 9 const ( 10 vsockDev = "/dev/vsock" 11 ) 12 13 func checkVsockets() error { 14 if fd, err := unix.Socket(unix.AF_VSOCK, unix.SOCK_STREAM, 0); err != nil { 15 return err 16 } else { 17 unix.Close(fd) 18 return nil 19 } 20 } 21 22 func getContextID() (uint32, error) { 23 fd, err := unix.Open(vsockDev, 0, 0) 24 if err != nil { 25 return 0, fmt.Errorf("error opening %s: %s", vsockDev, err) 26 } 27 defer unix.Close(fd) 28 return unix.IoctlGetUint32(fd, 29 unix.IOCTL_VM_SOCKETS_GET_LOCAL_CID) 30 }