Lines Matching defs:alignment
24 // Reference on memory alignment:
25 // http://stackoverflow.com/questions/227897/solve-the-memory-alignment-in-c-interview-question-that-stumped-me
28 uintptr_t GetRightAlign(uintptr_t start_pos, size_t alignment) {
29 // The pointer should be aligned with |alignment| bytes. The - 1 guarantees
31 return (start_pos + alignment - 1) & ~(alignment - 1);
35 bool ValidAlignment(size_t alignment) {
36 if (!alignment) {
39 return (alignment & (alignment - 1)) == 0;
42 void* GetRightAlign(const void* pointer, size_t alignment) {
46 if (!ValidAlignment(alignment)) {
50 return reinterpret_cast<void*>(GetRightAlign(start_pos, alignment));
53 void* AlignedMalloc(size_t size, size_t alignment) {
57 if (!ValidAlignment(alignment)) {
62 // alignment - 1 bytes needs to be allocated.
65 void* memory_pointer = malloc(size + sizeof(uintptr_t) + alignment - 1);
74 uintptr_t aligned_pos = GetRightAlign(align_start_pos, alignment);