xref: /rk3399_rockchip-uboot/include/memalign.h (revision 6e295186c7fc8bf5be22a05f6ca9602f2bb507f2)
1*6e295186SSimon Glass /*
2*6e295186SSimon Glass  * Copyright (c) 2015 Google, Inc
3*6e295186SSimon Glass  *
4*6e295186SSimon Glass  * SPDX-License-Identifier:    GPL-2.0+
5*6e295186SSimon Glass  */
6*6e295186SSimon Glass 
7*6e295186SSimon Glass #ifndef __ALIGNMEM_H
8*6e295186SSimon Glass #define __ALIGNMEM_H
9*6e295186SSimon Glass 
10*6e295186SSimon Glass /*
11*6e295186SSimon Glass  * ARCH_DMA_MINALIGN is defined in asm/cache.h for each architecture.  It
12*6e295186SSimon Glass  * is used to align DMA buffers.
13*6e295186SSimon Glass  */
14*6e295186SSimon Glass #ifndef __ASSEMBLY__
15*6e295186SSimon Glass #include <asm/cache.h>
16*6e295186SSimon Glass 
17*6e295186SSimon Glass #include <malloc.h>
18*6e295186SSimon Glass 
19*6e295186SSimon Glass static inline void *malloc_cache_aligned(size_t size)
20*6e295186SSimon Glass {
21*6e295186SSimon Glass 	return memalign(ARCH_DMA_MINALIGN, ALIGN(size, ARCH_DMA_MINALIGN));
22*6e295186SSimon Glass }
23*6e295186SSimon Glass #endif
24*6e295186SSimon Glass 
25*6e295186SSimon Glass #endif /* __ALIGNMEM_H */
26