| typedef unsigned long int size_t; |
| |
| /* |
| * The alloc_align attribute is used to tell the compiler that the return |
| * value points to memory, where the returned pointer minimum alignment is given |
| * by one of the functions parameters. GCC uses this information to improve |
| * pointer alignment analysis. |
| * |
| * The function parameter denoting the allocated alignment is specified by one |
| * integer argument, whose number is the argument of the attribute. Argument |
| * numbering starts at one. |
| * |
| * For instance, |
| * |
| * void* my_memalign(size_t, size_t) __attribute__((alloc_align(1))) |
| * |
| * declares that my_memalign returns memory with minimum alignment given by |
| * parameter 1. |
| */ |
| |
| #define __alloc_align(x) __attribute__((__alloc_align__(x))) |
| |
| /* |
| * The aligned_alloc function allocates space for an object whose alignment is |
| * specified by alignment, whose size is specified by size, and whose value is |
| * indeterminate. The value of alignment shall be a valid alignment supported |
| * by the implementation and the value of size shall be an integral multiple |
| * of alignment. |
| * |
| * The aligned_alloc function returns either a null pointer or a pointer to the |
| * allocated space. |
| */ |
| void *aligned_alloc(size_t alignment, size_t size) __alloc_align(1); |
| |
| |
| /* |
| * check-name: attribute __alloc_align__ |
| */ |