@ -282,68 +282,8 @@ void __init parse_early_param(void);
void __init parse_early_options ( char * cmdline ) ;
# endif /* __ASSEMBLY__ */
/**
* module_init ( ) - driver initialization entry point
* @ x : function to be run at kernel boot time or module insertion
*
* module_init ( ) will either be called during do_initcalls ( ) ( if
* builtin ) or at module insertion time ( if a module ) . There can only
* be one per module .
*/
# define module_init(x) __initcall(x);
/**
* module_exit ( ) - driver exit entry point
* @ x : function to be run when driver is removed
*
* module_exit ( ) will wrap the driver clean - up code
* with cleanup_module ( ) when used with rmmod when
* the driver is a module . If the driver is statically
* compiled into the kernel , module_exit ( ) has no effect .
* There can only be one per module .
*/
# define module_exit(x) __exitcall(x);
# else /* MODULE */
/*
* In most cases loadable modules do not need custom
* initcall levels . There are still some valid cases where
* a driver may be needed early if built in , and does not
* matter when built as a loadable module . Like bus
* snooping debug drivers .
*/
# define early_initcall(fn) module_init(fn)
# define core_initcall(fn) module_init(fn)
# define core_initcall_sync(fn) module_init(fn)
# define postcore_initcall(fn) module_init(fn)
# define postcore_initcall_sync(fn) module_init(fn)
# define arch_initcall(fn) module_init(fn)
# define subsys_initcall(fn) module_init(fn)
# define subsys_initcall_sync(fn) module_init(fn)
# define fs_initcall(fn) module_init(fn)
# define fs_initcall_sync(fn) module_init(fn)
# define rootfs_initcall(fn) module_init(fn)
# define device_initcall(fn) module_init(fn)
# define device_initcall_sync(fn) module_init(fn)
# define late_initcall(fn) module_init(fn)
# define late_initcall_sync(fn) module_init(fn)
# define console_initcall(fn) module_init(fn)
# define security_initcall(fn) module_init(fn)
/* Each module must use one module_init(). */
# define module_init(initfn) \
static inline initcall_t __inittest ( void ) \
{ return initfn ; } \
int init_module ( void ) __attribute__ ( ( alias ( # initfn ) ) ) ;
/* This is only required if you want to be unloadable. */
# define module_exit(exitfn) \
static inline exitcall_t __exittest ( void ) \
{ return exitfn ; } \
void cleanup_module ( void ) __attribute__ ( ( alias ( # exitfn ) ) ) ;
# define __setup_param(str, unique_id, fn) /* nothing */
# define __setup(str, func) /* nothing */
# endif
@ -351,24 +291,6 @@ void __init parse_early_options(char *cmdline);
/* Data marked not to be saved by software suspend */
# define __nosavedata __section(.data..nosave)
/* This means "can be init if no module support, otherwise module load
may call it . " */
# ifdef CONFIG_MODULES
# define __init_or_module
# define __initdata_or_module
# define __initconst_or_module
# define __INIT_OR_MODULE .text
# define __INITDATA_OR_MODULE .data
# define __INITRODATA_OR_MODULE .section ".rodata","a",%progbits
# else
# define __init_or_module __init
# define __initdata_or_module __initdata
# define __initconst_or_module __initconst
# define __INIT_OR_MODULE __INIT
# define __INITDATA_OR_MODULE __INITDATA
# define __INITRODATA_OR_MODULE __INITRODATA
# endif /*CONFIG_MODULES*/
# ifdef MODULE
# define __exit_p(x) x
# else