After boot, the kernel frees up a special section; functions
    marked with __init and data structures marked with
    __initdata are dropped after boot is complete: similarly
    modules discard this memory after initialization.  __exit
    is used to declare a function which is only required on exit: the
    function will be dropped if this file is not compiled as a module.
    See the header file for use. Note that it makes no sense for a function
    marked with __init to be exported to modules with 
    EXPORT_SYMBOL() - this will break.