1 #include <errno.h> 2 #include <malloc.h> 3 #include <stdlib.h> 4 5 int posix_memalign(void** memptr, size_t alignment, size_t size) { 6 if ((alignment & (alignment - 1)) != 0 || alignment == 0) { 7 return EINVAL; 8 } 9 10 if (alignment % sizeof(void*) != 0) { 11 return EINVAL; 12 } 13 14 *memptr = memalign(alignment, size); 15 if (*memptr == NULL) { 16 return errno; 17 } 18 19 return 0; 20 } 21