// Copyright 2017 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 socket import ( "encoding/binary" "unsafe" ) var ( // NativeEndian is the machine native endian implementation of // ByteOrder. NativeEndian binary.ByteOrder kernelAlign int ) func init() { i := uint32(1) b := (*[4]byte)(unsafe.Pointer(&i)) if b[0] == 1 { NativeEndian = binary.LittleEndian } else { NativeEndian = binary.BigEndian } kernelAlign = probeProtocolStack() } func roundup(l int) int { return (l + kernelAlign - 1) & ^(kernelAlign - 1) }