xref: /illumos-gate/usr/src/man/man3c/aligned_alloc.3c (revision 3448eae2e9d99e7fadeb43056eb8e788c7ea93be)
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