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.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							832 B
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							832 B
						
					
					
				| 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
 | |
| }
 | |
| 
 |