xref: /dpdk/devtools/cocci/namespace_ethdev.cocci (revision 30a1de105a5f40d77b344a891c4a68f79e815c43)
1@rule1@
2identifier I =~  "^(RTE_FC_|ETH_MQ_|ETH_RSS|DEV_RX_|DEV_TX_|ETH_LINK|RTE_RETA|
3|ETH_DCB|RTE_TUNNEL|ETH_VLAN|ETH_4|ETH_8|ETH_16|ETH_32|ETH_64|RTE_FDIR|RTE_L2|
4|ETH_SPEED|ETH_MIRROR|ETH_VMDQ|ETH_NUM|ETH_QINQ|ETH_MAX_)";
5@@
6I
7
8@ script : python p@
9I << rule1.I;
10J;
11@@
12coccinelle .J="RTE_ETH_" + I[4:];
13
14exception_matches = ["ETH_VLAN_FILTER_CLASSIFY","ETH_VLAN_FILTER_ANY",
15"ETH_VLAN_FILTER_SPEC","ETH_RSS_MODE","ETH_RSS_UPDATE","RTE_FDIR_MODE",
16"RTE_FDIR_NO","RTE_FDIR_REPORT","ETH_MAX_RX_CLIENTS_E1H",
17"ETH_MAX_AGGREGATION_QUEUES_E1","ETH_RSS_ENGINE_NUM","ETH_NUM_MAC_FILTERS",
18"ETH_MAX_NUM_RX_QUEUES_PER_VF_QUAD","ETH_RSS_IND_TABLE_ENTRIES_NUM",
19"ETH_RSS_KEY_SIZE_REGS","ETH_NUM_STATISTIC_COUNTERS","ETH_SPEED_"]
20
21if any(x in I for x in exception_matches):
22        coccinelle .J= I;
23
24@ identifier@
25identifier rule1.I;
26identifier p.J;
27@@
28- I
29+ J
30
31// Below rule for structures only
32@rule2@
33identifier A  =~  "rte_fdir_conf|rte_intr_conf";
34@@
35struct A
36
37@ script : python p2@
38A << rule2.A;
39B;
40@@
41coccinelle .B="rte_eth_" + A[4:];
42
43@ identifier2@
44identifier rule2.A;
45identifier p2.B;
46@@
47- struct A
48+ struct B
49