mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-29 21:36:43 -04:00
iovec read/writes (readv, writev, preadv, pwritev) are present on illumos, but they weren't added to the package. This commit adds those missing features. Updates golang/go#36201 Change-Id: Iecf2bab7ef846f5ca5d693e833491d819618c15d GitHub-Last-Rev: 81a479f4c5f851f81e748cef6eb529c3f89cd1e1 GitHub-Pull-Request: golang/sys#64 Reviewed-on: https://go-review.googlesource.com/c/sys/+/224238 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
88 lines
2.1 KiB
Go
88 lines
2.1 KiB
Go
// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go
|
|
// Code generated by the command above; see README.md. DO NOT EDIT.
|
|
|
|
// +build illumos,amd64
|
|
|
|
package unix
|
|
|
|
import (
|
|
"unsafe"
|
|
)
|
|
|
|
//go:cgo_import_dynamic libc_readv readv "libc.so"
|
|
//go:cgo_import_dynamic libc_preadv preadv "libc.so"
|
|
//go:cgo_import_dynamic libc_writev writev "libc.so"
|
|
//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
|
|
|
|
//go:linkname procreadv libc_readv
|
|
//go:linkname procpreadv libc_preadv
|
|
//go:linkname procwritev libc_writev
|
|
//go:linkname procpwritev libc_pwritev
|
|
|
|
var (
|
|
procreadv,
|
|
procpreadv,
|
|
procwritev,
|
|
procpwritev syscallFunc
|
|
)
|
|
|
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
|
|
func readv(fd int, iovs []Iovec) (n int, err error) {
|
|
var _p0 *Iovec
|
|
if len(iovs) > 0 {
|
|
_p0 = &iovs[0]
|
|
}
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
|
|
n = int(r0)
|
|
if e1 != 0 {
|
|
err = e1
|
|
}
|
|
return
|
|
}
|
|
|
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
|
|
func preadv(fd int, iovs []Iovec, off int64) (n int, err error) {
|
|
var _p0 *Iovec
|
|
if len(iovs) > 0 {
|
|
_p0 = &iovs[0]
|
|
}
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
|
|
n = int(r0)
|
|
if e1 != 0 {
|
|
err = e1
|
|
}
|
|
return
|
|
}
|
|
|
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
|
|
func writev(fd int, iovs []Iovec) (n int, err error) {
|
|
var _p0 *Iovec
|
|
if len(iovs) > 0 {
|
|
_p0 = &iovs[0]
|
|
}
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
|
|
n = int(r0)
|
|
if e1 != 0 {
|
|
err = e1
|
|
}
|
|
return
|
|
}
|
|
|
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
|
|
func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {
|
|
var _p0 *Iovec
|
|
if len(iovs) > 0 {
|
|
_p0 = &iovs[0]
|
|
}
|
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
|
|
n = int(r0)
|
|
if e1 != 0 {
|
|
err = e1
|
|
}
|
|
return
|
|
}
|