xref: /freebsd/lib/libc/gen/memalign.c (revision dcc6ef1644423a970fa515feef81730135e1d87f)
1*dcc6ef16SKonstantin Belousov /*-
2*dcc6ef16SKonstantin Belousov  * Copyright (c) 2020 The FreeBSD Foundation
3*dcc6ef16SKonstantin Belousov  * All rights reserved.
4*dcc6ef16SKonstantin Belousov  *
5*dcc6ef16SKonstantin Belousov  * This software was developed by Konstantin Belousov
6*dcc6ef16SKonstantin Belousov  * under sponsorship from the FreeBSD Foundation.
7*dcc6ef16SKonstantin Belousov  *
8*dcc6ef16SKonstantin Belousov  * Redistribution and use in source and binary forms, with or without
9*dcc6ef16SKonstantin Belousov  * modification, are permitted provided that the following conditions
10*dcc6ef16SKonstantin Belousov  * are met:
11*dcc6ef16SKonstantin Belousov  * 1. Redistributions of source code must retain the above copyright
12*dcc6ef16SKonstantin Belousov  *    notice, this list of conditions and the following disclaimer.
13*dcc6ef16SKonstantin Belousov  * 2. Redistributions in binary form must reproduce the above copyright
14*dcc6ef16SKonstantin Belousov  *    notice, this list of conditions and the following disclaimer in the
15*dcc6ef16SKonstantin Belousov  *    documentation and/or other materials provided with the distribution.
16*dcc6ef16SKonstantin Belousov  *
17*dcc6ef16SKonstantin Belousov  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18*dcc6ef16SKonstantin Belousov  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*dcc6ef16SKonstantin Belousov  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*dcc6ef16SKonstantin Belousov  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21*dcc6ef16SKonstantin Belousov  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*dcc6ef16SKonstantin Belousov  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23*dcc6ef16SKonstantin Belousov  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24*dcc6ef16SKonstantin Belousov  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25*dcc6ef16SKonstantin Belousov  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26*dcc6ef16SKonstantin Belousov  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27*dcc6ef16SKonstantin Belousov  * SUCH DAMAGE.
28*dcc6ef16SKonstantin Belousov  */
29*dcc6ef16SKonstantin Belousov 
30*dcc6ef16SKonstantin Belousov #include <sys/cdefs.h>
31*dcc6ef16SKonstantin Belousov __FBSDID("$FreeBSD$");
32*dcc6ef16SKonstantin Belousov 
33*dcc6ef16SKonstantin Belousov #include <sys/param.h>
34*dcc6ef16SKonstantin Belousov #include <stdlib.h>
35*dcc6ef16SKonstantin Belousov 
36*dcc6ef16SKonstantin Belousov void *
37*dcc6ef16SKonstantin Belousov memalign(size_t align, size_t size)
38*dcc6ef16SKonstantin Belousov {
39*dcc6ef16SKonstantin Belousov 	return (aligned_alloc(align, roundup(size, align)));
40*dcc6ef16SKonstantin Belousov }
41