~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/process/magic-number.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. include:: ../disclaimer-zh_CN.rst
  2 
  3 :Original: Documentation/staging/magic-number.rst
  4 
  5 :翻译:
  6 
  7  贾威威 Jia Wei Wei <harryxiyou@gmail.com>
  8 
  9 :校译:
 10 
 11  司延腾 Yanteng Si <siyanteng@loongson.cn>
 12 
 13 Linux 魔术数
 14 ============
 15 
 16 这个文件是有关当前使用的魔术值注册表。当你给一个结构体添加了一个魔术值,你也
 17 应该把这个魔术值添加到这个文件,因为我们最好把用于各种结构体的魔术值统一起来。
 18 
 19 使用魔术值来保护内核数据结构是一个 **非常好的主意** 。这就允许你在运行时检
 20 查一个结构体(a)是否已经被攻击,或者(b)你已经给一个例程传递了一个错误的结构
 21 体。最后一种情况特别地有用---特别是当你通过一个空指针指向结构体的时候。例如,
 22 tty源码经常通过特定驱动使用这种方法用来反复地排列特定方面的结构体。
 23 
 24 使用魔术值的方法是在结构体的开头声明它们,如下::
 25 
 26         struct tty_ldisc {
 27                 int     magic;
 28                 ...
 29         };
 30 
 31 当你以后给内核添加增强功能的时候,请遵守这条规则!这样就会节省数不清的调试
 32 时间,特别是一些古怪的情况,例如,数组超出范围并且覆盖写了超出部分。利用这
 33 个规则,这些情况可以被快速地,安全地检测到这些案例。
 34 
 35 变更日志::
 36 
 37                                         Theodore Ts'o
 38                                         31 Mar 94
 39 
 40   给当前的Linux 2.1.55添加魔术表。
 41 
 42                                         Michael Chastain
 43                                         <mailto:mec@shout.net>
 44                                         22 Sep 1997
 45 
 46   现在应该最新的Linux 2.1.112.因为在特性冻结期间,不能在2.2.x前改变任
 47   何东西。这些条目被数域所排序。
 48 
 49                                         Krzysztof G.Baranowski
 50                                         <mailto: kgb@knm.org.pl>
 51                                         29 Jul 1998
 52 
 53   更新魔术表到Linux 2.5.45。刚好越过特性冻结,但是有可能还会有一些新的魔
 54   术值在2.6.x之前融入到内核中。
 55 
 56                                         Petr Baudis
 57                                         <pasky@ucw.cz>
 58                                         03 Nov 2002
 59 
 60   更新魔术表到Linux 2.5.74。
 61 
 62                                         Fabian Frederick
 63                                         <ffrederick@users.sourceforge.net>
 64                                         09 Jul 2003
 65 
 66 ===================== ================ ======================== ==========================================
 67 魔术数名              数字             结构                     文件
 68 ===================== ================ ======================== ==========================================
 69 PG_MAGIC              'P'              pg_{read,write}_hdr      ``include/linux/pg.h``
 70 APM_BIOS_MAGIC        0x4101           apm_user                 ``arch/x86/kernel/apm_32.c``
 71 FASYNC_MAGIC          0x4601           fasync_struct            ``include/linux/fs.h``
 72 SLIP_MAGIC            0x5302           slip                     ``drivers/net/slip.h``
 73 BAYCOM_MAGIC          0x19730510       baycom_state             ``drivers/net/baycom_epp.c``
 74 HDLCDRV_MAGIC         0x5ac6e778       hdlcdrv_state            ``include/linux/hdlcdrv.h``
 75 KV_MAGIC              0x5f4b565f       kernel_vars_s            ``arch/mips/include/asm/sn/klkernvars.h``
 76 CODA_MAGIC            0xC0DAC0DA       coda_file_info           ``fs/coda/coda_fs_i.h``
 77 YAM_MAGIC             0xF10A7654       yam_port                 ``drivers/net/hamradio/yam.c``
 78 CCB_MAGIC             0xf2691ad2       ccb                      ``drivers/scsi/ncr53c8xx.c``
 79 QUEUE_MAGIC_FREE      0xf7e1c9a3       queue_entry              ``drivers/scsi/arm/queue.c``
 80 QUEUE_MAGIC_USED      0xf7e1cc33       queue_entry              ``drivers/scsi/arm/queue.c``
 81 NMI_MAGIC             0x48414d4d455201 nmi_s                    ``arch/mips/include/asm/sn/nmi.h``
 82 ===================== ================ ======================== ==========================================

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php