LKMPG: Ciao Mondo: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
Nessun oggetto della modifica
Riga 161: Riga 161:
</pre>
</pre>


Adesso diamo un occhiata a <code>linux/drivers/char/Makefile</code> per un esempio concreto. Come si può vedere, qualcosa è stata inserita nel kernetl (obj-y) ma dove sono andate tutte le obj-m? Chi ha familiarità con gli script di shell può facilmente individuarli. Per quelli che non hanno familiarità, le voci obj-$(CONFIG_FOO) che si vedono ovunque vengono espanse in obj-y o in obj-m a seconda del fatto che la variabile CONFIG_FOO è stata settata a 'y' o a 'm'. Già che ci siamo, queste erano esattamente il tipo di variabili che avete impostato nel file <code>linux/.config</code> l'ultima volta che avete dato il comando '''make menuconfig''' o qualcosa di simile.
Adesso diamo un occhiata a <code>linux/drivers/char/Makefile</code> per un esempio concreto. Come si può vedere, qualcosa è stata inserita nel kernetl (obj-y) ma dove sono andate tutte le obj-m? Chi ha familiarità con gli script di shell può facilmente individuarli. Per quelli che non hanno familiarità, le voci obj-$(CONFIG_FOO) che si vedono ovunque vengono espanse in obj-y o in obj-m a seconda del fatto che la variabile CONFIG_FOO è stata settata a 'y' o a 'm'. Già che ci siamo, queste erano esattamente il tipo di variabili che avete impostato nel file <code>linux/.config</code> l'ultima volta che avete dato '''make menuconfig''' o qualche comando simile.


==Ciao, Mondo (parte 3): Le macro __init e __exit==
==Ciao, Mondo (parte 3): Le macro __init e __exit==


Ora vedremo una caratteristica dei kernel 2.2 e superiori. Nota la modifica della definizione delle funzioni init e cleanup.
Ora vedremo una caratteristica dei kernel 2.2 e superiori. Si faccia caso alla diversa definizione delle funzioni di init e di cleanup. La macro <code>__init</code> permette alla funzione di init di essere distrutta e alla memoria relativa di essere liberata una volta che la funzione termina per i driver built-in, ma non per i moduli caricabili.
168

contributi

Menu di navigazione