mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
1a6e2609ea
Signed-off-by: John Howard <jhoward@microsoft.com> This also adds go.etcd.io/bbolt as boltdb/bolt is no longer maintained, and we need https://github.com/etcd-io/bbolt/pull/122 which was merged in https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-etcd.8 in order to fix https://github.com/docker/libnetwork/issues/1950. Note that I can't entirely remove boltdb/bolt as it is still used by other components. Still need to work my way through them.... These include containerd/containerd (https://github.com/containerd/containerd/pull/2634), docker/swarmkit; moby/buildkit. And probably more....
28 lines
832 B
Go
28 lines
832 B
Go
package bbolt
|
|
|
|
import "unsafe"
|
|
|
|
// maxMapSize represents the largest mmap size supported by Bolt.
|
|
const maxMapSize = 0x7FFFFFFF // 2GB
|
|
|
|
// maxAllocSize is the size used when creating array pointers.
|
|
const maxAllocSize = 0xFFFFFFF
|
|
|
|
// Are unaligned load/stores broken on this arch?
|
|
var brokenUnaligned bool
|
|
|
|
func init() {
|
|
// Simple check to see whether this arch handles unaligned load/stores
|
|
// correctly.
|
|
|
|
// ARM9 and older devices require load/stores to be from/to aligned
|
|
// addresses. If not, the lower 2 bits are cleared and that address is
|
|
// read in a jumbled up order.
|
|
|
|
// See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html
|
|
|
|
raw := [6]byte{0xfe, 0xef, 0x11, 0x22, 0x22, 0x11}
|
|
val := *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&raw)) + 2))
|
|
|
|
brokenUnaligned = val != 0x11222211
|
|
}
|