vendor/golang.org/x/sys/unix/syscall_dragonfly.go
changeset 256 6d9efbef00a9
parent 251 1c52a0eeb952
child 260 445e01aede7e
equal deleted inserted replaced
255:4f153a23adab 256:6d9efbef00a9
    45 	Rcf    uint16
    45 	Rcf    uint16
    46 	Route  [16]uint16
    46 	Route  [16]uint16
    47 	raw    RawSockaddrDatalink
    47 	raw    RawSockaddrDatalink
    48 }
    48 }
    49 
    49 
       
    50 func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
       
    51 	return nil, EAFNOSUPPORT
       
    52 }
       
    53 
    50 // Translate "kern.hostname" to []_C_int{0,1,2,3}.
    54 // Translate "kern.hostname" to []_C_int{0,1,2,3}.
    51 func nametomib(name string) (mib []_C_int, err error) {
    55 func nametomib(name string) (mib []_C_int, err error) {
    52 	const siz = unsafe.Sizeof(mib[0])
    56 	const siz = unsafe.Sizeof(mib[0])
    53 
    57 
    54 	// NOTE(rsc): It seems strange to set the buffer to have
    58 	// NOTE(rsc): It seems strange to set the buffer to have
    89 
    93 
    90 func direntNamlen(buf []byte) (uint64, bool) {
    94 func direntNamlen(buf []byte) (uint64, bool) {
    91 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
    95 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
    92 }
    96 }
    93 
    97 
    94 //sysnb pipe() (r int, w int, err error)
    98 //sysnb	pipe() (r int, w int, err error)
    95 
    99 
    96 func Pipe(p []int) (err error) {
   100 func Pipe(p []int) (err error) {
    97 	if len(p) != 2 {
   101 	if len(p) != 2 {
    98 		return EINVAL
   102 		return EINVAL
    99 	}
   103 	}
   100 	p[0], p[1], err = pipe()
   104 	p[0], p[1], err = pipe()
   101 	return
   105 	return
       
   106 }
       
   107 
       
   108 //sysnb	pipe2(p *[2]_C_int, flags int) (r int, w int, err error)
       
   109 
       
   110 func Pipe2(p []int, flags int) (err error) {
       
   111 	if len(p) != 2 {
       
   112 		return EINVAL
       
   113 	}
       
   114 	var pp [2]_C_int
       
   115 	// pipe2 on dragonfly takes an fds array as an argument, but still
       
   116 	// returns the file descriptors.
       
   117 	p[0], p[1], err = pipe2(&pp, flags)
       
   118 	return err
   102 }
   119 }
   103 
   120 
   104 //sys	extpread(fd int, p []byte, flags int, offset int64) (n int, err error)
   121 //sys	extpread(fd int, p []byte, flags int, offset int64) (n int, err error)
   105 func Pread(fd int, p []byte, offset int64) (n int, err error) {
   122 func Pread(fd int, p []byte, offset int64) (n int, err error) {
   106 	return extpread(fd, p, 0, offset)
   123 	return extpread(fd, p, 0, offset)
   127 		nfd = 0
   144 		nfd = 0
   128 	}
   145 	}
   129 	return
   146 	return
   130 }
   147 }
   131 
   148 
   132 const ImplementsGetwd = true
       
   133 
       
   134 //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
   149 //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
   135 
       
   136 func Getwd() (string, error) {
       
   137 	var buf [PathMax]byte
       
   138 	_, err := Getcwd(buf[0:])
       
   139 	if err != nil {
       
   140 		return "", err
       
   141 	}
       
   142 	n := clen(buf[:])
       
   143 	if n < 1 {
       
   144 		return "", EINVAL
       
   145 	}
       
   146 	return string(buf[:n]), nil
       
   147 }
       
   148 
   150 
   149 func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
   151 func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
   150 	var _p0 unsafe.Pointer
   152 	var _p0 unsafe.Pointer
   151 	var bufsize uintptr
   153 	var bufsize uintptr
   152 	if len(buf) > 0 {
   154 	if len(buf) > 0 {
   166 	return ENOSYS
   168 	return ENOSYS
   167 }
   169 }
   168 
   170 
   169 //sys	ioctl(fd int, req uint, arg uintptr) (err error)
   171 //sys	ioctl(fd int, req uint, arg uintptr) (err error)
   170 
   172 
   171 //sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
   173 //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
   172 
   174 
   173 func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {
   175 func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {
   174 	err := sysctl(mib, old, oldlen, nil, 0)
   176 	err := sysctl(mib, old, oldlen, nil, 0)
   175 	if err != nil {
   177 	if err != nil {
   176 		// Utsname members on Dragonfly are only 32 bytes and
   178 		// Utsname members on Dragonfly are only 32 bytes and
   333 //sys	Undelete(path string) (err error)
   335 //sys	Undelete(path string) (err error)
   334 //sys	Unlink(path string) (err error)
   336 //sys	Unlink(path string) (err error)
   335 //sys	Unlinkat(dirfd int, path string, flags int) (err error)
   337 //sys	Unlinkat(dirfd int, path string, flags int) (err error)
   336 //sys	Unmount(path string, flags int) (err error)
   338 //sys	Unmount(path string, flags int) (err error)
   337 //sys	write(fd int, p []byte) (n int, err error)
   339 //sys	write(fd int, p []byte) (n int, err error)
   338 //sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
   340 //sys	mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
   339 //sys   munmap(addr uintptr, length uintptr) (err error)
   341 //sys	munmap(addr uintptr, length uintptr) (err error)
   340 //sys	readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
   342 //sys	readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
   341 //sys	writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
   343 //sys	writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
   342 //sys	accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
   344 //sys	accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
   343 //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
   345 //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
   344 
   346