OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [Documentation/] [magic-number.txt] - Blame information for rev 78

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
This file is a registry of magic numbers which are in use.  When you
2
add a magic number to a structure, you should also add it to this
3
file, since it is best if the magic numbers used by various structures
4
are unique.
5
 
6
It is a *very* good idea to protect kernel data structures with magic
7
numbers.  This allows you to check at run time whether (a) a structure
8
has been clobbered, or (b) you've passed the wrong structure to a
9
routine.  This last is especially useful --- particularly when you are
10
passing pointers to structures via a void * pointer.  The tty code,
11
for example, does this frequently to pass driver-specific and line
12
discipline-specific structures back and forth.
13
 
14
The way to use magic numbers is to declare then at the beginning of
15
the structure, like so:
16
 
17
struct tty_ldisc {
18
        int     magic;
19
        ...
20
};
21
 
22
Please follow this discipline when you are adding future enhancements
23
to the kernel!  It has saved me countless hours of debugging,
24
especially in the screwy cases where an array has been overrun and
25
structures following the array have been overwritten.  Using this
26
discipline, these cases get detected quickly and safely.
27
 
28
                                        Theodore Ts'o
29
                                        31 Mar 94
30
 
31
The magic table is current to Linux 2.1.55.
32
 
33
                                        Michael Chastain
34
                                        
35
                                        22 Sep 1997
36
 
37
Now it should be up to date with Linux 2.1.112. Because
38
we are in feature freeze time it is very unlikely that
39
something will change before 2.2.x. The entries are
40
sorted by number field.
41
 
42
                                        Krzysztof G. Baranowski
43
                                        
44
                                        29 Jul 1998
45
 
46
Updated the magic table to Linux 2.5.45. Right over the feature freeze,
47
but it is possible that some new magic numbers will sneak into the
48
kernel before 2.6.x yet.
49
 
50
                                        Petr Baudis
51
                                        
52
                                        03 Nov 2002
53
 
54
Updated the magic table to Linux 2.5.74.
55
 
56
                                        Fabian Frederick
57
                                        
58
                                        09 Jul 2003
59
 
60
 
61
Magic Name            Number      Structure            File
62
===========================================================================
63
PG_MAGIC              'P'         pg_{read,write}_hdr include/linux/pg.h
64
CMAGIC                0x0111      user              include/linux/a.out.h
65
MKISS_DRIVER_MAGIC    0x04bf      mkiss_channel     drivers/net/mkiss.h
66
RISCOM8_MAGIC         0x0907      riscom_port       drivers/char/riscom8.h
67
SPECIALIX_MAGIC       0x0907      specialix_port    drivers/char/specialix_io8.h
68
HDLC_MAGIC            0x239e      n_hdlc            drivers/char/n_hdlc.c
69
APM_BIOS_MAGIC        0x4101      apm_user          arch/i386/kernel/apm.c
70
CYCLADES_MAGIC        0x4359      cyclades_port     include/linux/cyclades.h
71
DB_MAGIC              0x4442      fc_info           drivers/net/iph5526_novram.c
72
DL_MAGIC              0x444d      fc_info           drivers/net/iph5526_novram.c
73
FASYNC_MAGIC          0x4601      fasync_struct     include/linux/fs.h
74
FF_MAGIC              0x4646      fc_info           drivers/net/iph5526_novram.c
75
ISICOM_MAGIC          0x4d54      isi_port          include/linux/isicom.h
76
PTY_MAGIC             0x5001                        drivers/char/pty.c
77
PPP_MAGIC             0x5002      ppp               include/linux/if_pppvar.h
78
SERIAL_MAGIC          0x5301      async_struct      include/linux/serial.h
79
SSTATE_MAGIC          0x5302      serial_state      include/linux/serial.h
80
SLIP_MAGIC            0x5302      slip              drivers/net/slip.h
81
STRIP_MAGIC           0x5303      strip             drivers/net/strip.c
82
X25_ASY_MAGIC         0x5303      x25_asy           drivers/net/x25_asy.h
83
SIXPACK_MAGIC         0x5304      sixpack           drivers/net/hamradio/6pack.h
84
AX25_MAGIC            0x5316      ax_disp           drivers/net/mkiss.h
85
ESP_MAGIC             0x53ee      esp_struct        drivers/char/esp.h
86
TTY_MAGIC             0x5401      tty_struct        include/linux/tty.h
87
MGSL_MAGIC            0x5401      mgsl_info         drivers/char/synclink.c
88
TTY_DRIVER_MAGIC      0x5402      tty_driver        include/linux/tty_driver.h
89
MGSLPC_MAGIC          0x5402      mgslpc_info       drivers/char/pcmcia/synclink_cs.c
90
TTY_LDISC_MAGIC       0x5403      tty_ldisc         include/linux/tty_ldisc.h
91
USB_SERIAL_MAGIC      0x6702      usb_serial        drivers/usb/serial/usb-serial.h
92
FULL_DUPLEX_MAGIC     0x6969                        drivers/net/tulip/de2104x.c
93
USB_BLUETOOTH_MAGIC   0x6d02      usb_bluetooth     drivers/usb/class/bluetty.c
94
RFCOMM_TTY_MAGIC      0x6d02                        net/bluetooth/rfcomm/tty.c
95
USB_SERIAL_PORT_MAGIC 0x7301      usb_serial_port   drivers/usb/serial/usb-serial.h
96
CG_MAGIC              0x00090255  ufs_cylinder_group include/linux/ufs_fs.h
97
A2232_MAGIC           0x000a2232  gs_port           drivers/char/ser_a2232.h
98
SOLARIS_SOCKET_MAGIC  0x000ADDED  sol_socket_struct arch/sparc64/solaris/socksys.h
99
RPORT_MAGIC           0x00525001  r_port            drivers/char/rocket_int.h
100
LSEMAGIC              0x05091998  lse               drivers/fc4/fc.c
101
GDTIOCTL_MAGIC        0x06030f07  gdth_iowr_str     drivers/scsi/gdth_ioctl.h
102
RIEBL_MAGIC           0x09051990                    drivers/net/atarilance.c
103
RIO_MAGIC             0x12345678  gs_port           drivers/char/rio/rio_linux.c
104
SX_MAGIC              0x12345678  gs_port           drivers/char/sx.h
105
NBD_REQUEST_MAGIC     0x12560953  nbd_request       include/linux/nbd.h
106
RED_MAGIC2            0x170fc2a5  (any)             mm/slab.c
107
BAYCOM_MAGIC          0x19730510  baycom_state      drivers/net/baycom_epp.c
108
ISDN_X25IFACE_MAGIC   0x1e75a2b9  isdn_x25iface_proto_data
109
                                                    drivers/isdn/isdn_x25iface.h
110
ECP_MAGIC             0x21504345  cdkecpsig         include/linux/cdk.h
111
LSOMAGIC              0x27091997  lso               drivers/fc4/fc.c
112
LSMAGIC               0x2a3b4d2a  ls                drivers/fc4/fc.c
113
WANPIPE_MAGIC         0x414C4453  sdla_{dump,exec}  include/linux/wanpipe.h
114
CS_CARD_MAGIC         0x43525553  cs_card           sound/oss/cs46xx.c
115
LABELCL_MAGIC         0x4857434c  labelcl_info_s    include/asm/ia64/sn/labelcl.h
116
ISDN_ASYNC_MAGIC      0x49344C01  modem_info        include/linux/isdn.h
117
CTC_ASYNC_MAGIC       0x49344C01  ctc_tty_info      drivers/s390/net/ctctty.c
118
ISDN_NET_MAGIC        0x49344C02  isdn_net_local_s  drivers/isdn/i4l/isdn_net_lib.h
119
SAVEKMSG_MAGIC2       0x4B4D5347  savekmsg          arch/*/amiga/config.c
120
STLI_BOARDMAGIC       0x4bc6c825  stlibrd           include/linux/istallion.h
121
CS_STATE_MAGIC        0x4c4f4749  cs_state          sound/oss/cs46xx.c
122
SLAB_C_MAGIC          0x4f17a36d  kmem_cache        mm/slab.c
123
COW_MAGIC             0x4f4f4f4d  cow_header_v1     arch/um/drivers/ubd_user.c
124
I810_CARD_MAGIC       0x5072696E  i810_card         sound/oss/i810_audio.c
125
TRIDENT_CARD_MAGIC    0x5072696E  trident_card      sound/oss/trident.c
126
ROUTER_MAGIC          0x524d4157  wan_device        include/linux/wanrouter.h
127
SCC_MAGIC             0x52696368  gs_port           drivers/char/scc.h
128
SAVEKMSG_MAGIC1       0x53415645  savekmsg          arch/*/amiga/config.c
129
GDA_MAGIC             0x58464552  gda               include/asm-mips64/sn/gda.h
130
RED_MAGIC1            0x5a2cf071  (any)             mm/slab.c
131
STL_PORTMAGIC         0x5a7182c9  stlport           include/linux/stallion.h
132
EEPROM_MAGIC_VALUE    0x5ab478d2  lanai_dev         drivers/atm/lanai.c
133
HDLCDRV_MAGIC         0x5ac6e778  hdlcdrv_state     include/linux/hdlcdrv.h
134
EPCA_MAGIC            0x5c6df104  channel           include/linux/epca.h
135
PCXX_MAGIC            0x5c6df104  channel           drivers/char/pcxx.h
136
KV_MAGIC              0x5f4b565f  kernel_vars_s     include/asm-mips64/sn/klkernvars.h
137
I810_STATE_MAGIC      0x63657373  i810_state        sound/oss/i810_audio.c
138
TRIDENT_STATE_MAGIC   0x63657373  trient_state      sound/oss/trident.c
139
M3_CARD_MAGIC         0x646e6f50  m3_card           sound/oss/maestro3.c
140
FW_HEADER_MAGIC       0x65726F66  fw_header         drivers/atm/fore200e.h
141
SLOT_MAGIC            0x67267321  slot              drivers/hotplug/cpqphp.h
142
SLOT_MAGIC            0x67267322  slot              drivers/hotplug/acpiphp.h
143
LO_MAGIC              0x68797548  nbd_device        include/linux/nbd.h
144
OPROFILE_MAGIC        0x6f70726f  super_block       drivers/oprofile/oprofilefs.h
145
M3_STATE_MAGIC        0x734d724d  m3_state          sound/oss/maestro3.c
146
STL_PANELMAGIC        0x7ef621a1  stlpanel          include/linux/stallion.h
147
VMALLOC_MAGIC         0x87654320  snd_alloc_track   sound/core/memory.c
148
KMALLOC_MAGIC         0x87654321  snd_alloc_track   sound/core/memory.c
149
PWC_MAGIC             0x89DC10AB  pwc_device        drivers/usb/media/pwc.h
150
NBD_REPLY_MAGIC       0x96744668  nbd_reply         include/linux/nbd.h
151
STL_BOARDMAGIC        0xa2267f52  stlbrd            include/linux/stallion.h
152
ENI155_MAGIC          0xa54b872d  midway_eprom      drivers/atm/eni.h
153
SCI_MAGIC             0xbabeface  gs_port           drivers/char/sh-sci.h
154
CODA_MAGIC            0xC0DAC0DA  coda_file_info    include/linux/coda_fs_i.h
155
DPMEM_MAGIC           0xc0ffee11  gdt_pci_sram      drivers/scsi/gdth.h
156
STLI_PORTMAGIC        0xe671c7a1  stliport          include/linux/istallion.h
157
YAM_MAGIC             0xF10A7654  yam_port          drivers/net/hamradio/yam.c
158
CCB_MAGIC             0xf2691ad2  ccb               drivers/scsi/ncr53c8xx.c
159
QUEUE_MAGIC_FREE      0xf7e1c9a3  queue_entry       drivers/scsi/arm/queue.c
160
QUEUE_MAGIC_USED      0xf7e1cc33  queue_entry       drivers/scsi/arm/queue.c
161
HTB_CMAGIC            0xFEFAFEF1  htb_class         net/sched/sch_htb.c
162
NMI_MAGIC             0x48414d4d455201 nmi_s        include/asm-mips64/sn/nmi.h
163
 
164
Note that there are also defined special per-driver magic numbers in sound
165
memory management. See include/sound/sndmagic.h for complete list of them. Many
166
OSS sound drivers have their magic numbers constructed from the soundcard PCI
167
ID - these are not listed here as well.
168
 
169
IrDA subsystem also uses large number of own magic numbers, see
170
include/net/irda/irda.h for a complete list of them.
171
 
172
HFS is another larger user of magic numbers - you can find them in
173
fs/hfs/hfs.h.

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.