some coverity fixes.
[minix.git] / lib / libc / stdlib / posix_memalign.3
blob2d066f8ca01978a54810d2b92621dcb305a6523b
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
45 The
46 .Fn posix_memalign
47 function allocates
48 .Fa size
49 bytes of memory such that the allocation's base address is an even multiple of
50 .Fa alignment ,
51 and returns the allocation in the value pointed to by
52 .Fa ptr .
53 .Pp
54 The requested
55 .Fa alignment
56 must be a power of 2 at least as large as
57 .Fn sizeof "void *" .
58 .Pp
59 Memory that is allocated via
60 .Fn posix_memalign
61 can be used as an argument in subsequent calls to
62 .Xr realloc 3
63 and
64 .Xr free 3 .
65 .Sh RETURN VALUES
66 The
67 .Fn posix_memalign
68 function returns the value 0 if successful; otherwise it returns an error value.
69 .Sh ERRORS
70 The
71 .Fn posix_memalign
72 function will fail if:
73 .Bl -tag -width Er
74 .It Bq Er EINVAL
75 The
76 .Fa alignment
77 parameter is not a power of 2 at least as large as
78 .Fn sizeof "void *" .
79 .It Bq Er ENOMEM
80 Memory 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
88 The
89 .Fn posix_memalign
90 function conforms to
91 .St -p1003.1-2001 .