subsys_initcall()과 module_init()의 차이점

hennessy5474의 이미지

Montavista Pro5.0.0 Version의 TI Davinci source code를 분석하다보니

특정소스파일에서는 아래와 같이 선언되어 있고..
subsys_initcall(davinci_enc_mngr_init);
module_exit(davinci_enc_mngr_cleanup);

특정소스파일에는 아래와 같이 선언되어 있습니다.
module_init(davinci_display_init);
module_exit(davinci_cleanup);

위 두가지의 차이점이 무엇입니까?

bushi의 이미지

호출되는 순서(우선순위?)의 차이입니다.
정확히 말하면... 심볼이 위치하는 section 이 다릅니다.
init.h 였는지 module.h 였는지 기억은 안납니다만, 정의된 매크로를 찾아서 보시면 그리 힘들지 않게 이해하실 수 있습니다.

OTL