168
contributi
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 | 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. | 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. |
contributi