patch-1.3.99 linux/MAGIC
Next file: linux/MAINTAINERS
Previous file: linux/Documentation/rtc.txt
Back to the patch index
Back to the overall index
- Lines: 106
- Date:
Thu Jan 1 02:00:00 1970
- Orig file:
v1.3.98/linux/MAGIC
- Orig date:
Tue Apr 23 13:57:01 1996
diff -u --recursive --new-file v1.3.98/linux/MAGIC linux/MAGIC
@@ -1,105 +0,0 @@
-This file is a registry of magic numbers which are in use. When you
-add a magic number to a structure, you should also add it to this
-file, since it is best if the magic numbers used by various structures
-are unique.
-
-It is a *very* good idea to protect kernel data structures with magic
-numbers. This allows you to check at run time whether (a) a structure
-has been clobbered, or (b) you've passed the wrong structure to a
-routine. This last is especially useful --- particularly when you are
-passing pointers to structures via a void * pointer. The tty code,
-for example, does this frequently to pass driver-specific and line
-discipline-specific structures back and forth.
-
-The way to use magic numbers is to declare then at the beginning of
-the structure, like so:
-
-struct tty_ldisc {
- int magic;
- ...
-};
-
-Please follow this discipline when you are adding future enhancements
-to the kernel! It has saved me countless hours of debugging,
-especially in the screw cases where an array has been overrun and
-structures following the array have been overwritten. Using this
-discipline, these cases get detected quickly and safely.
-
-You should also register the magic number used by ioctls in the table
-below. This allows ioctls on inappropriate devices to fail, rather than
-doing something completely unexpected. The magic number is the first
-argument to the _IO family of macros (see include/linux/ioctl.h) or
-in general bits 8..15 of the ioctl number. Where ioctls are done on
-devices with a major device number, it is recommended that you use the
-major device number as the ioctl magic value (e.g. hd, lp).
-
- Theodore Ts'o
- 31-Mar-94
-
-The magic table is current to Linux 1.3.35.
-The ioctl table is current to Linux 1.3.35.
-For a complete list of kernel ioctl's, look for 'ioctl-list.X.Y.ZZ' on
-an ftp site, where 'X.Y.ZZ' is the kernel version for the ioctl list.
-
- Michael Chastain
- <mec@duracef.shout.net>
- 17-Oct-95
-
-
-
-
-Magic Name Number Structure File
-===========================================================================
-APM_BIOS_MAGIC 0x4101 struct apm_struct include/linux/apm_bios.h
-CYCLADES_MAGIC 0x4359 struct cyclades_port include/linux/cyclades.h
-FASYNC_MAGIC 0x4601 struct fasync_struct include/linux/fs.h
-PTY_MAGIC 0x5001 struct pty_struct drivers/char/pty.c
-PPP_MAGIC 0x5002 struct ppp_struct include/linux/if_ppp.h
-TTY_MAGIC 0x5401 struct tty_struct include/linux/tty.h
-TTY_DRIVER_MAGIC 0x5402 struct tty_driver include/linux/tty_driver.h
-TTY_LDISC_MAGIC 0x5403 struct tty_ldisc include/linux/tty_ldisc.h
-SERIAL_MAGIC 0x5301 struct async_struct include/linux/serial.h
-SLIP_MAGIC 0x5302 struct slip drivers/net/slip.h
-SCC_MAGIC 0x8530 struct scc_channel include/linux/scc.h
-RISCOM8_MAGIC 0x0907 struct riscom_port drivers/char/riscom8.h
-
-
-
-Ioctl Include File Comments
-========================================================
-0x00 linux/fs.h only FIBMAP, FIGETBSZ
-0x00 linux/random.h codes in 0x010800NN
-0x02 linux/fd.h
-0x03 linux/hdreg.h
-0x04 linux/umsdos_fs.h
-0x06 linux/lp.h
-0x09 linux/md.h
-0x12 linux/fs.h
-0x20 linux/cm206.h
-0x22 linux/scc.h
-'A' linux/apm_bios.h
-'C' linux/soundcard.h
-'I' linux/isdn.h
-'K' linux/kd.h
-'L' linux/loop.h
-'M' linux/soundcard.h
-'P' linux/soundcard.h
-'Q' linux/soundcard.h
-'S' linux/cdrom.h conflict!
-'S' linux/scsi.h conflict!
-'T' linux/soundcard.h conflict!
-'T' asm/termios.h conflict!
-'V' linux/vt.h
-'Y' linux/cyclades.h codes in 0x004359NN
-'a' various, see http://lrcwww.epfl.ch/linux-atm/magic.html
-'f' linux/ext2_fs.h
-'m' linux/mtio.h conflict!
-'m' linux/soundcard.h conflict!
-'n' linux/ncp_fs.h
-'s' linux/cdk.h
-'t' linux/if_ppp.h
-'u' linux/smb_fs.h
-'u' linux/smb_fs.h
-'v' linux/ext2_fs.h
-0x89 asm/socket.h no conflict
-0x89 linux/sockios.h no conflict
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this