Skip to content
This repository has been archived by the owner on May 2, 2018. It is now read-only.

Commit

Permalink
syscall: GetsockoptInt for darwin, freebsd.
Browse files Browse the repository at this point in the history
R=rsc
CC=golang-dev
https://golang.org/cl/4298060
  • Loading branch information
alberts authored and rsc committed Mar 25, 2011
1 parent e480b81 commit e83d696
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 4 deletions.
9 changes: 8 additions & 1 deletion src/pkg/syscall/syscall_bsd.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ func Sleep(ns int64) (errno int) {
//sys bind(s int, addr uintptr, addrlen _Socklen) (errno int)
//sys connect(s int, addr uintptr, addrlen _Socklen) (errno int)
//sysnb socket(domain int, typ int, proto int) (fd int, errno int)
//sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int)
//sys setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int)
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int)
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int)
Expand Down Expand Up @@ -362,6 +363,13 @@ func Socketpair(domain, typ, proto int) (fd [2]int, errno int) {
return
}

func GetsockoptInt(fd, level, opt int) (value, errno int) {
var n int32
vallen := _Socklen(4)
errno = getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), &vallen)
return int(n), errno
}

func SetsockoptInt(fd, level, opt int, value int) (errno int) {
var n = int32(value)
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 4)
Expand Down Expand Up @@ -552,7 +560,6 @@ func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (errno int) {
// TODO: wrap
// Acct(name nil-string) (errno int)
// Gethostuuid(uuid *byte, timeout *Timespec) (errno int)
// Getsockopt(s int, level int, name int, val *byte, vallen *int) (errno int)
// Madvise(addr *byte, len int, behav int) (errno int)
// Mprotect(addr *byte, len int, prot int) (errno int)
// Msync(addr *byte, len int, flags int) (errno int)
Expand Down
10 changes: 9 additions & 1 deletion src/pkg/syscall/zsyscall_darwin_386.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// mksyscall.sh -l32 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
// mksyscall.pl -l32 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT

package syscall
Expand Down Expand Up @@ -77,6 +77,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int) {
_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
errno = int(e1)
return
}

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
errno = int(e1)
Expand Down
8 changes: 8 additions & 0 deletions src/pkg/syscall/zsyscall_darwin_amd64.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int) {
_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
errno = int(e1)
return
}

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
errno = int(e1)
Expand Down
10 changes: 9 additions & 1 deletion src/pkg/syscall/zsyscall_freebsd_386.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// mksyscall.sh -l32 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
// mksyscall.pl -l32 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT

package syscall
Expand Down Expand Up @@ -77,6 +77,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int) {
_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
errno = int(e1)
return
}

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
errno = int(e1)
Expand Down
10 changes: 9 additions & 1 deletion src/pkg/syscall/zsyscall_freebsd_amd64.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// mksyscall.sh syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
// mksyscall.pl syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT

package syscall
Expand Down Expand Up @@ -77,6 +77,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int) {
_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
errno = int(e1)
return
}

// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT

func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
errno = int(e1)
Expand Down

0 comments on commit e83d696

Please sign in to comment.