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.\" 14*3448eae2SRobert Mustacchi.Dd May 11, 2024 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 36*3448eae2SRobert Mustacchiis constrained: it must be a power of two. 37fc2512cfSRobert Mustacchi.Sh RETURN VALUES 38fc2512cfSRobert MustacchiUpon successful completion, the 39fc2512cfSRobert Mustacchi.Fn aligned_alloc 40fc2512cfSRobert Mustacchifunction returns a pointer to suitably aligned memory at least 41fc2512cfSRobert Mustacchi.Fa size 4272d3dbb9SYuri Pankovbytes large. 4372d3dbb9SYuri PankovOtherwise, a 44fc2512cfSRobert Mustacchi.Sy NULL 45fc2512cfSRobert Mustacchipointer is returned and 46fc2512cfSRobert Mustacchi.Sy errno 47fc2512cfSRobert Mustacchiis set to indicate the error. 48fc2512cfSRobert Mustacchi.Sh ERRORS 49fc2512cfSRobert MustacchiThe 50fc2512cfSRobert Mustacchi.Fn aligned_alloc 51fc2512cfSRobert Mustacchifunction will fail if: 52fc2512cfSRobert Mustacchi.Bl -tag -width Er 53fc2512cfSRobert Mustacchi.It Er ENOMEM 54fc2512cfSRobert MustacchiThe physical limits of the system are exceeded by 55fc2512cfSRobert Mustacchi.Fa size 56fc2512cfSRobert Mustacchibytes of memory which cannot be allocated. 57fc2512cfSRobert Mustacchi.It Er EAGAIN 58fc2512cfSRobert MustacchiThere is not enough memory available to allocate 59fc2512cfSRobert Mustacchi.Fa size 60fc2512cfSRobert Mustacchibytes of memory; but the application could try again later. 61fc2512cfSRobert Mustacchi.It Er EINVAL 62fc2512cfSRobert MustacchiAn invalid value for 63fc2512cfSRobert Mustacchi.Fa alignment 6472d3dbb9SYuri Pankovwas passed in. 65*3448eae2SRobert MustacchiIt is not a power of two. 66fc2512cfSRobert Mustacchi.El 67fc2512cfSRobert Mustacchi.Sh INTERFACE STABILITY 68*3448eae2SRobert Mustacchi.Sy Comitted 69fc2512cfSRobert Mustacchi.Sh MT-LEVEL 70fc2512cfSRobert Mustacchi.Sy MT-Safe 71fc2512cfSRobert Mustacchi.Sh SEE ALSO 72fc2512cfSRobert Mustacchi.Xr malloc 3C , 73b31ca922SChris Fraire.Xr memalign 3C , 74fc2512cfSRobert Mustacchi.Xr posix_memalign 3C , 75bbf21555SRichard Lowe.Xr attributes 7 76