vendor/golang.org/x/sys/unix/syscall_freebsd.go
changeset 256 6d9efbef00a9
parent 251 1c52a0eeb952
child 260 445e01aede7e
equal deleted inserted replaced
255:4f153a23adab 256:6d9efbef00a9
    52 	Slen   uint8
    52 	Slen   uint8
    53 	Data   [46]int8
    53 	Data   [46]int8
    54 	raw    RawSockaddrDatalink
    54 	raw    RawSockaddrDatalink
    55 }
    55 }
    56 
    56 
       
    57 func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
       
    58 	return nil, EAFNOSUPPORT
       
    59 }
       
    60 
    57 // Translate "kern.hostname" to []_C_int{0,1,2,3}.
    61 // Translate "kern.hostname" to []_C_int{0,1,2,3}.
    58 func nametomib(name string) (mib []_C_int, err error) {
    62 func nametomib(name string) (mib []_C_int, err error) {
    59 	const siz = unsafe.Sizeof(mib[0])
    63 	const siz = unsafe.Sizeof(mib[0])
    60 
    64 
    61 	// NOTE(rsc): It seems strange to set the buffer to have
    65 	// NOTE(rsc): It seems strange to set the buffer to have
   120 
   124 
   121 func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
   125 func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
   122 	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
   126 	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
   123 }
   127 }
   124 
   128 
       
   129 // GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.
       
   130 // The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.
       
   131 func GetsockoptXucred(fd, level, opt int) (*Xucred, error) {
       
   132 	x := new(Xucred)
       
   133 	vallen := _Socklen(SizeofXucred)
       
   134 	err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)
       
   135 	return x, err
       
   136 }
       
   137 
   125 func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
   138 func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
   126 	var rsa RawSockaddrAny
   139 	var rsa RawSockaddrAny
   127 	var len _Socklen = SizeofSockaddrAny
   140 	var len _Socklen = SizeofSockaddrAny
   128 	nfd, err = accept4(fd, &rsa, &len, flags)
   141 	nfd, err = accept4(fd, &rsa, &len, flags)
   129 	if err != nil {
   142 	if err != nil {
   138 		nfd = 0
   151 		nfd = 0
   139 	}
   152 	}
   140 	return
   153 	return
   141 }
   154 }
   142 
   155 
   143 const ImplementsGetwd = true
       
   144 
       
   145 //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
   156 //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
   146 
       
   147 func Getwd() (string, error) {
       
   148 	var buf [PathMax]byte
       
   149 	_, err := Getcwd(buf[0:])
       
   150 	if err != nil {
       
   151 		return "", err
       
   152 	}
       
   153 	n := clen(buf[:])
       
   154 	if n < 1 {
       
   155 		return "", EINVAL
       
   156 	}
       
   157 	return string(buf[:n]), nil
       
   158 }
       
   159 
   157 
   160 func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
   158 func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
   161 	var (
   159 	var (
   162 		_p0          unsafe.Pointer
   160 		_p0          unsafe.Pointer
   163 		bufsize      uintptr
   161 		bufsize      uintptr
   197 func setattrlistTimes(path string, times []Timespec, flags int) error {
   195 func setattrlistTimes(path string, times []Timespec, flags int) error {
   198 	// used on Darwin for UtimesNano
   196 	// used on Darwin for UtimesNano
   199 	return ENOSYS
   197 	return ENOSYS
   200 }
   198 }
   201 
   199 
   202 //sys   ioctl(fd int, req uint, arg uintptr) (err error)
   200 //sys	ioctl(fd int, req uint, arg uintptr) (err error)
   203 
   201 
   204 //sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
   202 //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
   205 
   203 
   206 func Uname(uname *Utsname) error {
   204 func Uname(uname *Utsname) error {
   207 	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
   205 	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
   208 	n := unsafe.Sizeof(uname.Sysname)
   206 	n := unsafe.Sizeof(uname.Sysname)
   209 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
   207 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
   517 	return ptrace(PTRACE_DETACH, pid, 1, 0)
   515 	return ptrace(PTRACE_DETACH, pid, 1, 0)
   518 }
   516 }
   519 
   517 
   520 func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
   518 func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
   521 	return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
   519 	return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
   522 }
       
   523 
       
   524 func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
       
   525 	return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
       
   526 }
   520 }
   527 
   521 
   528 func PtraceGetRegs(pid int, regsout *Reg) (err error) {
   522 func PtraceGetRegs(pid int, regsout *Reg) (err error) {
   529 	return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
   523 	return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
   530 }
   524 }
   678 //sys	Undelete(path string) (err error)
   672 //sys	Undelete(path string) (err error)
   679 //sys	Unlink(path string) (err error)
   673 //sys	Unlink(path string) (err error)
   680 //sys	Unlinkat(dirfd int, path string, flags int) (err error)
   674 //sys	Unlinkat(dirfd int, path string, flags int) (err error)
   681 //sys	Unmount(path string, flags int) (err error)
   675 //sys	Unmount(path string, flags int) (err error)
   682 //sys	write(fd int, p []byte) (n int, err error)
   676 //sys	write(fd int, p []byte) (n int, err error)
   683 //sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
   677 //sys	mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
   684 //sys   munmap(addr uintptr, length uintptr) (err error)
   678 //sys	munmap(addr uintptr, length uintptr) (err error)
   685 //sys	readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
   679 //sys	readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
   686 //sys	writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
   680 //sys	writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE
   687 //sys	accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
   681 //sys	accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)
   688 //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
   682 //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
   689 
   683