aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/syscall/netlink_linux.go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2012-04-20 20:11:28 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-04-20 20:11:28 +0000
commitd25a12fc2db00476f358d2a66ab1e30a7bfa4b9a (patch)
tree008ea10059bb6030b63b115261d375197090725c /libgo/go/syscall/netlink_linux.go
parent63d1e46df06893b073418be4e27f95eebd05ba26 (diff)
downloadgcc-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.go43
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
}