Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / Documentation / translations / it_IT / doc-guide / parse-headers.rst
blob026a23e497674c6d6c92a69c8a384b864d905646
1 .. include:: ../disclaimer-ita.rst
3 :Original: Documentation/doc-guide/index.rst
5 =========================================
6 Includere gli i file di intestazione uAPI
7 =========================================
9 Qualche volta è utile includere dei file di intestazione e degli esempi di codice C
10 al fine di descrivere l'API per lo spazio utente e per generare dei riferimenti
11 fra il codice e la documentazione. Aggiungere i riferimenti ai file dell'API
12 dello spazio utente ha ulteriori vantaggi: Sphinx genererà dei messaggi
13 d'avviso se un simbolo non viene trovato nella documentazione. Questo permette
14 di mantenere allineate la documentazione della uAPI (API spazio utente)
15 con le modifiche del kernel.
16 Il programma :ref:`parse_headers.pl <it_parse_headers>` genera questi riferimenti.
17 Esso dev'essere invocato attraverso un Makefile, mentre si genera la
18 documentazione. Per avere un esempio su come utilizzarlo all'interno del kernel
19 consultate ``Documentation/userspace-api/media/Makefile``.
21 .. _it_parse_headers:
23 parse_headers.pl
24 ^^^^^^^^^^^^^^^^
26 NOME
27 ****
30 parse_headers.pl - analizza i file C al fine di identificare funzioni,
31 strutture, enumerati e definizioni, e creare riferimenti per Sphinx
33 SINTASSI
34 ********
37 \ **parse_headers.pl**\  [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]
39 Dove <options> può essere: --debug, --usage o --help.
42 OPZIONI
43 *******
47 \ **--debug**\
49  Lo script viene messo in modalità verbosa, utile per il debugging.
52 \ **--usage**\
54  Mostra un messaggio d'aiuto breve e termina.
57 \ **--help**\
59  Mostra un messaggio d'aiuto dettagliato e termina.
62 DESCRIZIONE
63 ***********
65 Converte un file d'intestazione o un file sorgente C (C_FILE) in un testo
66 reStructuredText incluso mediante il blocco ..parsed-literal
67 con riferimenti alla documentazione che descrive l'API. Opzionalmente,
68 il programma accetta anche un altro file (EXCEPTIONS_FILE) che
69 descrive quali elementi debbano essere ignorati o il cui riferimento
70 deve puntare ad elemento diverso dal predefinito.
72 Il file generato sarà disponibile in (OUT_FILE).
74 Il programma è capace di identificare *define*, funzioni, strutture,
75 tipi di dato, enumerati e valori di enumerati, e di creare i riferimenti
76 per ognuno di loro. Inoltre, esso è capace di distinguere le #define
77 utilizzate per specificare i comandi ioctl di Linux.
79 Il file EXCEPTIONS_FILE contiene due tipi di dichiarazioni:
80 \ **ignore**\  o \ **replace**\ .
82 La sintassi per ignore è:
84 ignore \ **tipo**\  \ **nome**\
86 La dichiarazione \ **ignore**\  significa che non verrà generato alcun
87 riferimento per il simbolo \ **name**\  di tipo \ **tipo**\ .
90 La sintassi per replace è:
92 replace \ **tipo**\  \ **nome**\  \ **nuovo_valore**\
94 La dichiarazione \ **replace**\  significa che verrà generato un
95 riferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
96 di utilizzare il valore predefinito, verrà utilizzato il valore
97 \ **nuovo_valore**\ .
99 Per entrambe le dichiarazioni, il \ **tipo**\  può essere uno dei seguenti:
102 \ **ioctl**\
104  La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
105  come la seguente:
107  #define        VIDIOC_DBG_S_REGISTER    _IOW('V', 79, struct v4l2_dbg_register)
111 \ **define**\
113  La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
114  trovata in C_FILE.
118 \ **typedef**\
120  La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
121  in C_FILE.
125 \ **struct**\
127  La dichiarazione ignore o replace verrà applicata ai nomi di strutture
128  in C_FILE.
132 \ **enum**\
134  La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
135  in C_FILE.
139 \ **symbol**\
141  La dichiarazione ignore o replace verrà applicata ai nomi di valori di
142  enumerati in C_FILE.
144  Per le dichiarazioni di tipo replace, il campo \ **new_value**\  utilizzerà
145  automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\  e
146  \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\  e
147  \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
148  nella dichiarazione stessa.
151 ESEMPI
152 ******
155 ignore define _VIDEODEV2_H
158 Ignora una definizione #define _VIDEODEV2_H nel file C_FILE.
160 ignore symbol PRIVATE
163 In un enumerato come il seguente:
165 enum foo { BAR1, BAR2, PRIVATE };
167 Non genererà alcun riferimento per \ **PRIVATE**\ .
169 replace symbol BAR1 :c:type:\`foo\`
170 replace symbol BAR2 :c:type:\`foo\`
173 In un enumerato come il seguente:
175 enum foo { BAR1, BAR2, PRIVATE };
177 Genererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.
180 BUGS
181 ****
183 Riferire ogni malfunzionamento a Mauro Carvalho Chehab <mchehab@s-opensource.com>
186 COPYRIGHT
187 *********
190 Copyright (c) 2016 by Mauro Carvalho Chehab <mchehab@s-opensource.com>.
192 Licenza GPLv2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html>.
194 Questo è software libero: siete liberi di cambiarlo e ridistribuirlo.
195 Non c'è alcuna garanzia, nei limiti permessi dalla legge.