Warning
Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés.
- Original:
- Translator:
Carlos Bilbao <carlos.bilbao@amd.com>
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 |
|
APM_BIOS_MAGIC |
0x4101 |
apm_user |
|
FASYNC_MAGIC |
0x4601 |
fasync_struct |
|
SLIP_MAGIC |
0x5302 |
slip |
|
BAYCOM_MAGIC |
0x19730510 |
baycom_state |
|
HDLCDRV_MAGIC |
0x5ac6e778 |
hdlcdrv_state |
|
KV_MAGIC |
0x5f4b565f |
kernel_vars_s |
|
CODA_MAGIC |
0xC0DAC0DA |
coda_file_info |
|
YAM_MAGIC |
0xF10A7654 |
yam_port |
|
CCB_MAGIC |
0xf2691ad2 |
ccb |
|
QUEUE_MAGIC_FREE |
0xf7e1c9a3 |
queue_entry |
|
QUEUE_MAGIC_USED |
0xf7e1cc33 |
queue_entry |
|
NMI_MAGIC |
0x48414d4d455201 |
nmi_s |
|