18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci.. note:: Per leggere la documentazione originale in inglese:
48c2ecf20Sopenharmony_ci	  :ref:`Documentation/doc-guide/index.rst <doc_guide>`
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci=========================================
78c2ecf20Sopenharmony_ciIncludere gli i file di intestazione uAPI
88c2ecf20Sopenharmony_ci=========================================
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciQualche volta è utile includere dei file di intestazione e degli esempi di codice C
118c2ecf20Sopenharmony_cial fine di descrivere l'API per lo spazio utente e per generare dei riferimenti
128c2ecf20Sopenharmony_cifra il codice e la documentazione. Aggiungere i riferimenti ai file dell'API
138c2ecf20Sopenharmony_cidello spazio utente ha ulteriori vantaggi: Sphinx genererà dei messaggi
148c2ecf20Sopenharmony_cid'avviso se un simbolo non viene trovato nella documentazione. Questo permette
158c2ecf20Sopenharmony_cidi mantenere allineate la documentazione della uAPI (API spazio utente)
168c2ecf20Sopenharmony_cicon le modifiche del kernel.
178c2ecf20Sopenharmony_ciIl programma :ref:`parse_headers.pl <it_parse_headers>` genera questi riferimenti.
188c2ecf20Sopenharmony_ciEsso dev'essere invocato attraverso un Makefile, mentre si genera la
198c2ecf20Sopenharmony_cidocumentazione. Per avere un esempio su come utilizzarlo all'interno del kernel
208c2ecf20Sopenharmony_ciconsultate ``Documentation/userspace-api/media/Makefile``.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci.. _it_parse_headers:
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciparse_headers.pl
258c2ecf20Sopenharmony_ci^^^^^^^^^^^^^^^^
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciNOME
288c2ecf20Sopenharmony_ci****
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciparse_headers.pl - analizza i file C al fine di identificare funzioni,
328c2ecf20Sopenharmony_cistrutture, enumerati e definizioni, e creare riferimenti per Sphinx
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciSINTASSI
358c2ecf20Sopenharmony_ci********
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci\ **parse_headers.pl**\  [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciDove <options> può essere: --debug, --usage o --help.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciOPZIONI
448c2ecf20Sopenharmony_ci*******
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci\ **--debug**\
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci Lo script viene messo in modalità verbosa, utile per il debugging.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci\ **--usage**\
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci Mostra un messaggio d'aiuto breve e termina.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci\ **--help**\
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci Mostra un messaggio d'aiuto dettagliato e termina.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciDESCRIZIONE
648c2ecf20Sopenharmony_ci***********
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciConverte un file d'intestazione o un file sorgente C (C_FILE) in un testo
678c2ecf20Sopenharmony_ciReStructuredText incluso mediante il blocco ..parsed-literal
688c2ecf20Sopenharmony_cicon riferimenti alla documentazione che descrive l'API. Opzionalmente,
698c2ecf20Sopenharmony_ciil programma accetta anche un altro file (EXCEPTIONS_FILE) che
708c2ecf20Sopenharmony_cidescrive quali elementi debbano essere ignorati o il cui riferimento
718c2ecf20Sopenharmony_cideve puntare ad elemento diverso dal predefinito.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciIl file generato sarà disponibile in (OUT_FILE).
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciIl programma è capace di identificare *define*, funzioni, strutture,
768c2ecf20Sopenharmony_citipi di dato, enumerati e valori di enumerati, e di creare i riferimenti
778c2ecf20Sopenharmony_ciper ognuno di loro. Inoltre, esso è capace di distinguere le #define
788c2ecf20Sopenharmony_ciutilizzate per specificare i comandi ioctl di Linux.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciIl file EXCEPTIONS_FILE contiene due tipi di dichiarazioni:
818c2ecf20Sopenharmony_ci\ **ignore**\  o \ **replace**\ .
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciLa sintassi per ignore è:
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciignore \ **tipo**\  \ **nome**\
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciLa dichiarazione \ **ignore**\  significa che non verrà generato alcun
888c2ecf20Sopenharmony_ciriferimento per il simbolo \ **name**\  di tipo \ **tipo**\ .
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ciLa sintassi per replace è:
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_cireplace \ **tipo**\  \ **nome**\  \ **nuovo_valore**\
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciLa dichiarazione \ **replace**\  significa che verrà generato un
968c2ecf20Sopenharmony_ciriferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
978c2ecf20Sopenharmony_cidi utilizzare il valore predefinito, verrà utilizzato il valore
988c2ecf20Sopenharmony_ci\ **nuovo_valore**\ .
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciPer entrambe le dichiarazioni, il \ **tipo**\  può essere uno dei seguenti:
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci\ **ioctl**\
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
1068c2ecf20Sopenharmony_ci come la seguente:
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci #define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register)
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci\ **define**\
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
1158c2ecf20Sopenharmony_ci trovata in C_FILE.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci\ **typedef**\
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
1228c2ecf20Sopenharmony_ci in C_FILE.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci\ **struct**\
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di strutture
1298c2ecf20Sopenharmony_ci in C_FILE.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci\ **enum**\
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
1368c2ecf20Sopenharmony_ci in C_FILE.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci\ **symbol**\
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di valori di
1438c2ecf20Sopenharmony_ci enumerati in C_FILE.
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci Per le dichiarazioni di tipo replace, il campo \ **new_value**\  utilizzerà
1468c2ecf20Sopenharmony_ci automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\  e
1478c2ecf20Sopenharmony_ci \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\  e
1488c2ecf20Sopenharmony_ci \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
1498c2ecf20Sopenharmony_ci nella dichiarazione stessa.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ciESEMPI
1538c2ecf20Sopenharmony_ci******
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ciignore define _VIDEODEV2_H
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ciIgnora una definizione #define _VIDEODEV2_H nel file C_FILE.
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ciignore symbol PRIVATE
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ciIn un enumerato come il seguente:
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_cienum foo { BAR1, BAR2, PRIVATE };
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ciNon genererà alcun riferimento per \ **PRIVATE**\ .
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_cireplace symbol BAR1 :c:type:\`foo\`
1718c2ecf20Sopenharmony_cireplace symbol BAR2 :c:type:\`foo\`
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ciIn un enumerato come il seguente:
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_cienum foo { BAR1, BAR2, PRIVATE };
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ciGenererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ciBUGS
1828c2ecf20Sopenharmony_ci****
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ciRiferire ogni malfunzionamento a Mauro Carvalho Chehab <mchehab@s-opensource.com>
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciCOPYRIGHT
1888c2ecf20Sopenharmony_ci*********
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ciCopyright (c) 2016 by Mauro Carvalho Chehab <mchehab@s-opensource.com>.
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ciLicenza GPLv2: GNU GPL version 2 <http://gnu.org/licenses/gpl.html>.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciQuesto è software libero: siete liberi di cambiarlo e ridistribuirlo.
1968c2ecf20Sopenharmony_ciNon c'è alcuna garanzia, nei limiti permessi dalla legge.
197