vendor/golang.org/x/sys/unix/syscall_solaris.go
changeset 256 6d9efbef00a9
parent 251 1c52a0eeb952
child 260 445e01aede7e
equal deleted inserted replaced
255:4f153a23adab 256:6d9efbef00a9
    11 // syscall_solaris.go or syscall_unix.go.
    11 // syscall_solaris.go or syscall_unix.go.
    12 
    12 
    13 package unix
    13 package unix
    14 
    14 
    15 import (
    15 import (
       
    16 	"runtime"
    16 	"syscall"
    17 	"syscall"
    17 	"unsafe"
    18 	"unsafe"
    18 )
    19 )
    19 
    20 
    20 // Implemented in runtime/syscall_solaris.go.
    21 // Implemented in runtime/syscall_solaris.go.
    63 		return err
    64 		return err
    64 	}
    65 	}
    65 	p[0] = int(pp[0])
    66 	p[0] = int(pp[0])
    66 	p[1] = int(pp[1])
    67 	p[1] = int(pp[1])
    67 	return nil
    68 	return nil
       
    69 }
       
    70 
       
    71 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
       
    72 
       
    73 func Pipe2(p []int, flags int) error {
       
    74 	if len(p) != 2 {
       
    75 		return EINVAL
       
    76 	}
       
    77 	var pp [2]_C_int
       
    78 	err := pipe2(&pp, flags)
       
    79 	p[0] = int(pp[0])
       
    80 	p[1] = int(pp[1])
       
    81 	return err
    68 }
    82 }
    69 
    83 
    70 func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
    84 func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
    71 	if sa.Port < 0 || sa.Port > 0xFFFF {
    85 	if sa.Port < 0 || sa.Port > 0xFFFF {
    72 		return nil, 0, EINVAL
    86 		return nil, 0, EINVAL
   549 
   563 
   550 /*
   564 /*
   551  * Expose the ioctl function
   565  * Expose the ioctl function
   552  */
   566  */
   553 
   567 
   554 //sys	ioctl(fd int, req uint, arg uintptr) (err error)
   568 //sys	ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) = libc.ioctl
   555 
   569 
   556 func IoctlSetTermio(fd int, req uint, value *Termio) (err error) {
   570 func ioctl(fd int, req uint, arg uintptr) (err error) {
   557 	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
   571 	_, err = ioctlRet(fd, req, arg)
       
   572 	return err
       
   573 }
       
   574 
       
   575 func IoctlSetTermio(fd int, req uint, value *Termio) error {
       
   576 	err := ioctl(fd, req, uintptr(unsafe.Pointer(value)))
       
   577 	runtime.KeepAlive(value)
       
   578 	return err
   558 }
   579 }
   559 
   580 
   560 func IoctlGetTermio(fd int, req uint) (*Termio, error) {
   581 func IoctlGetTermio(fd int, req uint) (*Termio, error) {
   561 	var value Termio
   582 	var value Termio
   562 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
   583 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
   563 	return &value, err
   584 	return &value, err
   564 }
   585 }
   565 
   586 
   566 //sys   poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   587 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   567 
   588 
   568 func Poll(fds []PollFd, timeout int) (n int, err error) {
   589 func Poll(fds []PollFd, timeout int) (n int, err error) {
   569 	if len(fds) == 0 {
   590 	if len(fds) == 0 {
   570 		return poll(nil, 0, timeout)
   591 		return poll(nil, 0, timeout)
   571 	}
   592 	}
   664 //sys	Shutdown(s int, how int) (err error) = libsocket.shutdown
   685 //sys	Shutdown(s int, how int) (err error) = libsocket.shutdown
   665 //sys	Stat(path string, stat *Stat_t) (err error)
   686 //sys	Stat(path string, stat *Stat_t) (err error)
   666 //sys	Statvfs(path string, vfsstat *Statvfs_t) (err error)
   687 //sys	Statvfs(path string, vfsstat *Statvfs_t) (err error)
   667 //sys	Symlink(path string, link string) (err error)
   688 //sys	Symlink(path string, link string) (err error)
   668 //sys	Sync() (err error)
   689 //sys	Sync() (err error)
       
   690 //sys	Sysconf(which int) (n int64, err error)
   669 //sysnb	Times(tms *Tms) (ticks uintptr, err error)
   691 //sysnb	Times(tms *Tms) (ticks uintptr, err error)
   670 //sys	Truncate(path string, length int64) (err error)
   692 //sys	Truncate(path string, length int64) (err error)
   671 //sys	Fsync(fd int) (err error)
   693 //sys	Fsync(fd int) (err error)
   672 //sys	Ftruncate(fd int, length int64) (err error)
   694 //sys	Ftruncate(fd int, length int64) (err error)
   673 //sys	Umask(mask int) (oldmask int)
   695 //sys	Umask(mask int) (oldmask int)