diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2008-08-17 13:48:37 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-22 22:55:19 -0700 |
commit | 8569c9140bd41089f9b6be8837ca421102714a90 (patch) | |
tree | cd289b322b215fe2ca2530aa320febfd99388d7f /arch/um/include/init.h | |
parent | 2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4 (diff) | |
download | kernel-crypto-8569c9140bd41089f9b6be8837ca421102714a90.tar.gz kernel-crypto-8569c9140bd41089f9b6be8837ca421102714a90.tar.xz kernel-crypto-8569c9140bd41089f9b6be8837ca421102714a90.zip |
x86, um: take arch/um/include/* out of the way
We can't just plop asm/* into it - userland helpers are built with it
in search path and seeing asm/* show up there suddenly would be a bad
idea.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/um/include/init.h')
-rw-r--r-- | arch/um/include/init.h | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/arch/um/include/init.h b/arch/um/include/init.h deleted file mode 100644 index 37dd097c16c..00000000000 --- a/arch/um/include/init.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef _LINUX_UML_INIT_H -#define _LINUX_UML_INIT_H - -/* These macros are used to mark some functions or - * initialized data (doesn't apply to uninitialized data) - * as `initialization' functions. The kernel can take this - * as hint that the function is used only during the initialization - * phase and free up used memory resources after - * - * Usage: - * For functions: - * - * You should add __init immediately before the function name, like: - * - * static void __init initme(int x, int y) - * { - * extern int z; z = x * y; - * } - * - * If the function has a prototype somewhere, you can also add - * __init between closing brace of the prototype and semicolon: - * - * extern int initialize_foobar_device(int, int, int) __init; - * - * For initialized data: - * You should insert __initdata between the variable name and equal - * sign followed by value, e.g.: - * - * static int init_variable __initdata = 0; - * static char linux_logo[] __initdata = { 0x32, 0x36, ... }; - * - * Don't forget to initialize data not at file scope, i.e. within a function, - * as gcc otherwise puts the data into the bss section and not into the init - * section. - * - * Also note, that this data cannot be "const". - */ - -#ifndef _LINUX_INIT_H -typedef int (*initcall_t)(void); -typedef void (*exitcall_t)(void); - -#ifndef __KERNEL__ -#ifndef __section -# define __section(S) __attribute__ ((__section__(#S))) -#endif - -#if __GNUC__ == 3 - -#if __GNUC_MINOR__ >= 3 -# define __used __attribute__((__used__)) -#else -# define __used __attribute__((__unused__)) -#endif - -#else -#if __GNUC__ == 4 -# define __used __attribute__((__used__)) -#endif -#endif - -#else -#include <linux/compiler.h> -#endif -/* These are for everybody (although not all archs will actually - discard it in modules) */ -#define __init __section(.init.text) -#define __initdata __section(.init.data) -#define __exitdata __section(.exit.data) -#define __exit_call __used __section(.exitcall.exit) - -#ifdef MODULE -#define __exit __section(.exit.text) -#else -#define __exit __used __section(.exit.text) -#endif - -#endif - -#ifndef MODULE -struct uml_param { - const char *str; - int (*setup_func)(char *, int *); -}; - -extern initcall_t __uml_initcall_start, __uml_initcall_end; -extern initcall_t __uml_postsetup_start, __uml_postsetup_end; -extern const char *__uml_help_start, *__uml_help_end; -#endif - -#define __uml_initcall(fn) \ - static initcall_t __uml_initcall_##fn __uml_init_call = fn - -#define __uml_exitcall(fn) \ - static exitcall_t __uml_exitcall_##fn __uml_exit_call = fn - -extern struct uml_param __uml_setup_start, __uml_setup_end; - -#define __uml_postsetup(fn) \ - static initcall_t __uml_postsetup_##fn __uml_postsetup_call = fn - -#define __non_empty_string(dummyname,string) \ - struct __uml_non_empty_string_struct_##dummyname \ - { \ - char _string[sizeof(string)-2]; \ - } - -#ifndef MODULE -#define __uml_setup(str, fn, help...) \ - __non_empty_string(fn ##_setup, str); \ - __uml_help(fn, help); \ - static char __uml_setup_str_##fn[] __initdata = str; \ - static struct uml_param __uml_setup_##fn __uml_init_setup = { __uml_setup_str_##fn, fn } -#else -#define __uml_setup(str, fn, help...) \ - -#endif - -#define __uml_help(fn, help...) \ - __non_empty_string(fn ##__help, help); \ - static char __uml_help_str_##fn[] __initdata = help; \ - static const char *__uml_help_##fn __uml_setup_help = __uml_help_str_##fn - -/* - * Mark functions and data as being only used at initialization - * or exit time. - */ -#define __uml_init_setup __used __section(.uml.setup.init) -#define __uml_setup_help __used __section(.uml.help.init) -#define __uml_init_call __used __section(.uml.initcall.init) -#define __uml_postsetup_call __used __section(.uml.postsetup.init) -#define __uml_exit_call __used __section(.uml.exitcall.exit) - -#ifndef __KERNEL__ - -#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 __section(.initcall.init) - -#endif - -#endif /* _LINUX_UML_INIT_H */ |