diff options
Diffstat (limited to 'pkg/iovec')
-rw-r--r-- | pkg/iovec/BUILD | 5 | ||||
-rw-r--r-- | pkg/iovec/iovec.go | 15 | ||||
-rw-r--r-- | pkg/iovec/iovec_test.go | 9 |
3 files changed, 15 insertions, 14 deletions
diff --git a/pkg/iovec/BUILD b/pkg/iovec/BUILD index eda82cfc1..b92a58556 100644 --- a/pkg/iovec/BUILD +++ b/pkg/iovec/BUILD @@ -6,7 +6,10 @@ go_library( name = "iovec", srcs = ["iovec.go"], visibility = ["//:sandbox"], - deps = ["//pkg/abi/linux"], + deps = [ + "//pkg/abi/linux", + "@org_golang_x_sys//unix:go_default_library", + ], ) go_test( diff --git a/pkg/iovec/iovec.go b/pkg/iovec/iovec.go index dd70fe80f..0789c74bf 100644 --- a/pkg/iovec/iovec.go +++ b/pkg/iovec/iovec.go @@ -19,18 +19,17 @@ package iovec import ( - "syscall" - + "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/abi/linux" ) // MaxIovs is the maximum number of iovecs host platform can accept. var MaxIovs = linux.UIO_MAXIOV -// Builder is a builder for slice of syscall.Iovec. +// Builder is a builder for slice of unix.Iovec. type Builder struct { - iovec []syscall.Iovec - storage [8]syscall.Iovec + iovec []unix.Iovec + storage [8]unix.Iovec // overflow tracks the last buffer when iovec length is at MaxIovs. overflow []byte @@ -48,7 +47,7 @@ func (b *Builder) Add(buf []byte) { b.addByAppend(buf) return } - b.iovec = append(b.iovec, syscall.Iovec{ + b.iovec = append(b.iovec, unix.Iovec{ Base: &buf[0], Len: uint64(len(buf)), }) @@ -62,7 +61,7 @@ func (b *Builder) Add(buf []byte) { func (b *Builder) addByAppend(buf []byte) { b.overflow = append(b.overflow, buf...) - b.iovec[len(b.iovec)-1] = syscall.Iovec{ + b.iovec[len(b.iovec)-1] = unix.Iovec{ Base: &b.overflow[0], Len: uint64(len(b.overflow)), } @@ -70,6 +69,6 @@ func (b *Builder) addByAppend(buf []byte) { // Build returns the final Iovec slice. The length of returned iovec will not // excceed MaxIovs. -func (b *Builder) Build() []syscall.Iovec { +func (b *Builder) Build() []unix.Iovec { return b.iovec } diff --git a/pkg/iovec/iovec_test.go b/pkg/iovec/iovec_test.go index a3900c299..f6deb4208 100644 --- a/pkg/iovec/iovec_test.go +++ b/pkg/iovec/iovec_test.go @@ -19,7 +19,6 @@ package iovec import ( "bytes" "fmt" - "syscall" "testing" "unsafe" @@ -100,16 +99,16 @@ func TestBuilderBuildMaxIov(t *testing.T) { if err := unix.Pipe(fds[:]); err != nil { t.Fatalf("Pipe: %v", err) } - defer syscall.Close(fds[0]) - defer syscall.Close(fds[1]) + defer unix.Close(fds[0]) + defer unix.Close(fds[1]) - wrote, _, e := syscall.RawSyscall(syscall.SYS_WRITEV, uintptr(fds[1]), uintptr(unsafe.Pointer(&iovec[0])), uintptr(len(iovec))) + wrote, _, e := unix.RawSyscall(unix.SYS_WRITEV, uintptr(fds[1]), uintptr(unsafe.Pointer(&iovec[0])), uintptr(len(iovec))) if int(wrote) != len(data) || e != 0 { t.Fatalf("writev: %v, %v; want %v, 0", wrote, e, len(data)) } got := make([]byte, len(data)) - if n, err := syscall.Read(fds[0], got); n != len(got) || err != nil { + if n, err := unix.Read(fds[0], got); n != len(got) || err != nil { t.Fatalf("read: %v, %v; want %v, nil", n, err, len(got)) } |