43
contributi
Riga 165: | Riga 165: | ||
==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. Si faccia caso alla diversa definizione delle funzioni di init e di cleanup. La macro <code>__init</code> permette, per i driver built-in, di | 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, per i driver built-in, di scartare la funzione e di liberare la memoria ad essa associata una volta che la funzione termina. Lo stesso non vale per i moduli caricabili: infatti quanto abbiamo detto ha perfettamente senso se si pensa a come la funzione iniziale viene invocata. | ||
Esiste anche la macro <code>__initdata</code> che funziona similmente a <code>__init</code> ma per le "variabili di init" piuttosto che per le funzioni. | Esiste anche la macro <code>__initdata</code> che funziona similmente a <code>__init</code> ma per le "variabili di init" piuttosto che per le funzioni. | ||
Riga 210: | Riga 210: | ||
</pre> | </pre> | ||
Nei kernel 2.4 e superiori, è stato messo a punto un meccanismo che permette di identificare il codice con licenza GPL (e simili) in modo tale che la gente può essere avvisata se il codice non è open-source. Ciò si può realizzare con la macro <code>MODULE_LICENSE</code> che è mostrata nel prossimo pezzo di codice. Impostando la licenza GPL, è possibile fare in modo che l'avviso venga stampato | Nei kernel 2.4 e superiori, è stato messo a punto un meccanismo che permette di identificare il codice con licenza GPL (e simili) in modo tale che la gente può essere avvisata se il codice non è open-source. Ciò si può realizzare con la macro <code>MODULE_LICENSE</code> che è mostrata nel prossimo pezzo di codice. Impostando la licenza GPL, è possibile fare in modo che l'avviso non venga stampato. Questo meccanismo è definito e documentato in <code>linux/module.h</code>: | ||
<pre> | <pre> | ||
/* | /* |
contributi