xref: /openbsd-src/sys/dev/pci/drm/include/linux/align.h (revision c96eac12212738df022e8da546facc2482b97a41)
1667382c7Skettenis /* Public domain. */
2667382c7Skettenis 
3667382c7Skettenis #ifndef _LINUX_ALIGN_H
4667382c7Skettenis #define _LINUX_ALIGN_H
5667382c7Skettenis 
6667382c7Skettenis #include <sys/param.h>
7667382c7Skettenis 
8*c96eac12Sjsg #define roundup2(x, y) (((x) + ((y) - 1)) & (~((__typeof(x))(y) - 1)))
9*c96eac12Sjsg #define rounddown2(x, y) ((x) & ~((__typeof(x))(y) - 1))
10*c96eac12Sjsg 
11667382c7Skettenis #undef ALIGN
12667382c7Skettenis #define ALIGN(x, y) roundup2((x), (y))
13667382c7Skettenis 
14*c96eac12Sjsg #define IS_ALIGNED(x, y)	(((x) & ((y) - 1)) == 0)
15*c96eac12Sjsg #define PTR_ALIGN(x, y)		((__typeof(x))roundup2((unsigned long)(x), (y)))
16*c96eac12Sjsg #define ALIGN_DOWN(x, y)	((__typeof(x))rounddown2((unsigned long)(x), (y)))
17*c96eac12Sjsg 
18667382c7Skettenis #endif
19