X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libgo%2Fgo%2Fsyscall%2Fsocket_linux.go;h=224ca55ae218d6e5546f70ea1c62e94f998f76a9;hp=49aac87bb7a0836dc90cd0a2f075f41b381848f5;hb=032505d73514c641bf520e97c47c1708b63e3901;hpb=d772e63b2baad2b536c58e32a834755726813811 diff --git a/libgo/go/syscall/socket_linux.go b/libgo/go/syscall/socket_linux.go index 49aac87bb7a..224ca55ae21 100644 --- a/libgo/go/syscall/socket_linux.go +++ b/libgo/go/syscall/socket_linux.go @@ -24,7 +24,7 @@ type SockaddrLinklayer struct { raw RawSockaddrLinklayer } -func (sa *SockaddrLinklayer) sockaddr() (*RawSockaddrAny, Socklen_t, int) { +func (sa *SockaddrLinklayer) sockaddr() (*RawSockaddrAny, Socklen_t, error) { if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { return nil, 0, EINVAL } @@ -37,7 +37,7 @@ func (sa *SockaddrLinklayer) sockaddr() (*RawSockaddrAny, Socklen_t, int) { for i := 0; i < len(sa.Addr); i++ { sa.raw.Addr[i] = sa.Addr[i] } - return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), SizeofSockaddrLinklayer, 0 + return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), SizeofSockaddrLinklayer, nil } type SockaddrNetlink struct { @@ -48,12 +48,12 @@ type SockaddrNetlink struct { raw RawSockaddrNetlink } -func (sa *SockaddrNetlink) sockaddr() (*RawSockaddrAny, Socklen_t, int) { +func (sa *SockaddrNetlink) sockaddr() (*RawSockaddrAny, Socklen_t, error) { sa.raw.Family = AF_NETLINK sa.raw.Pad = sa.Pad sa.raw.Pid = sa.Pid sa.raw.Groups = sa.Groups - return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), SizeofSockaddrNetlink, 0 + return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), SizeofSockaddrNetlink, nil } type RawSockaddrInet4 struct { @@ -87,7 +87,7 @@ type RawSockaddrUnix struct { func (sa *RawSockaddrUnix) setLen(int) { } -func (sa *RawSockaddrUnix) getLen() (int, int) { +func (sa *RawSockaddrUnix) getLen() (int, error) { if sa.Path[0] == 0 { // "Abstract" Unix domain socket. // Rewrite leading NUL as @ for textual display. @@ -103,11 +103,11 @@ func (sa *RawSockaddrUnix) getLen() (int, int) { // to be uninterpreted fixed-size binary blobs--but // everyone uses this convention. n := 0 - for n < len(sa.Path) - 3 && sa.Path[n] != 0 { + for n < len(sa.Path) && sa.Path[n] != 0 { n++ } - return n, 0 + return n, nil } type RawSockaddrLinklayer struct { @@ -133,11 +133,11 @@ type RawSockaddr struct { } // BindToDevice binds the socket associated with fd to device. -func BindToDevice(fd int, device string) (errno int) { +func BindToDevice(fd int, device string) (err error) { return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) } -func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, int) { +func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { switch rsa.Addr.Family { case AF_NETLINK: pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) @@ -146,7 +146,7 @@ func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, int) { sa.Pad = pp.Pad sa.Pid = pp.Pid sa.Groups = pp.Groups - return sa, 0 + return sa, nil case AF_PACKET: pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) @@ -159,16 +159,19 @@ func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, int) { for i := 0; i < len(sa.Addr); i++ { sa.Addr[i] = pp.Addr[i] } - return sa, 0 + return sa, nil } return nil, EAFNOSUPPORT } -//sysnb EpollCreate(size int) (fd int, errno int) +//sysnb EpollCreate(size int) (fd int, err error) //epoll_create(size int) int -//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (errno int) +//sysnb EpollCreate1(flags int) (fd int, err error) +//epoll_create1(flags int) int + +//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) //epoll_ctl(epfd int, op int, fd int, event *EpollEvent) int -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //epoll_wait(epfd int, events *EpollEvent, maxevents int, timeout int) int