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