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