]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: GetsockoptInt.
authorAlbert Strasheim <fullung@gmail.com>
Wed, 23 Mar 2011 18:33:48 +0000 (14:33 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 23 Mar 2011 18:33:48 +0000 (14:33 -0400)
R=rsc, iant
CC=golang-dev
https://golang.org/cl/4271060

src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux_386.go
src/pkg/syscall/syscall_linux_amd64.go
src/pkg/syscall/syscall_linux_arm.go
src/pkg/syscall/zsyscall_linux_386.go
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_arm.go

index 110f2e6ff5d6bf89b6d23d28e0f300751d0977a9..f27eb1de554a5dd1ba97f54997d720f3bea27fdf 100644 (file)
@@ -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
index dbdb0897daf3c5ee16ef7bbdbdeaa9a350415a34..eaf2fa4da0259758a1cbb3b867aaa358eda118be 100644 (file)
@@ -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
index 15f00eb2d28055a32f65d48224d4cc29b3dcdf16..2acae3cb46a18c3bcf25ac5485a4e068cb4b0f86 100644 (file)
@@ -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)
index 4927aaa168cfe86930be701f280a347d249968cf..e5920d7baf79d09cf3908cfab33f22b5d6767573 100644 (file)
@@ -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)
index 6777e6cf944eb26e3b61ef5442fdacc9d0192229..e66b00135a732d85d56ceccb7e4a533e66a4a4f4 100644 (file)
@@ -1,4 +1,4 @@
-// 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
index f29d462d4a5d654b6142b4755a35fb38d9638e26..82e98a99ad9f74c9fafdcdc8e8a06442369fee15 100644 (file)
@@ -1,4 +1,4 @@
-// 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)
index 2bf007f04cf72d983d8ba9d7386a1f44a08b3483..9a1f086fef244af86423b141cd0e505929be9664 100644 (file)
@@ -1,4 +1,4 @@
-// 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)