Index: linux-2.6.17/arch/um/include/init.h =================================================================== --- linux-2.6.17.orig/arch/um/include/init.h 2007-09-09 15:50:20.000000000 +0100 +++ linux-2.6.17/arch/um/include/init.h 2007-09-09 15:52:19.000000000 +0100 @@ -1,5 +1,5 @@ -#ifndef _LINUX_UML_INIT_H -#define _LINUX_UML_INIT_H +#ifndef _UM_INIT_H +#define _UM_INIT_H /* These macros are used to mark some functions or * initialized data (doesn't apply to uninitialized data) @@ -36,7 +36,31 @@ * Also note, that this data cannot be "const". */ -#ifndef _LINUX_INIT_H +#ifdef __KERNEL__ + +#include + +#else + +#define __define_initcall(level,fn) \ + static initcall_t __initcall_##fn __used \ + __attribute__((__section__(".initcall" level ".init"))) = fn + +/* Userspace initcalls shouldn't depend on anything in the kernel, so we'll + * make them run first. + */ +#define __initcall(fn) __define_initcall("1", fn) + +#define __exitcall(fn) static exitcall_t __exitcall_##fn __exit_call = fn + +#define __init_call __used __attribute__ ((__section__ (".initcall.init"))) + +#if __GNUC_MINOR__ >= 3 +# define __used __attribute__((__used__)) +#else +# define __used __attribute__((__unused__)) +#endif + typedef int (*initcall_t)(void); typedef void (*exitcall_t)(void); @@ -109,32 +133,4 @@ extern struct uml_param __uml_setup_star #define __uml_postsetup_call __attribute_used__ __attribute__ ((__section__ (".uml.postsetup.init"))) #define __uml_exit_call __attribute_used__ __attribute__ ((__section__ (".uml.exitcall.exit"))) -#ifndef __KERNEL__ - -#define __define_initcall(level,fn) \ - static initcall_t __initcall_##fn __attribute_used__ \ - __attribute__((__section__(".initcall" level ".init"))) = fn - -/* Userspace initcalls shouldn't depend on anything in the kernel, so we'll - * make them run first. - */ -#define __initcall(fn) __define_initcall("1", fn) - -#define __exitcall(fn) static exitcall_t __exitcall_##fn __exit_call = fn - -#define __init_call __attribute_used__ __attribute__ ((__section__ (".initcall.init"))) - -#endif - -#endif /* _LINUX_UML_INIT_H */ - -/* - * Overrides for Emacs so that we follow Linus's tabbing style. - * Emacs will notice this stuff at the end of the file and automatically - * adjust the settings for this buffer only. This must remain at the end - * of the file. - * --------------------------------------------------------------------------- - * Local variables: - * c-file-style: "linux" - * End: - */ +#endif /* _UM_INIT_H */