Linux Kernel 2.2 Documentation:
/usr/src/linux/Documentation/magic-number.txt
magic-number.txt
使用中のマジック・ナンバーの登録簿
[プレインテキスト版]
- 原著作者: Michael Chastain <mec@duracef.shout.net>
- 翻訳者: 山縣 敦 <ayamagat@phys.metro-u.ac.jp>
- バージョン: 2.2.0
- 翻訳日時: 1999/01/29
このファイルは使用中のマジック・ナンバーの登録簿です.構造体にマジック・
ナンバーを含める際にはこのファイルにも加えるべきです.個々の構造体で使
われるマジック・ナンバーは一意なのがよいからです.
マジック・ナンバーでカーネルのデータ構造体を保護するのは「大変」よいこ
とです.(a) 構造体が壊されたか,(b) 誤った構造体をルーチンに渡したか,
実行時に調査することができるようになります.後者は特に(ポインタを構造
体に void * 型ポインタ経由で渡している場合には)有効です.例えば,tty
コードは,ドライバーや行制御に特定な構造体を前後して渡すために,これを
頻繁に行います.
マジック・ナンバーの使用法は,以下のように,構造体の最初で宣言します:
struct tty_ldisc {
int magic;
...
};
カーネルに将来拡張を加える時には,この規則に従ってください!それで膨大
なデバッグ時間が減りました.特に,配列の範囲を越えてしまって,その配列
に続く構造体が上書きされるという奇妙な場合.この規則を使うと,これらの
事例は迅速かつ安全に見つけられます.
Theodore Ts'o
31-Mar-94
Linux 1.3.98 に通用するマジック・テーブル.
Michael Chastain
<mec@duracef.shout.net>
6 May 1996
マジック名 ナンバー 構造体 ファイル
===========================================================================
RISCOM8_MAGIC 0x0907 struct riscom_port drivers/char/riscom8.h
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
SERIAL_MAGIC 0x5301 struct async_struct include/linux/serial.h
SLIP_MAGIC 0x5302 struct slip drivers/net/slip.h
STRIP_MAGIC 0x5303 struct strip drivers/net/strip.c
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
SCC_MAGIC 0x8530 struct scc_channel include/linux/scc.h
ISDN_ASYNC_MAGIC 0x49344C01 modem_info include/linux/isdn.h
ISDN_NET_MAGIC 0x49344C02 isdn_net_ndev include/linux/isdn.h
STLI_BOARDMAGIC 0x4bc6c825 stlibrd_t include/linux/istallion.h
STLI_PORTMAGIC 0xe671c7a1 stliport_t include/linux/istallion.h
STL_PANELMAGIC 0x7ef621a1 stlpanel_t include/linux/stallion.h
STL_BOARDMAGIC 0xa2267f52 stlbrd_t include/linux/stallion.h
STL_PORTMAGIC 0x5a7182c9 stlport_t include/linux/stallion.h
PCXX_MAGIC 0x5c6df104 struct channel drivers/char/pcxx.h
BAYCOM_MAGIC 0x3105bac0 struct baycom_state drivers/char/baycom.c
訳者: 山縣 敦 <ayamagat@phys.metro-u.ac.jp>
Linux カーネル 2.2 付属文書一覧へ戻る