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  }