]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: add socketpair
authorIvan Krasin <krasin@golang.org>
Wed, 30 Jun 2010 21:58:21 +0000 (14:58 -0700)
committerRuss Cox <rsc@golang.org>
Wed, 30 Jun 2010 21:58:21 +0000 (14:58 -0700)
R=rsc
CC=golang-dev
https://golang.org/cl/1319042

src/pkg/syscall/syscall_bsd.go
src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux_386.go
src/pkg/syscall/zsyscall_darwin_386.go
src/pkg/syscall/zsyscall_darwin_amd64.go
src/pkg/syscall/zsyscall_freebsd_386.go
src/pkg/syscall/zsyscall_freebsd_amd64.go
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_arm.go

index c773daa7cea9bf2c304bd0d285daf5bc46f62de6..14dfab1539f1ba5496da4ca3d1a454cb45e79d26 100644 (file)
@@ -323,6 +323,11 @@ func Socket(domain, typ, proto int) (fd, errno int) {
        return
 }
 
+func Socketpair(domain, typ, proto int) (fd [2]int, errno int) {
+       fd, errno = socketpair(domain, typ, proto)
+       return
+}
+
 func SetsockoptInt(fd, level, opt int, value int) (errno int) {
        var n = int32(value)
        return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 4)
index bf124bd135e20b8f6d7b1a30dfe5cd9e45ee2c7d..2ce3c08828ae58fc087c4f74a4116b8e1e5570f4 100644 (file)
@@ -368,6 +368,11 @@ func Socket(domain, typ, proto int) (fd, errno int) {
        return
 }
 
+func Socketpair(domain, typ, proto int) (fd [2]int, errno int) {
+       fd, errno = socketpair(domain, typ, proto)
+       return
+}
+
 func SetsockoptInt(fd, level, opt int, value int) (errno int) {
        var n = int32(value)
        return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 4)
index 4dfaddc43eefc5d17954518aa39df12c47698845..4a2e92f0ab6dffb4362f0ea5895165cfb4d56271 100644 (file)
@@ -100,6 +100,13 @@ func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, errno = socketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       return
+}
+
 func bind(s int, addr uintptr, addrlen _Socklen) (errno int) {
        _, errno = socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
        return
index 6e46cfbc4eda62a84d13d9c92a13f366e7c27c87..78e21ca4426d6ba9ea9ac4dfd8de886a9b221dc7 100644 (file)
@@ -59,6 +59,15 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
+
 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 cb963171a84ec8280bd1650845e919cd8e0e606b..96a4bd0f02c09163145476ec8a076f7fcdb1b44a 100644 (file)
@@ -59,6 +59,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
 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 96e9da6a49ee9c7dd7242d4bbb1206ab9f19d2f4..611beacf619afa5461911a2cd618e050f55a01e4 100644 (file)
@@ -59,6 +59,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
 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 c45e6fe35a04ec5c40ca54a031c7944ee8aa02ef..f6c050ee50efa56f7d05ac1c3642c98d68393f6b 100644 (file)
@@ -59,6 +59,15 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
+
 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 b57296a546bc72996e6304bb32545735587caa3c..87e545987ac8e6c0d931273443473c9876fb7d70 100644 (file)
@@ -786,6 +786,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
 func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
        _, _, e1 := Syscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
        errno = int(e1)
index 7e872ce3d218488b339c77e6643f6450f338ce5f..36ff3429462dc0852227ca7231bca7a79b2f0aaf 100644 (file)
@@ -628,6 +628,14 @@ func socket(domain int, typ int, proto int) (fd int, errno int) {
        return
 }
 
+func socketpair(domain int, typ int, proto int) (fd [2]int, errno int) {
+       var f [2]int
+       _, _, e1 := Syscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(&f)), 0, 0)
+       fd = f
+       errno = int(e1)
+       return
+}
+
 func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
        _, _, e1 := Syscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
        errno = int(e1)