OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [syscall/] [socket_bsd.go] - Rev 833

Go to most recent revision | Compare with Previous | Blame | View Log

// socket_bsd.go -- Socket handling specific to *BSD based systems.

// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package syscall

const SizeofSockaddrInet4 = 16
const SizeofSockaddrInet6 = 28
const SizeofSockaddrUnix = 110

type RawSockaddrInet4 struct {
        Len uint8;
        Family uint8;
        Port uint16;
        Addr [4]byte /* in_addr */;
        Zero [8]uint8;
}

func (sa *RawSockaddrInet4) setLen() Socklen_t {
        sa.Len = SizeofSockaddrInet4
        return SizeofSockaddrInet4
}

type RawSockaddrInet6 struct {
        Len uint8;
        Family uint8;
        Port uint16;
        Flowinfo uint32;
        Addr [16]byte /* in6_addr */;
        Scope_id uint32;
}

func (sa *RawSockaddrInet6) setLen() Socklen_t {
        sa.Len = SizeofSockaddrInet6
        return SizeofSockaddrInet6
}

type RawSockaddrUnix struct {
        Len uint8;
        Family uint8;
        Path [108]int8;
}

func (sa *RawSockaddrUnix) setLen(n int) {
        sa.Len = uint8(3 + n) // 2 for Family, Len; 1 for NUL.
}

func (sa *RawSockaddrUnix) getLen() (int, error) {
        if sa.Len < 3 || sa.Len > SizeofSockaddrUnix {
                return 0, EINVAL
        }
        n := int(sa.Len) - 3 // subtract leading Family, Len, terminating NUL.
        for i := 0; i < n; i++ {
                if sa.Path[i] == 0 {
                        // found early NUL; assume Len is overestimating.
                        n = i
                        break
                }
        }
        return n, nil
}

type RawSockaddr struct {
        Len uint8;
        Family uint8;
        Data [14]int8;
}

// BindToDevice binds the socket associated with fd to device.
func BindToDevice(fd int, device string) (err error) {
        return ENOSYS
}

func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) {
        return nil, EAFNOSUPPORT
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.