Jaka jest różnica między modułem INIT i subsys initcall podczas inicjalizacji sterownika?

Jaka jest różnica pomiędzy module_init i subsys_initcall podczas inicjalizacji sterownika?

Author: kzs, 2013-03-21

1 answers

Różnica dotyczy czasu, a dokładniej kolejności wykonania. Oznacza to, że procedura zadeklarowana jako subsys_initcall jest gwarantowana do wykonania przed procedurą zadeklarowaną jako module_init. Ta kolejność zapewnia, że sterowniki podsystemu i platformy są inicjowane, zanim sterowniki urządzeń spróbują wykorzystać funkcjonalność pierwszego z nich (np. sterownik urządzenia rejestruje się jako urządzenie podsystemu).

Rzeczywista Definicja makra dla każdego zależy od tego, czy jądro jest skonfigurowane dla (ładowalnych) modułów lub nie. Definicja tych makr (i innych makr init) znajduje się w include/linux / INIT.h

Zauważ, że subsys_initcall() może być używany tylko przez wbudowany (statycznie połączony) moduł.
module_init może być używany przez moduły wbudowane lub ładowane.

 20
Author: sawdust,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-21 09:08:04