You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
639 B
33 lines
639 B
// 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) |
|
}
|
|
|