About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / zh_CN / sparse.txt




Custom Search

Based on kernel version 3.9. Page generated on 2013-05-02 23:17 EST.

1	Chinese translated version of Documentation/sparse.txt
2	
3	If you have any comment or update to the content, please contact the
4	original document maintainer directly.  However, if you have a problem
5	communicating in English you can also ask the Chinese maintainer for
6	help.  Contact the Chinese maintainer if this translation is outdated
7	or if there is a problem with the translation.
8	
9	Chinese maintainer: Li Yang <leo@zh-kernel.org>
10	---------------------------------------------------------------------
11	Documentation/sparse.txt 的中文翻译
12	
13	如果想评论或更新本文的内容,请直接è”系原文档的维护者。如果你使用英文
14	äº¤æµæœ‰å›°éš¾çš„è¯ï¼Œä¹Ÿå¯ä»¥å‘中文版维护者求助。如果本翻译更新ä¸åŠæ—¶æˆ–者翻
15	译存在问题,请è”系中文版维护者。
16	
17	中文版维护者: æŽé˜³  Li Yang <leo@zh-kernel.org>
18	中文版翻译者: æŽé˜³  Li Yang <leo@zh-kernel.org>
19	
20	
21	以下为正文
22	---------------------------------------------------------------------
23	
24	Copyright 2004 Linus Torvalds
25	Copyright 2004 Pavel Machek <pavel@ucw.cz>
26	Copyright 2006 Bob Copeland <me@bobcopeland.com>
27	
28	使用 sparse 工具åšç±»åž‹æ£€æŸ¥
29	~~~~~~~~~~~~~~~~~~~~~~~~~~
30	
31	"__bitwise" 是一ç§ç±»åž‹å±žæ€§ï¼Œæ‰€ä»¥ä½ åº”该这样使用它:
32	
33	        typedef int __bitwise pm_request_t;
34	
35	        enum pm_request {
36	                PM_SUSPEND = (__force pm_request_t) 1,
37	                PM_RESUME = (__force pm_request_t) 2
38	        };
39	
40	这样会使 PM_SUSPEND å’Œ PM_RESUME æˆä¸ºä½æ–¹å¼(bitwise)整数(使用"__force"
41	是因为 sparse 会抱怨改å˜ä½æ–¹å¼çš„类型转æ¢ï¼Œä½†æ˜¯è¿™é‡Œæˆ‘们确实需è¦å¼ºåˆ¶è¿›è¡Œè½¬
42	æ¢ï¼‰ã€‚而且因为所有枚举值都使用了相åŒçš„类型,这里的"enum pm_request"也将
43	会使用那个类型åšä¸ºåº•层实现。
44	
45	而且使用 gcc 编译的时候,所有的 __bitwise/__force 都会消失,最åŽåœ¨ gcc
46	看æ¥å®ƒä»¬åªä¸è¿‡æ˜¯æ™®é€šçš„æ•´æ•°ã€‚
47	
48	å¦ç™½æ¥è¯´ï¼Œä½ å¹¶ä¸éœ€è¦ä½¿ç”¨æžšä¸¾ç±»åž‹ã€‚上é¢é‚£äº›å®žé™…都å¯ä»¥æµ“缩æˆä¸€ä¸ªç‰¹æ®Šçš„"int
49	__bitwise"类型。
50	
51	所以更简å•的办法åªè¦è¿™æ ·åšï¼š
52	
53		typedef int __bitwise pm_request_t;
54	
55		#define PM_SUSPEND ((__force pm_request_t) 1)
56		#define PM_RESUME ((__force pm_request_t) 2)
57	
58	现在你就有了严格的类型检查所需è¦çš„æ‰€æœ‰åŸºç¡€æž¶æž„。
59	
60	ä¸€ä¸ªå°æé†’ï¼šå¸¸æ•°æ•´æ•°"0"是特殊的。你å¯ä»¥ç›´æŽ¥æŠŠå¸¸æ•°é›¶å½“ä½œä½æ–¹å¼æ•´æ•°ä½¿ç”¨è€Œ
61	ä¸ç”¨æ‹…心 sparse 会抱怨。这是因为"bitwise"(æ°å¦‚å…¶å)是用æ¥ç¡®ä¿ä¸åŒä½æ–¹
62	å¼ç±»åž‹ä¸ä¼šè¢«å¼„混(å°å°¾æ¨¡å¼ï¼Œå¤§å°¾æ¨¡å¼ï¼Œcpu尾模å¼ï¼Œæˆ–者其他),对他们æ¥è¯´
63	常数"0"确实是特殊的。
64	
65	èŽ·å– sparse 工具
66	~~~~~~~~~~~~~~~~
67	
68	ä½ å¯ä»¥ä»Ž Sparse çš„ä¸»é¡µèŽ·å–æœ€æ–°çš„å‘布版本:
69	
70		http://www.kernel.org/pub/linux/kernel/people/josh/sparse/
71	
72	或者,你也å¯ä»¥ä½¿ç”¨ git 克隆最新的 sparse å¼€å‘版本:
73	
74		git://git.kernel.org/pub/scm/linux/kernel/git/josh/sparse.git
75	
76	DaveJ 把æ¯å°æ—¶è‡ªåŠ¨ç”Ÿæˆçš„ git æºç æ ‘ tar 包放在以下地å€ï¼š
77	
78		http://www.codemonkey.org.uk/projects/git-snapshots/sparse/
79	
80	一旦你下载了æºç ï¼Œåªè¦ä»¥æ™®é€šç”¨æˆ·èº«ä»½è¿è¡Œï¼š
81	
82		make
83		make install
84	
85	它将会被自动安装到你的 ~/bin 目录下。
86	
87	使用 sparse 工具
88	~~~~~~~~~~~~~~~~
89	
90	用"make C=1"命令æ¥ç¼–è¯‘å†…æ ¸ï¼Œä¼šå¯¹æ‰€æœ‰é‡æ–°ç¼–译的 C 文件使用 sparse 工具。
91	或者使用"make C=2"命令,无论文件是å¦è¢«é‡æ–°ç¼–译都会对其使用 sparse 工具。
92	如果你已ç»ç¼–译了内核,用åŽä¸€ç§æ–¹å¼å¯ä»¥å¾ˆå¿«åœ°æ£€æŸ¥æ•´ä¸ªæºç æ ‘。
93	
94	make çš„å¯é€‰å˜é‡ CHECKFLAGS å¯ä»¥ç”¨æ¥å‘ sparse 工具传递傿•°ã€‚编译系统会自
95	åŠ¨å‘ sparse 工具传递 -Wbitwise 傿•°ã€‚ä½ å¯ä»¥å®šä¹‰ __CHECK_ENDIAN__ æ¥è¿›è¡Œ
96	大å°å°¾æ£€æŸ¥ã€‚
97	
98		make C=2 CHECKFLAGS="-D__CHECK_ENDIAN__"
99	
100	这些检查默认都是被关闭的,因为他们通常会产生大é‡çš„警告。
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.