Commit c6810e76 authored by Albert Strasheim's avatar Albert Strasheim Committed by Russ Cox

syscall: GetsockoptInt.

R=rsc, iant
CC=golang-dev
https://golang.org/cl/4271060
parent f2483c74
......@@ -415,6 +415,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)
......@@ -675,7 +682,6 @@ func Reboot(cmd int) (errno int) {
// Sendto
// Recvfrom
// Socketpair
// Getsockopt
/*
* Direct access
......
......@@ -130,6 +130,11 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
return
}
func getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (errno int) {
_, errno = socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
return
}
func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
_, errno = socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
return
......
......@@ -40,6 +40,7 @@ package syscall
//sys connect(s int, addr uintptr, addrlen _Socklen) (errno int)
//sysnb getgroups(n int, list *_Gid_t) (nn int, errno int)
//sysnb setgroups(n int, list *_Gid_t) (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 socket(domain int, typ int, proto int) (fd int, errno int)
//sysnb socketpair(domain int, typ int, proto int, fd *[2]int) (errno int)
......
......@@ -57,6 +57,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, errno int)
//sys connect(s int, addr uintptr, addrlen _Socklen) (errno int)
//sysnb getgroups(n int, list *_Gid_t) (nn int, errno int) = SYS_GETGROUPS32
//sysnb setgroups(n int, list *_Gid_t) (errno int) = SYS_SETGROUPS32
//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 socket(domain int, typ int, proto int) (fd int, errno int)
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int)
......
// mksyscall.sh -l32 syscall_linux.go syscall_linux_386.go
// mksyscall.pl -l32 syscall_linux.go syscall_linux_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
package syscall
......
// mksyscall.sh syscall_linux.go syscall_linux_amd64.go
// mksyscall.pl syscall_linux.go syscall_linux_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
package syscall
......@@ -1072,6 +1072,14 @@ func setgroups(n int, list *_Gid_t) (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)
......
// mksyscall.sh -b32 syscall_linux.go syscall_linux_arm.go
// mksyscall.pl -b32 syscall_linux.go syscall_linux_arm.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
package syscall
......@@ -807,6 +807,14 @@ func setgroups(n int, list *_Gid_t) (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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment