Why do some function calls in kernel specially have this prefix __

example: __init initialization(void)

is __init a macro?

What does this convey? Are these a special class of function calls inside the kernel or do they resemble any assembly function body present inside? What actually are they trying to represent?

  • This has been answered at the Stack Overflow site here – Warwick Aug 5 '14 at 4:20

As mentioned by Code_cynic, the double underscore means that is is reserved (the same for keywords with one underscore followed by a capital letter): https://stackoverflow.com/a/10687114/2915175

The explanation of the __init macro can be found here and it expands to a __attribute__: https://stackoverflow.com/a/8832166/2915175


It means it's a system-reserved name.that means it is reserve for implementation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.