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