{ "functions": [ { "name": "__do_sys_functions", "file": "functions.c", "start_line": 35, "end_line": 39, "scopes": [ { "arg": -1, "calls": [ "__fget_light", "func_baz" ], "facts": [ { "src": { "argument": { "func": "__do_sys_functions", "arg": 0 } }, "dst": { "argument": { "func": "__fget_light", "arg": 0 } } }, { "src": { "return": { "func": "func_baz" } }, "dst": { "return": { "func": "__do_sys_functions" } } } ] } ] }, { "name": "__fget_light", "file": "include/fs.h", "start_line": 19, "end_line": 21, "is_static": true, "scopes": [ { "arg": -1 } ] }, { "name": "alloc_fd", "file": "include/fs.h", "start_line": 14, "end_line": 17, "is_static": true, "scopes": [ { "arg": -1 } ] }, { "name": "atomic_load32", "file": "include/types.h", "start_line": 17, "end_line": 20, "is_static": true, "scopes": [ { "arg": -1 } ] }, { "name": "atomic_load64", "file": "include/types.h", "start_line": 22, "end_line": 25, "scopes": [ { "arg": -1 } ] }, { "name": "from_kuid", "file": "include/fs.h", "start_line": 23, "end_line": 26, "is_static": true, "scopes": [ { "arg": -1 } ] }, { "name": "func_bar", "file": "functions.c", "start_line": 12, "end_line": 15, "is_static": true, "scopes": [ { "arg": -1, "calls": [ "func_foo" ] } ] }, { "name": "func_baz", "file": "functions.c", "start_line": 17, "end_line": 27, "scopes": [ { "arg": -1, "calls": [ "func_foo", "func_bar", "func_bar", "from_kuid", "alloc_fd" ], "facts": [ { "src": { "return": { "func": "from_kuid" } }, "dst": { "return": { "func": "func_baz" } } }, { "src": { "return": { "func": "alloc_fd" } }, "dst": { "return": { "func": "func_baz" } } } ] } ] }, { "name": "func_foo", "file": "functions.c", "start_line": 8, "end_line": 10, "is_static": true, "scopes": [ { "arg": -1 } ] }, { "name": "func_qux", "file": "functions.c", "start_line": 29, "end_line": 33, "scopes": [ { "arg": -1, "calls": [ "alloc_fd" ], "facts": [ { "src": { "return": { "func": "alloc_fd" } }, "dst": { "local": { "name": "fd" } } }, { "src": { "local": { "name": "fd" } }, "dst": { "return": { "func": "func_qux" } } } ] } ] }, { "name": "typing", "file": "functions.c", "start_line": 52, "end_line": 59, "scopes": [ { "arg": -1, "calls": [ "typing1" ], "facts": [ { "src": { "field": { "struct": "Typed", "field": "b" } }, "dst": { "field": { "struct": "Typed", "field": "a" } } }, { "src": { "return": { "func": "typing1" } }, "dst": { "local": { "name": "l" } } }, { "src": { "argument": { "func": "typing", "arg": 1 } }, "dst": { "argument": { "func": "typing1", "arg": 0 } } }, { "src": { "field": { "struct": "Typed", "field": "a" } }, "dst": { "argument": { "func": "typing1", "arg": 1 } } }, { "src": { "local": { "name": "l" } }, "dst": { "field": { "struct": "Typed", "field": "c" } } }, { "src": { "local": { "name": "l" } }, "dst": { "return": { "func": "typing" } } } ] } ] }, { "name": "typing1", "file": "functions.c", "start_line": 47, "end_line": 50, "scopes": [ { "arg": -1, "facts": [ { "src": { "argument": { "func": "typing1", "arg": 0 } }, "dst": { "return": { "func": "typing1" } } } ] } ] } ], "syscalls": [ { "func": "__do_sys_functions", "args": [ { "name": "x", "counted_by": -1, "type": { "int": { "byte_size": 8, "name": "long", "base": "long" } } } ], "source_file": "functions.c" } ] }