44 lines
		
	
	
		
			970 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			970 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _TOOLS_LINUX_INIT_H_
 | |
| #define _TOOLS_LINUX_INIT_H_
 | |
| 
 | |
| #include <linux/compiler.h>
 | |
| 
 | |
| #ifndef __init
 | |
| # define __init
 | |
| #endif
 | |
| 
 | |
| #ifndef __exit
 | |
| # define __exit
 | |
| #endif
 | |
| 
 | |
| #define __section(section)              __attribute__((__section__(section)))
 | |
| 
 | |
| #define __initconst
 | |
| #define __meminit
 | |
| #define __meminitdata
 | |
| #define __refdata
 | |
| #define __initdata
 | |
| 
 | |
| struct obs_kernel_param {
 | |
| 	const char *str;
 | |
| 	int (*setup_func)(char *st);
 | |
| 	int early;
 | |
| };
 | |
| 
 | |
| #define __setup_param(str, unique_id, fn, early)			\
 | |
| 	static const char __setup_str_##unique_id[] __initconst		\
 | |
| 		__aligned(1) = str;					\
 | |
| 	static struct obs_kernel_param __setup_##unique_id		\
 | |
| 		__used __section(".init.setup")				\
 | |
| 		__aligned(__alignof__(struct obs_kernel_param)) =	\
 | |
| 		{ __setup_str_##unique_id, fn, early }
 | |
| 
 | |
| #define __setup(str, fn)						\
 | |
| 	__setup_param(str, fn, fn, 0)
 | |
| 
 | |
| #define early_param(str, fn)						\
 | |
| 	__setup_param(str, fn, fn, 1)
 | |
| 
 | |
| #endif /*  _TOOLS_LINUX_INIT_H_ */
 |