Article Title: Embedded: Explanation of _ init and _ exit in Linux. Linux is a technology channel of the IT lab in China. Including desktop applications, Linux system management, kernel research, embedded systems, open source, and other basic categories. Original Definition: include/linux/init. h
# Define _ init _ attribute _ (_ section _ (". init. text "))) # Define _ initdata _ attribute _ (_ section _ (". init. data ")))
# Define _ exitdata _ attribute _ (_ section _ (". exit. data ")))
# Define _ exit_call _ attribute_used _ attribute _ (_ section _ (". exitcall. exit ")))
# Ifdef MODULE
# Define _ exit _ attribute _ (_ section _ (". exit. text ")))
# Else
# Define _ exit _ attribute_used _ attribute _ (_ section _ (". exit. text ")))
# Endif _ init and _ exit mark functions, __initdata and _ exitdata mark data. |
This macro definition shows that the labeled functions and data are actually put into a specific (code or data) segment.
Indicates that the function is used during initialization.
After the module is loaded, the initialization function is thrown away. In this way, the memory occupied by the function can be released.
The _ exit modifier markup function is only used when the module is detached.
If the module is directly compiled into the kernel, the function will not be called. If the kernel does not contain this module during compilation, the functions marked with this module will be discarded.