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  }