diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-04-20 20:11:28 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-04-20 20:11:28 +0000 |
commit | d25a12fc2db00476f358d2a66ab1e30a7bfa4b9a (patch) | |
tree | 008ea10059bb6030b63b115261d375197090725c /libgo/go/syscall/netlink_linux.go | |
parent | 63d1e46df06893b073418be4e27f95eebd05ba26 (diff) | |
download | gcc-d25a12fc2db00476f358d2a66ab1e30a7bfa4b9a.zip gcc-d25a12fc2db00476f358d2a66ab1e30a7bfa4b9a.tar.gz gcc-d25a12fc2db00476f358d2a66ab1e30a7bfa4b9a.tar.bz2 |
net, syscall: Use native endianness for GNU/Linux netlink code.
From-SVN: r186640
Diffstat (limited to 'libgo/go/syscall/netlink_linux.go')
-rw-r--r-- | libgo/go/syscall/netlink_linux.go | 43 |
1 files changed, 6 insertions, 37 deletions
diff --git a/libgo/go/syscall/netlink_linux.go b/libgo/go/syscall/netlink_linux.go index 1c99a81..d535713 100644 --- a/libgo/go/syscall/netlink_linux.go +++ b/libgo/go/syscall/netlink_linux.go @@ -30,43 +30,12 @@ type NetlinkRouteRequest struct { func (rr *NetlinkRouteRequest) toWireFormat() []byte { b := make([]byte, rr.Header.Len) - if BigEndian { - b[0] = byte(rr.Header.Len >> 24) - b[1] = byte(rr.Header.Len >> 16) - b[2] = byte(rr.Header.Len >> 8) - b[3] = byte(rr.Header.Len) - b[4] = byte(rr.Header.Type >> 8) - b[5] = byte(rr.Header.Type) - b[6] = byte(rr.Header.Flags >> 8) - b[7] = byte(rr.Header.Flags) - b[8] = byte(rr.Header.Seq >> 24) - b[9] = byte(rr.Header.Seq >> 16) - b[10] = byte(rr.Header.Seq >> 8) - b[11] = byte(rr.Header.Seq) - b[12] = byte(rr.Header.Pid >> 24) - b[13] = byte(rr.Header.Pid >> 16) - b[14] = byte(rr.Header.Pid >> 8) - b[15] = byte(rr.Header.Pid) - b[16] = byte(rr.Data.Family) - } else { - b[0] = byte(rr.Header.Len) - b[1] = byte(rr.Header.Len >> 8) - b[2] = byte(rr.Header.Len >> 16) - b[3] = byte(rr.Header.Len >> 24) - b[4] = byte(rr.Header.Type) - b[5] = byte(rr.Header.Type >> 8) - b[6] = byte(rr.Header.Flags) - b[7] = byte(rr.Header.Flags >> 8) - b[8] = byte(rr.Header.Seq) - b[9] = byte(rr.Header.Seq >> 8) - b[10] = byte(rr.Header.Seq >> 16) - b[11] = byte(rr.Header.Seq >> 24) - b[12] = byte(rr.Header.Pid) - b[13] = byte(rr.Header.Pid >> 8) - b[14] = byte(rr.Header.Pid >> 16) - b[15] = byte(rr.Header.Pid >> 24) - b[16] = byte(rr.Data.Family) - } + *(*uint32)(unsafe.Pointer(&b[0:4][0])) = rr.Header.Len + *(*uint16)(unsafe.Pointer(&b[4:6][0])) = rr.Header.Type + *(*uint16)(unsafe.Pointer(&b[6:8][0])) = rr.Header.Flags + *(*uint32)(unsafe.Pointer(&b[8:12][0])) = rr.Header.Seq + *(*uint32)(unsafe.Pointer(&b[12:16][0])) = rr.Header.Pid + b[16] = byte(rr.Data.Family) return b } |