123456789101112131415161718192021222324252627282930313233 |
- // 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)
- }
|