1fc2512cfSRobert Mustacchi.\" 2fc2512cfSRobert Mustacchi.\" This file and its contents are supplied under the terms of the 3fc2512cfSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 4fc2512cfSRobert Mustacchi.\" You may only use this file in accordance with the terms of version 5fc2512cfSRobert Mustacchi.\" 1.0 of the CDDL. 6fc2512cfSRobert Mustacchi.\" 7fc2512cfSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 8fc2512cfSRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 9fc2512cfSRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 10fc2512cfSRobert Mustacchi.\" 11fc2512cfSRobert Mustacchi.\" 12fc2512cfSRobert Mustacchi.\" Copyright 2016 Joyent, Inc. 13fc2512cfSRobert Mustacchi.\" 14fc2512cfSRobert Mustacchi.Dd "Mar 26, 2016" 15fc2512cfSRobert Mustacchi.Dt ALIGNED_ALLOC 3C 16fc2512cfSRobert Mustacchi.Os 17fc2512cfSRobert Mustacchi.Sh NAME 18fc2512cfSRobert Mustacchi.Nm aligned_alloc 19fc2512cfSRobert Mustacchi.Nd aligned memory allocation 20fc2512cfSRobert Mustacchi.Sh SYNOPSIS 21fc2512cfSRobert Mustacchi.In stdlib.h 22fc2512cfSRobert Mustacchi.Ft "void *" 23fc2512cfSRobert Mustacchi.Fo aligned_alloc 24fc2512cfSRobert Mustacchi.Fa "size_t alignment" 25fc2512cfSRobert Mustacchi.Fa "size_t size" 26fc2512cfSRobert Mustacchi.Fc 27fc2512cfSRobert Mustacchi.Sh DESCRIPTION 28fc2512cfSRobert MustacchiThe 29fc2512cfSRobert Mustacchi.Fn aligned_alloc 30fc2512cfSRobert Mustacchifunction allocates 31fc2512cfSRobert Mustacchi.Fa size 32fc2512cfSRobert Mustacchibytes aligned on the specified alignment boundary 33fc2512cfSRobert Mustacchi.Fa alignment . 34fc2512cfSRobert MustacchiThe value of 35fc2512cfSRobert Mustacchi.Fa alignment 36fc2512cfSRobert Mustacchiis constrained, it must be a power of two and it must be greater than or 37fc2512cfSRobert Mustacchiequal to the size of a word on the platform. 38fc2512cfSRobert Mustacchi.Sh RETURN VALUES 39fc2512cfSRobert MustacchiUpon successful completion, the 40fc2512cfSRobert Mustacchi.Fn aligned_alloc 41fc2512cfSRobert Mustacchifunction returns a pointer to suitably aligned memory at least 42fc2512cfSRobert Mustacchi.Fa size 43*72d3dbb9SYuri Pankovbytes large. 44*72d3dbb9SYuri PankovOtherwise, a 45fc2512cfSRobert Mustacchi.Sy NULL 46fc2512cfSRobert Mustacchipointer is returned and 47fc2512cfSRobert Mustacchi.Sy errno 48fc2512cfSRobert Mustacchiis set to indicate the error. 49fc2512cfSRobert Mustacchi.Sh ERRORS 50fc2512cfSRobert MustacchiThe 51fc2512cfSRobert Mustacchi.Fn aligned_alloc 52fc2512cfSRobert Mustacchifunction will fail if: 53fc2512cfSRobert Mustacchi.Bl -tag -width Er 54fc2512cfSRobert Mustacchi.It Er ENOMEM 55fc2512cfSRobert MustacchiThe physical limits of the system are exceeded by 56fc2512cfSRobert Mustacchi.Fa size 57fc2512cfSRobert Mustacchibytes of memory which cannot be allocated. 58fc2512cfSRobert Mustacchi.It Er EAGAIN 59fc2512cfSRobert MustacchiThere is not enough memory available to allocate 60fc2512cfSRobert Mustacchi.Fa size 61fc2512cfSRobert Mustacchibytes of memory; but the application could try again later. 62fc2512cfSRobert Mustacchi.It Er EINVAL 63fc2512cfSRobert MustacchiAn invalid value for 64fc2512cfSRobert Mustacchi.Fa alignment 65*72d3dbb9SYuri Pankovwas passed in. 66*72d3dbb9SYuri PankovIt is not a power of two multiple of the word size. 67fc2512cfSRobert Mustacchi.El 68fc2512cfSRobert Mustacchi.Sh INTERFACE STABILITY 69fc2512cfSRobert Mustacchi.Sy STANDARD 70fc2512cfSRobert Mustacchi.Sh MT-LEVEL 71fc2512cfSRobert Mustacchi.Sy MT-Safe 72fc2512cfSRobert Mustacchi.Sh SEE ALSO 73fc2512cfSRobert Mustacchi.Xr malloc 3C , 74fc2512cfSRobert Mustacchi.Xr memalgin 3C , 75fc2512cfSRobert Mustacchi.Xr posix_memalign 3C , 76fc2512cfSRobert Mustacchi.Xr attributes 5 77