.. include:: ../disclaimer-sp.rst

:Original: :ref:`Documentation/staging/magic-number.rst <magicnumbers>`
:Translator: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>

.. _sp_magicnumbers:

Números mágicos de Linux
========================

Este archivo es un registro de los números mágicos que están en uso. Cuando
usted incluya un número mágico a una estructura, también debe agregarlo a
este documento, ya que es mejor si los números mágicos utilizados por
varias estructuras son únicos.

Es una muy buena idea proteger las estructuras de datos del kernel con
números mágicos. Esto le permite verificar en tiempo de ejecución si (a)
una estructura ha sido manipulada, o (b) ha pasado la estructura incorrecta
a una rutina. Esto último es especialmente útil --- particularmente cuando
pasa punteros a estructuras a través de un puntero void \*. El código tty,
por ejemplo, hace esto con frecuencia para pasar información específica del
driver y líneas de estructuras específicas de protocolo de un lado al
otro.

La forma de usar números mágicos es declararlos al principio de la
estructura, así::

	struct tty_ldisc {
		int	magic;
		...
	};

Por favor, siga este método cuando agregue futuras mejoras al kernel! Me ha
ahorrado innumerables horas de depuración, especialmente en los casos
complicados donde una matriz ha sido invadida y las estructuras que siguen
a la matriz se han sobrescrito. Usando este método, estos casos se detectan
de forma rápida y segura.

Changelog::

					Theodore Ts'o
					31 Mar 94

  La tabla mágica ha sido actualizada para Linux 2.1.55.

					Michael Chastain
					<mailto:mec@shout.net>
					22 Sep 1997

  Ahora debería estar actualizada con Linux 2.1.112. Porque
  estamos en fase de "feature freeze", es muy poco probable que
  algo cambiará antes de 2.2.x. Las entradas son
  ordenados por campo numérico.

					Krzysztof G. Baranowski
					<mailto: kgb@knm.org.pl>
					29 Jul 1998

  Se actualizó la tabla mágica a Linux 2.5.45. Justo sobre el feature
  freeze, pero es posible que algunos nuevos números mágicos se cuelen en
  el kernel antes de 2.6.x todavía.

					Petr Baudis
					<pasky@ucw.cz>
					03 Nov 2002

  La tabla mágica ha sido actualizada para Linux 2.5.74.

					Fabian Frederick
					<ffrederick@users.sourceforge.net>
					09 Jul 2003

===================== ================ ======================== ==========================================
Magic Name            Number           Structure                File
===================== ================ ======================== ==========================================
PG_MAGIC              'P'              pg_{read,write}_hdr      ``include/linux/pg.h``
APM_BIOS_MAGIC        0x4101           apm_user                 ``arch/x86/kernel/apm_32.c``
FASYNC_MAGIC          0x4601           fasync_struct            ``include/linux/fs.h``
SLIP_MAGIC            0x5302           slip                     ``drivers/net/slip.h``
BAYCOM_MAGIC          0x19730510       baycom_state             ``drivers/net/baycom_epp.c``
HDLCDRV_MAGIC         0x5ac6e778       hdlcdrv_state            ``include/linux/hdlcdrv.h``
KV_MAGIC              0x5f4b565f       kernel_vars_s            ``arch/mips/include/asm/sn/klkernvars.h``
CODA_MAGIC            0xC0DAC0DA       coda_file_info           ``fs/coda/coda_fs_i.h``
YAM_MAGIC             0xF10A7654       yam_port                 ``drivers/net/hamradio/yam.c``
CCB_MAGIC             0xf2691ad2       ccb                      ``drivers/scsi/ncr53c8xx.c``
QUEUE_MAGIC_FREE      0xf7e1c9a3       queue_entry              ``drivers/scsi/arm/queue.c``
QUEUE_MAGIC_USED      0xf7e1cc33       queue_entry              ``drivers/scsi/arm/queue.c``
NMI_MAGIC             0x48414d4d455201 nmi_s                    ``arch/mips/include/asm/sn/nmi.h``
===================== ================ ======================== ==========================================
