forked from mirrors/linux
		
	 08c5188ef4
			
		
	
	
		08c5188ef4
		
	
	
	
	
		
			
			The bitmap.h header is used in a lot of code around the kernel. Besides that it includes kernel.h which sometimes makes a loop. The problem here is many unneeded loops that make header hell dependencies. For example, how may you move bitmap_zalloc() from C-file to the header? Currently it's impossible. And bitmap.h here is only the tip of an iceberg. kerne.h is a dump of everything that even has nothing in common at all. We may still have it, but in my new code I prefer to include only the headers that I want to use, without the bulk of unneeded kernel code. Break the loop by introducing align.h, including it in kernel.h and bitmap.h followed by replacing kernel.h with limits.h. Link: https://lkml.kernel.org/r/20210326170347.37441-1-andriy.shevchenko@linux.intel.com Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Yury Norov <yury.norov@gmail.com> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			15 lines
		
	
	
	
		
			552 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
	
		
			552 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_ALIGN_H
 | |
| #define _LINUX_ALIGN_H
 | |
| 
 | |
| #include <linux/const.h>
 | |
| 
 | |
| /* @a is a power of 2 value */
 | |
| #define ALIGN(x, a)		__ALIGN_KERNEL((x), (a))
 | |
| #define ALIGN_DOWN(x, a)	__ALIGN_KERNEL((x) - ((a) - 1), (a))
 | |
| #define __ALIGN_MASK(x, mask)	__ALIGN_KERNEL_MASK((x), (mask))
 | |
| #define PTR_ALIGN(p, a)		((typeof(p))ALIGN((unsigned long)(p), (a)))
 | |
| #define PTR_ALIGN_DOWN(p, a)	((typeof(p))ALIGN_DOWN((unsigned long)(p), (a)))
 | |
| #define IS_ALIGNED(x, a)		(((x) & ((typeof(x))(a) - 1)) == 0)
 | |
| 
 | |
| #endif	/* _LINUX_ALIGN_H */
 |