libgo: update to Go 1.11
[official-gcc.git] / libgo / go / net / writev_unix.go
blobbf0fbf8a13611fedf6f72961fd7d9d36fa6c9634
1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // +build darwin dragonfly freebsd linux netbsd openbsd
7 package net
9 import (
10 "runtime"
11 "syscall"
14 func (c *conn) writeBuffers(v *Buffers) (int64, error) {
15 if !c.ok() {
16 return 0, syscall.EINVAL
18 n, err := c.fd.writeBuffers(v)
19 if err != nil {
20 return n, &OpError{Op: "writev", Net: c.fd.net, Source: c.fd.laddr, Addr: c.fd.raddr, Err: err}
22 return n, nil
25 func (fd *netFD) writeBuffers(v *Buffers) (n int64, err error) {
26 n, err = fd.pfd.Writev((*[][]byte)(v))
27 runtime.KeepAlive(fd)
28 return n, wrapSyscallError("writev", err)