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