github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/tools/syz-declextract/testdata/functions.c.json (about) 1 { 2 "functions": [ 3 { 4 "name": "__do_sys_functions", 5 "file": "functions.c", 6 "start_line": 31, 7 "end_line": 34, 8 "scopes": [ 9 { 10 "arg": -1, 11 "calls": [ 12 "__fget_light", 13 "func_baz" 14 ], 15 "facts": [ 16 { 17 "src": { 18 "argument": { 19 "func": "__do_sys_functions", 20 "arg": 0 21 } 22 }, 23 "dst": { 24 "argument": { 25 "func": "__fget_light", 26 "arg": 0 27 } 28 } 29 }, 30 { 31 "src": { 32 "return": { 33 "func": "func_baz" 34 } 35 }, 36 "dst": { 37 "return": { 38 "func": "__do_sys_functions" 39 } 40 } 41 } 42 ] 43 } 44 ] 45 }, 46 { 47 "name": "__fget_light", 48 "file": "include/fs.h", 49 "start_line": 18, 50 "end_line": 19, 51 "is_static": true, 52 "scopes": [ 53 { 54 "arg": -1 55 } 56 ] 57 }, 58 { 59 "name": "alloc_fd", 60 "file": "include/fs.h", 61 "start_line": 14, 62 "end_line": 16, 63 "is_static": true, 64 "scopes": [ 65 { 66 "arg": -1 67 } 68 ] 69 }, 70 { 71 "name": "atomic_load32", 72 "file": "include/types.h", 73 "start_line": 17, 74 "end_line": 19, 75 "is_static": true, 76 "scopes": [ 77 { 78 "arg": -1 79 } 80 ] 81 }, 82 { 83 "name": "atomic_load64", 84 "file": "include/types.h", 85 "start_line": 21, 86 "end_line": 23, 87 "scopes": [ 88 { 89 "arg": -1 90 } 91 ] 92 }, 93 { 94 "name": "from_kuid", 95 "file": "include/fs.h", 96 "start_line": 21, 97 "end_line": 23, 98 "is_static": true, 99 "scopes": [ 100 { 101 "arg": -1 102 } 103 ] 104 }, 105 { 106 "name": "func_bar", 107 "file": "functions.c", 108 "start_line": 11, 109 "end_line": 13, 110 "is_static": true, 111 "scopes": [ 112 { 113 "arg": -1, 114 "calls": [ 115 "func_foo" 116 ] 117 } 118 ] 119 }, 120 { 121 "name": "func_baz", 122 "file": "functions.c", 123 "start_line": 15, 124 "end_line": 24, 125 "scopes": [ 126 { 127 "arg": -1, 128 "calls": [ 129 "func_foo", 130 "func_bar", 131 "func_bar", 132 "from_kuid", 133 "alloc_fd" 134 ], 135 "facts": [ 136 { 137 "src": { 138 "return": { 139 "func": "from_kuid" 140 } 141 }, 142 "dst": { 143 "return": { 144 "func": "func_baz" 145 } 146 } 147 }, 148 { 149 "src": { 150 "return": { 151 "func": "alloc_fd" 152 } 153 }, 154 "dst": { 155 "return": { 156 "func": "func_baz" 157 } 158 } 159 } 160 ] 161 } 162 ] 163 }, 164 { 165 "name": "func_foo", 166 "file": "functions.c", 167 "start_line": 8, 168 "end_line": 9, 169 "is_static": true, 170 "scopes": [ 171 { 172 "arg": -1 173 } 174 ] 175 }, 176 { 177 "name": "func_qux", 178 "file": "functions.c", 179 "start_line": 26, 180 "end_line": 29, 181 "scopes": [ 182 { 183 "arg": -1, 184 "calls": [ 185 "alloc_fd" 186 ], 187 "facts": [ 188 { 189 "src": { 190 "return": { 191 "func": "alloc_fd" 192 } 193 }, 194 "dst": { 195 "local": { 196 "name": "fd" 197 } 198 } 199 }, 200 { 201 "src": { 202 "local": { 203 "name": "fd" 204 } 205 }, 206 "dst": { 207 "return": { 208 "func": "func_qux" 209 } 210 } 211 } 212 ] 213 } 214 ] 215 }, 216 { 217 "name": "typing", 218 "file": "functions.c", 219 "start_line": 46, 220 "end_line": 52, 221 "scopes": [ 222 { 223 "arg": -1, 224 "calls": [ 225 "typing1" 226 ], 227 "facts": [ 228 { 229 "src": { 230 "field": { 231 "struct": "Typed", 232 "field": "b" 233 } 234 }, 235 "dst": { 236 "field": { 237 "struct": "Typed", 238 "field": "a" 239 } 240 } 241 }, 242 { 243 "src": { 244 "return": { 245 "func": "typing1" 246 } 247 }, 248 "dst": { 249 "local": { 250 "name": "l" 251 } 252 } 253 }, 254 { 255 "src": { 256 "argument": { 257 "func": "typing", 258 "arg": 1 259 } 260 }, 261 "dst": { 262 "argument": { 263 "func": "typing1", 264 "arg": 0 265 } 266 } 267 }, 268 { 269 "src": { 270 "field": { 271 "struct": "Typed", 272 "field": "a" 273 } 274 }, 275 "dst": { 276 "argument": { 277 "func": "typing1", 278 "arg": 1 279 } 280 } 281 }, 282 { 283 "src": { 284 "local": { 285 "name": "l" 286 } 287 }, 288 "dst": { 289 "field": { 290 "struct": "Typed", 291 "field": "c" 292 } 293 } 294 }, 295 { 296 "src": { 297 "local": { 298 "name": "l" 299 } 300 }, 301 "dst": { 302 "return": { 303 "func": "typing" 304 } 305 } 306 } 307 ] 308 } 309 ] 310 }, 311 { 312 "name": "typing1", 313 "file": "functions.c", 314 "start_line": 42, 315 "end_line": 44, 316 "scopes": [ 317 { 318 "arg": -1, 319 "facts": [ 320 { 321 "src": { 322 "argument": { 323 "func": "typing1", 324 "arg": 0 325 } 326 }, 327 "dst": { 328 "return": { 329 "func": "typing1" 330 } 331 } 332 } 333 ] 334 } 335 ] 336 } 337 ], 338 "syscalls": [ 339 { 340 "func": "__do_sys_functions", 341 "args": [ 342 { 343 "name": "x", 344 "counted_by": -1, 345 "type": { 346 "int": { 347 "byte_size": 8, 348 "name": "long", 349 "base": "long" 350 } 351 } 352 } 353 ], 354 "source_file": "functions.c" 355 } 356 ] 357 }