blob: e414257aa54ae26c8759fdc96ab25863dfc81a58 [file] [log] [blame]
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__
*/