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

TOMOYO Linux Cross Reference
Linux/tools/bpf/bpftool/Documentation/bpftool-btf.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 /tools/bpf/bpftool/Documentation/bpftool-btf.rst (Version linux-6.12-rc7) and /tools/bpf/bpftool/Documentation/bpftool-btf.rst (Version linux-4.14.336)


  1 .. SPDX-License-Identifier: (GPL-2.0-only OR B    
  2                                                   
  3 ================                                  
  4 bpftool-btf                                       
  5 ================                                  
  6 ----------------------------------------------    
  7 tool for inspection of BTF data                   
  8 ----------------------------------------------    
  9                                                   
 10 :Manual section: 8                                
 11                                                   
 12 .. include:: substitutions.rst                    
 13                                                   
 14 SYNOPSIS                                          
 15 ========                                          
 16                                                   
 17 **bpftool** [*OPTIONS*] **btf** *COMMAND*         
 18                                                   
 19 *OPTIONS* := { |COMMON_OPTIONS| | { **-B** | *    
 20                                                   
 21 *COMMANDS* := { **dump** | **help** }             
 22                                                   
 23 BTF COMMANDS                                      
 24 =============                                     
 25                                                   
 26 | **bpftool** **btf** { **show** | **list** }     
 27 | **bpftool** **btf dump** *BTF_SRC* [**format    
 28 | **bpftool** **btf help**                        
 29 |                                                 
 30 | *BTF_SRC* := { **id** *BTF_ID* | **prog** *P    
 31 | *FORMAT* := { **raw** | **c** [**unsorted**]    
 32 | *MAP* := { **id** *MAP_ID* | **pinned** *FIL    
 33 | *PROG* := { **id** *PROG_ID* | **pinned** *F    
 34                                                   
 35 DESCRIPTION                                       
 36 ===========                                       
 37 bpftool btf { show | list } [id *BTF_ID*]         
 38     Show information about loaded BTF objects.    
 39     information only about given BTF object, o    
 40     currently loaded on the system.               
 41                                                   
 42     Since Linux 5.8 bpftool is able to discove    
 43     that hold open file descriptors (FDs) agai    
 44     bpftool will automatically emit this infor    
 45                                                   
 46 bpftool btf dump *BTF_SRC*                        
 47     Dump BTF entries from a given *BTF_SRC*.      
 48                                                   
 49     When **id** is specified, BTF object with     
 50     its BTF types emitted.                        
 51                                                   
 52     When **map** is provided, it's expected th    
 53     with BTF types describing key and value. I    
 54     dump only BTF type(s) associated with key     
 55     both key and value (**kv**), or all BTF ty    
 56     object (**all**). If not specified, **kv**    
 57                                                   
 58     When **prog** is provided, it's expected t    
 59     object with BTF types.                        
 60                                                   
 61     When specifying *FILE*, an ELF file is exp    
 62     with well-defined BTF binary format data,     
 63     pahole.                                       
 64                                                   
 65     **format** option can be used to override     
 66     (**raw**) or C-syntax (**c**) output forma    
 67     formatting, the output is sorted by defaul    
 68     to avoid sorting the output.                  
 69                                                   
 70 bpftool btf help                                  
 71     Print short help message.                     
 72                                                   
 73 OPTIONS                                           
 74 =======                                           
 75 .. include:: common_options.rst                   
 76                                                   
 77 -B, --base-btf *FILE*                             
 78     Pass a base BTF object. Base BTF objects a    
 79     objects for kernel modules. To avoid dupli    
 80     required by modules, BTF objects for modul    
 81     built incrementally on top of the kernel (    
 82     base BTF reference should usually point to    
 83                                                   
 84     When the main BTF object to process (for e    
 85     dump) is passed as a *FILE*, bpftool attem    
 86     for the base object, and passing this opti    
 87     BTF object is passed through other handles    
 88     necessary.                                    
 89                                                   
 90 EXAMPLES                                          
 91 ========                                          
 92 **# bpftool btf dump id 1226**                    
 93                                                   
 94 ::                                                
 95                                                   
 96   [1] PTR '(anon)' type_id=2                      
 97   [2] STRUCT 'dummy_tracepoint_args' size=16 v    
 98           'pad' type_id=3 bits_offset=0           
 99           'sock' type_id=4 bits_offset=64         
100   [3] INT 'long long unsigned int' size=8 bits    
101   [4] PTR '(anon)' type_id=5                      
102   [5] FWD 'sock' fwd_kind=union                   
103                                                   
104 This gives an example of default output for al    
105                                                   
106 **$ cat prog.c**                                  
107                                                   
108 ::                                                
109                                                   
110   struct fwd_struct;                              
111                                                   
112   enum my_enum {                                  
113           VAL1 = 3,                               
114           VAL2 = 7,                               
115   };                                              
116                                                   
117   typedef struct my_struct my_struct_t;           
118                                                   
119   struct my_struct {                              
120           const unsigned int const_int_field;     
121           int bitfield_field: 4;                  
122           char arr_field[16];                     
123           const struct fwd_struct *restrict fw    
124           enum my_enum enum_field;                
125           volatile my_struct_t *typedef_ptr_fi    
126   };                                              
127                                                   
128   union my_union {                                
129           int a;                                  
130           struct my_struct b;                     
131   };                                              
132                                                   
133   struct my_struct struct_global_var __attribu    
134           .bitfield_field = 3,                    
135           .enum_field = VAL1,                     
136   };                                              
137   int global_var __attribute__((section("data_    
138                                                   
139   __attribute__((noinline))                       
140   int my_func(union my_union *arg1, int arg2)     
141   {                                               
142           static int static_var __attribute__(    
143           static_var++;                           
144           return static_var;                      
145   }                                               
146                                                   
147 **$ bpftool btf dump file prog.o**                
148                                                   
149 ::                                                
150                                                   
151   [1] PTR '(anon)' type_id=2                      
152   [2] UNION 'my_union' size=48 vlen=2             
153           'a' type_id=3 bits_offset=0             
154           'b' type_id=4 bits_offset=0             
155   [3] INT 'int' size=4 bits_offset=0 nr_bits=3    
156   [4] STRUCT 'my_struct' size=48 vlen=6           
157           'const_int_field' type_id=5 bits_off    
158           'bitfield_field' type_id=3 bits_offs    
159           'arr_field' type_id=8 bits_offset=40    
160           'fwd_field' type_id=10 bits_offset=1    
161           'enum_field' type_id=14 bits_offset=    
162           'typedef_ptr_field' type_id=15 bits_    
163   [5] CONST '(anon)' type_id=6                    
164   [6] INT 'unsigned int' size=4 bits_offset=0     
165   [7] INT 'char' size=1 bits_offset=0 nr_bits=    
166   [8] ARRAY '(anon)' type_id=7 index_type_id=9    
167   [9] INT '__ARRAY_SIZE_TYPE__' size=4 bits_of    
168   [10] RESTRICT '(anon)' type_id=11               
169   [11] PTR '(anon)' type_id=12                    
170   [12] CONST '(anon)' type_id=13                  
171   [13] FWD 'fwd_struct' fwd_kind=union            
172   [14] ENUM 'my_enum' size=4 vlen=2               
173           'VAL1' val=3                            
174           'VAL2' val=7                            
175   [15] PTR '(anon)' type_id=16                    
176   [16] VOLATILE '(anon)' type_id=17               
177   [17] TYPEDEF 'my_struct_t' type_id=4            
178   [18] FUNC_PROTO '(anon)' ret_type_id=3 vlen=    
179           'arg1' type_id=1                        
180           'arg2' type_id=3                        
181   [19] FUNC 'my_func' type_id=18                  
182   [20] VAR 'struct_global_var' type_id=4, link    
183   [21] VAR 'global_var' type_id=3, linkage=glo    
184   [22] VAR 'my_func.static_var' type_id=3, lin    
185   [23] DATASEC 'data_sec' size=0 vlen=3           
186           type_id=20 offset=0 size=48             
187           type_id=21 offset=0 size=4              
188           type_id=22 offset=52 size=4             
189                                                   
190 The following commands print BTF types associa    
191 value, both key and value, and all BTF types,     
192 key and value types will be printed.              
193                                                   
194 **# bpftool btf dump map id 123 key**             
195                                                   
196 ::                                                
197                                                   
198   [39] TYPEDEF 'u32' type_id=37                   
199                                                   
200 **# bpftool btf dump map id 123 value**           
201                                                   
202 ::                                                
203                                                   
204   [86] PTR '(anon)' type_id=87                    
205                                                   
206 **# bpftool btf dump map id 123 kv**              
207                                                   
208 ::                                                
209                                                   
210   [39] TYPEDEF 'u32' type_id=37                   
211   [86] PTR '(anon)' type_id=87                    
212                                                   
213 **# bpftool btf dump map id 123 all**             
214                                                   
215 ::                                                
216                                                   
217   [1] PTR '(anon)' type_id=0                      
218   .                                               
219   .                                               
220   .                                               
221   [2866] ARRAY '(anon)' type_id=52 index_type_    
222                                                   
223 All the standard ways to specify map or progra    
224                                                   
225 **# bpftool btf dump map id 123**                 
226                                                   
227 **# bpftool btf dump map pinned /sys/fs/bpf/ma    
228                                                   
229 **# bpftool btf dump prog id 456**                
230                                                   
231 **# bpftool btf dump prog tag b88e0a09b1d9759d    
232                                                   
233 **# bpftool btf dump prog pinned /sys/fs/bpf/p    
234                                                   
235 |                                                 
236 | **# bpftool btf dump file /sys/kernel/btf/i2    
237 | (or)                                            
238 | **# I2C_SMBUS_ID=$(bpftool btf show -p | jq     
239 | **# bpftool btf dump id ${I2C_SMBUS_ID} -B /    
240                                                   
241 ::                                                
242                                                   
243   [104848] STRUCT 'i2c_smbus_alert' size=40 vl    
244           'alert' type_id=393 bits_offset=0       
245           'ara' type_id=56050 bits_offset=256     
246   [104849] STRUCT 'alert_data' size=12 vlen=3     
247           'addr' type_id=16 bits_offset=0         
248           'type' type_id=56053 bits_offset=32     
249           'data' type_id=7 bits_offset=64         
250   [104850] PTR '(anon)' type_id=104848            
251   [104851] PTR '(anon)' type_id=104849            
252   [104852] FUNC 'i2c_register_spd' type_id=847    
253   [104853] FUNC 'smbalert_driver_init' type_id    
254   [104854] FUNC_PROTO '(anon)' ret_type_id=18     
255           'ara' type_id=56050                     
256   [104855] FUNC 'i2c_handle_smbus_alert' type_    
257   [104856] FUNC 'smbalert_remove' type_id=1048    
258   [104857] FUNC_PROTO '(anon)' ret_type_id=18     
259           'ara' type_id=56050                     
260           'id' type_id=56056                      
261   [104858] FUNC 'smbalert_probe' type_id=10485    
262   [104859] FUNC 'smbalert_work' type_id=9695 l    
263   [104860] FUNC 'smbus_alert' type_id=71367 li    
264   [104861] FUNC 'smbus_do_alert' type_id=84827    
                                                      

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