linux-old/Documentation/magic-number.txt
<<
>>
Prefs
   1This file is a registry of magic numbers which are in use.  When you
   2add a magic number to a structure, you should also add it to this
   3file, since it is best if the magic numbers used by various structures
   4are unique.
   5
   6It is a *very* good idea to protect kernel data structures with magic
   7numbers.  This allows you to check at run time whether (a) a structure
   8has been clobbered, or (b) you've passed the wrong structure to a
   9routine.  This last is especially useful --- particularly when you are
  10passing pointers to structures via a void * pointer.  The tty code,
  11for example, does this frequently to pass driver-specific and line
  12discipline-specific structures back and forth.
  13
  14The way to use magic numbers is to declare then at the beginning of
  15the structure, like so:
  16
  17struct tty_ldisc {
  18        int     magic;
  19        ...
  20};
  21
  22Please follow this discipline when you are adding future enhancements
  23to the kernel!  It has saved me countless hours of debugging,
  24especially in the screwy cases where an array has been overrun and
  25structures following the array have been overwritten.  Using this
  26discipline, these cases get detected quickly and safely.
  27
  28                                        Theodore Ts'o
  29                                        31 Mar 94
  30
  31The magic table is current to Linux 2.1.55.
  32
  33                                        Michael Chastain
  34                                        <mailto:mec@shout.net>
  35                                        22 Sep 1997
  36
  37Now it should be up to date with Linux 2.1.112. Because
  38we are in feature freeze time it is very unlikely that
  39something will change before 2.2.x. The entries are
  40sorted by number field.
  41
  42                                        Krzysztof G. Baranowski
  43                                        <mailto: kgb@knm.org.pl>
  44                                        29 Jul 1998
  45
  46Magic Name            Number      Structure            File
  47===========================================================================
  48PG_MAGIC              'P'         pg_{read,write}_hdr include/linux/pg.h
  49MKISS_DRIVER_MAGIC    0x04bf      mkiss_channel     drivers/net/mkiss.h
  50RISCOM8_MAGIC         0x0907      riscom_port       drivers/char/riscom8.h
  51APM_BIOS_MAGIC        0x4101      apm_user          arch/i386/kernel/apm.c
  52CYCLADES_MAGIC        0x4359      cyclades_port     include/linux/cyclades.h
  53FASYNC_MAGIC          0x4601      fasync_struct     include/linux/fs.h
  54PTY_MAGIC             0x5001      (none at the moment)
  55                                                    drivers/char/pty.c
  56PPP_MAGIC             0x5002      ppp               include/linux/if_ppp.h
  57SERIAL_MAGIC          0x5301      async_struct      include/linux/serial.h
  58SSTATE_MAGIC          0x5302      serial_state      include/linux/serial.h
  59SLIP_MAGIC            0x5302      slip              drivers/net/slip.h
  60STRIP_MAGIC           0x5303      strip             drivers/net/strip.c
  61X25_ASY_MAGIC         0x5303      x25_asy           drivers/net/x25_asy.h
  62SIXPACK_MAGIC         0x5304      sixpack           drivers/net/hamradio/6pack.h
  63AX25_MAGIC            0x5316      ax_disp           drivers/net/mkiss.h
  64ESP_MAGIC             0x53ee      esp_struct        drivers/char/esp.h
  65TTY_MAGIC             0x5401      tty_struct        include/linux/tty.h
  66TTY_DRIVER_MAGIC      0x5402      tty_driver        include/linux/tty_driver.h
  67TTY_LDISC_MAGIC       0x5403      tty_ldisc         include/linux/tty_ldisc.h
  68SCC_MAGIC             0x8530      scc_channel       include/linux/scc.h
  69SPECIALIX_MAGIC       0x0907      specialix_port    drivers/char/specialix_io8.h
  70CG_MAGIC              0x090255    ufs_cylinder_group include/linux/ufs_fs.h
  71RPORT_MAGIC           0x525001    r_port            drivers/char/rocket_int.h
  72GDTIOCTL_MAGIC        0x06030f07  gdth_iowr_str     drivers/scsi/gdth_ioctl.h
  73NBD_REQUEST_MAGIC     0x12560953  nbd_request       include/linux/nbd.h
  74SLAB_RED_MAGIC2       0x170fc2a5  (any)             mm/slab.c
  75BAYCOM_MAGIC          0x19730510  baycom_state      drivers/net/baycom_epp.c
  76ISDN_X25IFACE_MAGIC   0x1e75a2b9  isdn_x25iface_proto_data
  77                                                    drivers/isdn/isdn_x25iface.h
  78ECP_MAGIC             0x21504345  cdkecpsig         include/linux/cdk.h
  79LSMAGIC               0x2a3b4d2a  ls                drivers/fc4/fc.c
  80LSOMAGIC              0x2a3c4e3c  lso               drivers/fc4/fc.c
  81WANPIPE_MAGIC         0x414C4453  sdla_{dump,exec}  include/linux/wanpipe.h
  82CODA_CNODE_MAGIC      0x47114711  coda_inode_info   include/linux/coda_fs_i.h
  83ISDN_ASYNC_MAGIC      0x49344C01  modem_info        include/linux/isdn.h
  84ISDN_NET_MAGIC        0x49344C02  isdn_net_local_s  include/linux/isdn.h
  85STLI_BOARDMAGIC       0x4bc6c825  stlibrd           include/linux/istallion.h
  86SLAB_C_MAGIC          0x4f17a36d  kmem_cache_s      mm/slab.c
  87ROUTER_MAGIC          0x524d4157  wan_device        include/linux/wanrouter.h
  88SLAB_RED_MAGIC1       0x5a2cf071  (any)             mm/slab.c
  89STL_PORTMAGIC         0x5a7182c9  stlport           include/linux/stallion.h
  90HDLCDRV_MAGIC         0x5ac6e778  hdlcdrv_state     include/linux/hdlcdrv.h
  91EPCA_MAGIC            0x5c6df104  channel           include/linux/epca.h
  92PCXX_MAGIC            0x5c6df104  channel           drivers/char/pcxx.h
  93LO_MAGIC              0x68797548  nbd_device        include/linux/nbd.h
  94STL_PANELMAGIC        0x7ef621a1  stlpanel          include/linux/stallion.h
  95NBD_REPLY_MAGIC       0x96744668  nbd_reply         include/linux/nbd.h
  96STL_BOARDMAGIC        0xa2267f52  stlbrd            include/linux/stallion.h
  97SLAB_MAGIC_ALLOC      0xa5c32f2b  kmem_slab_s       mm/slab.c
  98SLAB_MAGIC_DESTROYED  0xb2f23c5a  kmem_slab_s       mm/slab.c
  99STLI_PORTMAGIC        0xe671c7a1  stliport          include/linux/istallion.h
 100CCB_MAGIC             0xf2691ad2  ccb               drivers/scsi/ncr53c8xx.c
 101
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.