diff options
author | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
commit | 9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb (patch) | |
tree | 8845b79f170028cb4380045c50277bbf075b5b7d /pfinet/linux-src/include/linux/init.h |
Import of Linux 2.2.12 subset (ipv4 stack and related)
Diffstat (limited to 'pfinet/linux-src/include/linux/init.h')
-rw-r--r-- | pfinet/linux-src/include/linux/init.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/pfinet/linux-src/include/linux/init.h b/pfinet/linux-src/include/linux/init.h new file mode 100644 index 00000000..4465f38b --- /dev/null +++ b/pfinet/linux-src/include/linux/init.h @@ -0,0 +1,68 @@ +#ifndef _LINUX_INIT_H +#define _LINUX_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; + * } + * + * Depricated: you can surround the whole function declaration + * just before function body into __initfunc() macro, like: + * + * __initfunc (static void 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, ... }; + * + * For initialized data not at file scope, i.e. within a function, + * you should use __initlocaldata instead, due to a bug in GCC 2.7. + */ + +/* + * Disable the __initfunc macros if a file that is a part of a + * module attempts to use them. We do not want to interfere + * with module linking. + */ + +#ifndef MODULE +#include <asm/init.h> +#else +#define __init +#define __initdata +#define __initfunc(__arginit) __arginit +/* For assembly routines */ +#define __INIT +#define __FINIT +#define __INITDATA +#endif + +#if __GNUC__ >= 2 && __GNUC_MINOR__ >= 8 +#define __initlocaldata __initdata +#else +#define __initlocaldata +#endif + +#endif |