xref: /netbsd/lib/libc/stdlib/posix_memalign.3 (revision 6550d01e)
1.\"	$NetBSD: posix_memalign.3,v 1.1 2007/11/19 14:48:43 ad Exp $
2.\"
3.\" Copyright (C) 2006 Jason Evans <jasone@FreeBSD.org>.
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice(s), this list of conditions and the following disclaimer as
11.\"    the first lines of this file unmodified other than the possible
12.\"    addition of one or more copyright notices.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice(s), this list of conditions and the following disclaimer in
15.\"    the documentation and/or other materials provided with the
16.\"    distribution.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
19.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
22.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29.\"
30.\" FreeBSD: src/lib/libc/stdlib/posix_memalign.3,v 1.3 2007/03/28 04:32:51 jasone Exp
31.\"
32.Dd November 19, 2007
33.Dt POSIX_MEMALIGN 3
34.Os
35.Sh NAME
36.Nm posix_memalign
37.Nd aligned memory allocation
38.Sh LIBRARY
39.Lb libc
40.Sh SYNOPSIS
41.In stdlib.h
42.Ft int
43.Fn posix_memalign "void **ptr" "size_t alignment" "size_t size"
44.Sh DESCRIPTION
45The
46.Fn posix_memalign
47function allocates
48.Fa size
49bytes of memory such that the allocation's base address is an even multiple of
50.Fa alignment ,
51and returns the allocation in the value pointed to by
52.Fa ptr .
53.Pp
54The requested
55.Fa alignment
56must be a power of 2 at least as large as
57.Fn sizeof "void *" .
58.Pp
59Memory that is allocated via
60.Fn posix_memalign
61can be used as an argument in subsequent calls to
62.Xr realloc 3
63and
64.Xr free 3 .
65.Sh RETURN VALUES
66The
67.Fn posix_memalign
68function returns the value 0 if successful; otherwise it returns an error value.
69.Sh ERRORS
70The
71.Fn posix_memalign
72function will fail if:
73.Bl -tag -width Er
74.It Bq Er EINVAL
75The
76.Fa alignment
77parameter is not a power of 2 at least as large as
78.Fn sizeof "void *" .
79.It Bq Er ENOMEM
80Memory allocation error.
81.El
82.Sh SEE ALSO
83.Xr free 3 ,
84.Xr malloc 3 ,
85.Xr realloc 3 ,
86.Xr valloc 3
87.Sh STANDARDS
88The
89.Fn posix_memalign
90function conforms to
91.St -p1003.1-2001 .
92