162306a36Sopenharmony_ci.. include:: ../disclaimer-ita.rst
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci:Original: Documentation/doc-guide/index.rst
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci=========================================
662306a36Sopenharmony_ciIncludere gli i file di intestazione uAPI
762306a36Sopenharmony_ci=========================================
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciQualche volta è utile includere dei file di intestazione e degli esempi di codice C
1062306a36Sopenharmony_cial fine di descrivere l'API per lo spazio utente e per generare dei riferimenti
1162306a36Sopenharmony_cifra il codice e la documentazione. Aggiungere i riferimenti ai file dell'API
1262306a36Sopenharmony_cidello spazio utente ha ulteriori vantaggi: Sphinx genererà dei messaggi
1362306a36Sopenharmony_cid'avviso se un simbolo non viene trovato nella documentazione. Questo permette
1462306a36Sopenharmony_cidi mantenere allineate la documentazione della uAPI (API spazio utente)
1562306a36Sopenharmony_cicon le modifiche del kernel.
1662306a36Sopenharmony_ciIl programma :ref:`parse_headers.pl <it_parse_headers>` genera questi riferimenti.
1762306a36Sopenharmony_ciEsso dev'essere invocato attraverso un Makefile, mentre si genera la
1862306a36Sopenharmony_cidocumentazione. Per avere un esempio su come utilizzarlo all'interno del kernel
1962306a36Sopenharmony_ciconsultate ``Documentation/userspace-api/media/Makefile``.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci.. _it_parse_headers:
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciparse_headers.pl
2462306a36Sopenharmony_ci^^^^^^^^^^^^^^^^
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciNOME
2762306a36Sopenharmony_ci****
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciparse_headers.pl - analizza i file C al fine di identificare funzioni,
3162306a36Sopenharmony_cistrutture, enumerati e definizioni, e creare riferimenti per Sphinx
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciSINTASSI
3462306a36Sopenharmony_ci********
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci\ **parse_headers.pl**\  [<options>] <C_FILE> <OUT_FILE> [<EXCEPTIONS_FILE>]
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciDove <options> può essere: --debug, --usage o --help.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciOPZIONI
4362306a36Sopenharmony_ci*******
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci\ **--debug**\
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci Lo script viene messo in modalità verbosa, utile per il debugging.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci\ **--usage**\
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci Mostra un messaggio d'aiuto breve e termina.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci\ **--help**\
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci Mostra un messaggio d'aiuto dettagliato e termina.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciDESCRIZIONE
6362306a36Sopenharmony_ci***********
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciConverte un file d'intestazione o un file sorgente C (C_FILE) in un testo
6662306a36Sopenharmony_ciReStructuredText incluso mediante il blocco ..parsed-literal
6762306a36Sopenharmony_cicon riferimenti alla documentazione che descrive l'API. Opzionalmente,
6862306a36Sopenharmony_ciil programma accetta anche un altro file (EXCEPTIONS_FILE) che
6962306a36Sopenharmony_cidescrive quali elementi debbano essere ignorati o il cui riferimento
7062306a36Sopenharmony_cideve puntare ad elemento diverso dal predefinito.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciIl file generato sarà disponibile in (OUT_FILE).
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciIl programma è capace di identificare *define*, funzioni, strutture,
7562306a36Sopenharmony_citipi di dato, enumerati e valori di enumerati, e di creare i riferimenti
7662306a36Sopenharmony_ciper ognuno di loro. Inoltre, esso è capace di distinguere le #define
7762306a36Sopenharmony_ciutilizzate per specificare i comandi ioctl di Linux.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciIl file EXCEPTIONS_FILE contiene due tipi di dichiarazioni:
8062306a36Sopenharmony_ci\ **ignore**\  o \ **replace**\ .
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciLa sintassi per ignore è:
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciignore \ **tipo**\  \ **nome**\
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciLa dichiarazione \ **ignore**\  significa che non verrà generato alcun
8762306a36Sopenharmony_ciriferimento per il simbolo \ **name**\  di tipo \ **tipo**\ .
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciLa sintassi per replace è:
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cireplace \ **tipo**\  \ **nome**\  \ **nuovo_valore**\
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciLa dichiarazione \ **replace**\  significa che verrà generato un
9562306a36Sopenharmony_ciriferimento per il simbolo \ **name**\ di tipo \ **tipo**\ , ma, invece
9662306a36Sopenharmony_cidi utilizzare il valore predefinito, verrà utilizzato il valore
9762306a36Sopenharmony_ci\ **nuovo_valore**\ .
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciPer entrambe le dichiarazioni, il \ **tipo**\  può essere uno dei seguenti:
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci\ **ioctl**\
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata su definizioni di ioctl
10562306a36Sopenharmony_ci come la seguente:
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci #define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register)
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci\ **define**\
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata su una qualsiasi #define
11462306a36Sopenharmony_ci trovata in C_FILE.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci\ **typedef**\
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ad una dichiarazione typedef
12162306a36Sopenharmony_ci in C_FILE.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci\ **struct**\
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di strutture
12862306a36Sopenharmony_ci in C_FILE.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci\ **enum**\
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di enumerati
13562306a36Sopenharmony_ci in C_FILE.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci\ **symbol**\
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci La dichiarazione ignore o replace verrà applicata ai nomi di valori di
14262306a36Sopenharmony_ci enumerati in C_FILE.
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci Per le dichiarazioni di tipo replace, il campo \ **new_value**\  utilizzerà
14562306a36Sopenharmony_ci automaticamente i riferimenti :c:type: per \ **typedef**\ , \ **enum**\  e
14662306a36Sopenharmony_ci \ **struct**\. Invece, utilizzerà :ref: per \ **ioctl**\ , \ **define**\  e
14762306a36Sopenharmony_ci \ **symbol**\. Il tipo di riferimento può essere definito esplicitamente
14862306a36Sopenharmony_ci nella dichiarazione stessa.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciESEMPI
15262306a36Sopenharmony_ci******
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ciignore define _VIDEODEV2_H
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciIgnora una definizione #define _VIDEODEV2_H nel file C_FILE.
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ciignore symbol PRIVATE
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciIn un enumerato come il seguente:
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_cienum foo { BAR1, BAR2, PRIVATE };
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ciNon genererà alcun riferimento per \ **PRIVATE**\ .
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_cireplace symbol BAR1 :c:type:\`foo\`
17062306a36Sopenharmony_cireplace symbol BAR2 :c:type:\`foo\`
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ciIn un enumerato come il seguente:
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_cienum foo { BAR1, BAR2, PRIVATE };
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ciGenererà un riferimento ai valori BAR1 e BAR2 dal simbolo foo nel dominio C.
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciBUGS
18162306a36Sopenharmony_ci****
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ciRiferire ogni malfunzionamento a Mauro Carvalho Chehab <mchehab@s-opensource.com>
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciCOPYRIGHT
18762306a36Sopenharmony_ci*********
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ciCopyright (c) 2016 by Mauro Carvalho Chehab <mchehab@s-opensource.com>.
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ciLicenza GPLv2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html>.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciQuesto è software libero: siete liberi di cambiarlo e ridistribuirlo.
19562306a36Sopenharmony_ciNon c'è alcuna garanzia, nei limiti permessi dalla legge.
196