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

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/filesystems/debugfs.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 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/filesystems/debugfs.rst (Version linux-6.12-rc7) and /Documentation/translations/zh_CN/filesystems/debugfs.rst (Version linux-2.6.0)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 .. include:: ../disclaimer-zh_CN.rst              
  4                                                   
  5 :Original: Documentation/filesystems/debugfs.r    
  6                                                   
  7 =======                                           
  8 Debugfs                                           
  9 =======                                           
 10                                                   
 11 译者                                            
 12 ::                                                
 13                                                   
 14         中文版维护者: 罗楚成 Chuche<    
 15         中文版翻译者: 罗楚成 Chuche<    
 16         中文版校译者:  罗楚成 Chuchen<    
 17                                                   
 18                                                   
 19                                                   
 20 版权所有2020 罗楚成 <luochucheng@vivo.co    
 21                                                   
 22                                                   
 23 Debugfs是内核开发人员在用户空间获    
 24 信息。也不像sysfs,具有严格的“每    
 25 人员可以在这里放置他们想要的任    
 26 从理论上讲,debugfs导出文件的时候    
 27 简单。即使是debugfs接口,也最好根    
 28                                                   
 29                                                   
 30 Debugfs通常使用以下命令安装::           
 31                                                   
 32     mount -t debugfs none /sys/kernel/debug       
 33                                                   
 34 (或等效的/etc/fstab行)。                
 35 debugfs根目录默认仅可由root用户访    
 36 和“ mode”挂载选项。请注意,debug    
 37                                                   
 38 使用debugfs的代码应包含<linux/debugfs.    
 39 一组debugfs文件::                             
 40                                                   
 41     struct dentry *debugfs_create_dir(const ch    
 42                                                   
 43 如果成功,此调用将在指定的父目    
 44 则会在debugfs根目录中创建。创建目    
 45 该dentry结构体的指针可用于在目录    
 46 (-ERROR)返回值表明出错。如果返    
 47 支持的情况下构建的,并且下述函    
 48                                                   
 49 在debugfs目录中创建文件的最通用方    
 50                                                   
 51     struct dentry *debugfs_create_file(const c    
 52                                        struct     
 53                                        const s    
 54                                                   
 55 在这里,name是要创建的文件的名称    
 56 应该保存文件的目录,data将存储在    
 57 一组文件操作函数,这些函数中实    
 58 write()操作应提供;其他可以根    
 59 的dentry指针,错误时返回ERR_PTR(-ER    
 60 (-ENODEV)。创建一个初始大小的文    
 61                                                   
 62     struct dentry *debugfs_create_file_size(co    
 63                                 struct dentry     
 64                                 const struct f    
 65                                 loff_t file_si    
 66                                                   
 67 file_size是初始文件大小。其他参数    
 68                                                   
 69 在许多情况下,没必要自己去创建    
 70 了许多帮助函数。包含单个整数值    
 71                                                   
 72     void debugfs_create_u8(const char *name, u    
 73                            struct dentry *pare    
 74     void debugfs_create_u16(const char *name,     
 75                             struct dentry *par    
 76     struct dentry *debugfs_create_u32(const ch    
 77                                       struct d    
 78     void debugfs_create_u64(const char *name,     
 79                             struct dentry *par    
 80                                                   
 81 这些文件支持读取和写入给定值。    
 82 参数位。这些文件中的值以十进制    
 83 替代::                                          
 84                                                   
 85     void debugfs_create_x8(const char *name, u    
 86                            struct dentry *pare    
 87     void debugfs_create_x16(const char *name,     
 88                             struct dentry *par    
 89     void debugfs_create_x32(const char *name,     
 90                             struct dentry *par    
 91     void debugfs_create_x64(const char *name,     
 92                             struct dentry *par    
 93                                                   
 94 这些功能只有在开发人员知道导出    
 95 有不同的宽度,这样会使情况变得    
 96                                                   
 97     void debugfs_create_size_t(const char *nam    
 98                                struct dentry *    
 99                                                   
100 不出所料,此函数将创建一个debugfs    
101                                                   
102 同样地,也有导出无符号长整型变    
103                                                   
104     struct dentry *debugfs_create_ulong(const     
105                                         struct    
106                                         unsign    
107     void debugfs_create_xul(const char *name,     
108                             struct dentry *par    
109                                                   
110 布尔值可以通过以下方式放置在debu    
111                                                   
112     struct dentry *debugfs_create_bool(const c    
113                                        struct     
114                                                   
115                                                   
116 读取结果文件将产生Y(对于非零值    
117 值或1或0。任何其他输入将被忽略    
118                                                   
119 同样,atomic_t类型的值也可以放置    
120                                                   
121     void debugfs_create_atomic_t(const char *n    
122                                  struct dentry    
123                                                   
124 读取此文件将获得atomic_t值,写入    
125                                                   
126 另一个选择是通过以下结构体和函    
127                                                   
128     struct debugfs_blob_wrapper {                 
129         void *data;                               
130         unsigned long size;                       
131     };                                            
132                                                   
133     struct dentry *debugfs_create_blob(const c    
134                                        struct     
135                                        struct     
136                                                   
137 读取此文件将返回由指针指向debugfs    
138 作为一种返回几行(静态)格式化    
139 似乎在主线中没有任何代码这样做    
140 所有文件是只读的。                       
141                                                   
142 如果您要转储一个寄存器块(在开    
143 到主线中。Debugfs提供两个函数:一    
144 插入一个顺序文件中::                     
145                                                   
146     struct debugfs_reg32 {                        
147         char *name;                               
148         unsigned long offset;                     
149     };                                            
150                                                   
151     struct debugfs_regset32 {                     
152         struct debugfs_reg32 *regs;               
153         int nregs;                                
154         void __iomem *base;                       
155     };                                            
156                                                   
157     struct dentry *debugfs_create_regset32(con    
158                                      struct de    
159                                      struct de    
160                                                   
161     void debugfs_print_regs32(struct seq_file     
162                          int nregs, void __iom    
163                                                   
164 “base”参数可能为0,但您可能需    
165 名称(宏)是寄存器块在基址上的    
166                                                   
167 如果要在debugfs中转储u32数组,可以    
168                                                   
169      void debugfs_create_u32_array(const char     
170                         struct dentry *parent,    
171                         u32 *array, u32 elemen    
172                                                   
173 “array”参数提供数据,而“elements    
174 大小无法更改。                             
175                                                   
176 有一个函数来创建与设备相关的seq_    
177                                                   
178    struct dentry *debugfs_create_devm_seqfile(    
179                                 const char *na    
180                                 struct dentry     
181                                 int (*read_fn)    
182                                         void *    
183                                                   
184 “dev”参数是与此debugfs文件相关的    
185 打印seq_file内容的时候被回调。         
186                                                   
187 还有一些其他的面向目录的函数::      
188                                                   
189     struct dentry *debugfs_rename(struct dentr    
190                                   struct dentr    
191                                   struct dentr    
192                                   const char *    
193                                                   
194     struct dentry *debugfs_create_symlink(cons    
195                                           stru    
196                                           cons    
197                                                   
198 调用debugfs_rename()将为现有的debugfs    
199 函数调用之前不能存在;返回值为o    
200 debugfs_create_symlink()创建符号链接    
201                                                   
202 所有debugfs用户必须考虑的一件事是    
203                                                   
204 debugfs不会自动清除在其中创建的任    
205 情况下卸载模块,结果将会遗留很    
206 用户-至少是那些可以作为模块构建    
207 所有文件和目录。一份文件可以通    
208                                                   
209     void debugfs_remove(struct dentry *dentry)    
210                                                   
211 dentry值可以为NULL或错误值,在这种    
212                                                   
213 很久以前,内核开发者使用debugfs时    
214 文件都可以被清理掉。但是,现在d    
215                                                   
216     void debugfs_remove_recursive(struct dentr    
217                                                   
218 如果将对应顶层目录的dentry传递给    
219                                                   
220 注释:                                         
221 [1] http://lwn.net/Articles/309298/               
                                                      

~ [ 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