xref: /openbmc/linux/Documentation/translations/it_IT/process/magic-number.rst (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1edba5eecSFederico Vaga.. include:: ../disclaimer-ita.rst
2edba5eecSFederico Vaga
3*165915c1SFederico Vaga:Original: :ref:`Documentation/process/magic-number.rst <magicnumbers>`
4edba5eecSFederico Vaga:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
5edba5eecSFederico Vaga
6edba5eecSFederico Vaga.. _it_magicnumbers:
7edba5eecSFederico Vaga
8edba5eecSFederico VagaI numeri magici di Linux
9edba5eecSFederico Vaga========================
10edba5eecSFederico Vaga
11edba5eecSFederico VagaQuesto documento è un registro dei numeri magici in uso.  Quando
12edba5eecSFederico Vagaaggiungete un numero magico ad una struttura, dovreste aggiungerlo anche
13edba5eecSFederico Vagaa questo documento; la cosa migliore è che tutti i numeri magici usati
14edba5eecSFederico Vagadalle varie strutture siano unici.
15edba5eecSFederico Vaga
16edba5eecSFederico VagaÈ **davvero** un'ottima idea proteggere le strutture dati del kernel con
17edba5eecSFederico Vagadei numeri magici.  Questo vi permette in fase d'esecuzione di (a) verificare
18edba5eecSFederico Vagase una struttura è stata malmenata, o (b) avete passato a una procedura la
19edba5eecSFederico Vagastruttura errata.  Quest'ultimo è molto utile - particolarmente quando si passa
20edba5eecSFederico Vagauna struttura dati tramite un puntatore void \*.  Il codice tty, per esempio,
21edba5eecSFederico Vagaeffettua questa operazione con regolarità passando avanti e indietro le
22edba5eecSFederico Vagastrutture specifiche per driver e discipline.
23edba5eecSFederico Vaga
24edba5eecSFederico VagaPer utilizzare un numero magico, dovete dichiararlo all'inizio della struttura
25edba5eecSFederico Vagadati, come di seguito::
26edba5eecSFederico Vaga
27edba5eecSFederico Vaga	struct tty_ldisc {
28edba5eecSFederico Vaga		int	magic;
29edba5eecSFederico Vaga		...
30edba5eecSFederico Vaga	};
31edba5eecSFederico Vaga
32edba5eecSFederico VagaPer favore, seguite questa direttiva quando aggiungerete migliorie al kernel!
33edba5eecSFederico VagaMi ha risparmiato un numero illimitato di ore di debug, specialmente nei casi
34edba5eecSFederico Vagapiù ostici dove si è andati oltre la dimensione di un vettore e la struttura
35edba5eecSFederico Vagadati che lo seguiva in memoria è stata sovrascritta.  Seguendo questa
36edba5eecSFederico Vagadirettiva, questi casi vengono identificati velocemente e in sicurezza.
37edba5eecSFederico Vaga
38edba5eecSFederico VagaRegistro dei cambiamenti::
39edba5eecSFederico Vaga
40edba5eecSFederico Vaga					Theodore Ts'o
41edba5eecSFederico Vaga					31 Mar 94
42edba5eecSFederico Vaga
43edba5eecSFederico Vaga  La tabella magica è aggiornata a Linux 2.1.55.
44edba5eecSFederico Vaga
45edba5eecSFederico Vaga					Michael Chastain
46edba5eecSFederico Vaga					<mailto:mec@shout.net>
47edba5eecSFederico Vaga					22 Sep 1997
48edba5eecSFederico Vaga
49edba5eecSFederico Vaga  Ora dovrebbe essere aggiornata a Linux 2.1.112. Dato che
50edba5eecSFederico Vaga  siamo in un momento di congelamento delle funzionalità
51edba5eecSFederico Vaga  (*feature freeze*) è improbabile che qualcosa cambi prima
52edba5eecSFederico Vaga  della versione 2.2.x.  Le righe sono ordinate secondo il
53edba5eecSFederico Vaga  campo numero.
54edba5eecSFederico Vaga
55edba5eecSFederico Vaga					Krzysztof G. Baranowski
56edba5eecSFederico Vaga					<mailto: kgb@knm.org.pl>
57edba5eecSFederico Vaga					29 Jul 1998
58edba5eecSFederico Vaga
59edba5eecSFederico Vaga  Aggiornamento della tabella a Linux 2.5.45. Giusti nel congelamento
60edba5eecSFederico Vaga  delle funzionalità ma è comunque possibile che qualche nuovo
61edba5eecSFederico Vaga  numero magico s'intrufoli prima del kernel 2.6.x.
62edba5eecSFederico Vaga
63edba5eecSFederico Vaga					Petr Baudis
64edba5eecSFederico Vaga					<pasky@ucw.cz>
65edba5eecSFederico Vaga					03 Nov 2002
66edba5eecSFederico Vaga
67edba5eecSFederico Vaga  Aggiornamento della tabella magica a Linux 2.5.74.
68edba5eecSFederico Vaga
69edba5eecSFederico Vaga					Fabian Frederick
70edba5eecSFederico Vaga					<ffrederick@users.sourceforge.net>
71edba5eecSFederico Vaga					09 Jul 2003
72edba5eecSFederico Vaga
73edba5eecSFederico Vaga
74edba5eecSFederico Vaga===================== ================ ======================== ==========================================
75edba5eecSFederico VagaNome magico           Numero           Struttura                File
76edba5eecSFederico Vaga===================== ================ ======================== ==========================================
77edba5eecSFederico VagaPG_MAGIC              'P'              pg_{read,write}_hdr      ``include/linux/pg.h``
78edba5eecSFederico VagaAPM_BIOS_MAGIC        0x4101           apm_user                 ``arch/x86/kernel/apm_32.c``
79edba5eecSFederico VagaFASYNC_MAGIC          0x4601           fasync_struct            ``include/linux/fs.h``
80edba5eecSFederico VagaSLIP_MAGIC            0x5302           slip                     ``drivers/net/slip.h``
81edba5eecSFederico VagaBAYCOM_MAGIC          0x19730510       baycom_state             ``drivers/net/baycom_epp.c``
82edba5eecSFederico VagaHDLCDRV_MAGIC         0x5ac6e778       hdlcdrv_state            ``include/linux/hdlcdrv.h``
83edba5eecSFederico VagaKV_MAGIC              0x5f4b565f       kernel_vars_s            ``arch/mips/include/asm/sn/klkernvars.h``
84edba5eecSFederico VagaCODA_MAGIC            0xC0DAC0DA       coda_file_info           ``fs/coda/coda_fs_i.h``
85edba5eecSFederico VagaYAM_MAGIC             0xF10A7654       yam_port                 ``drivers/net/hamradio/yam.c``
86edba5eecSFederico VagaCCB_MAGIC             0xf2691ad2       ccb                      ``drivers/scsi/ncr53c8xx.c``
87edba5eecSFederico VagaQUEUE_MAGIC_FREE      0xf7e1c9a3       queue_entry              ``drivers/scsi/arm/queue.c``
88edba5eecSFederico VagaQUEUE_MAGIC_USED      0xf7e1cc33       queue_entry              ``drivers/scsi/arm/queue.c``
89edba5eecSFederico VagaNMI_MAGIC             0x48414d4d455201 nmi_s                    ``arch/mips/include/asm/sn/nmi.h``
90edba5eecSFederico Vaga===================== ================ ======================== ==========================================
91