1*76c59264Slogwang//
2*76c59264Slogwang// Replace explicit packet offset computations with rte_pktmbuf_mtod_offset().
3*76c59264Slogwang//
4*76c59264Slogwang@disable paren@
5*76c59264Slogwangtypedef uint8_t;
6*76c59264Slogwangexpression M, O;
7*76c59264Slogwang@@
8*76c59264Slogwang(
9*76c59264Slogwang- rte_pktmbuf_mtod(M, char *) + O
10*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, char *, O)
11*76c59264Slogwang|
12*76c59264Slogwang- rte_pktmbuf_mtod(M, char *) - O
13*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, char *, -O)
14*76c59264Slogwang|
15*76c59264Slogwang- rte_pktmbuf_mtod(M, unsigned char *) + O
16*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, unsigned char *, O)
17*76c59264Slogwang|
18*76c59264Slogwang- rte_pktmbuf_mtod(M, unsigned char *) - O
19*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, unsigned char *, -O)
20*76c59264Slogwang|
21*76c59264Slogwang- rte_pktmbuf_mtod(M, uint8_t *) + O
22*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, uint8_t *, O)
23*76c59264Slogwang|
24*76c59264Slogwang- rte_pktmbuf_mtod(M, uint8_t *) - O
25*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, uint8_t *, -O)
26*76c59264Slogwang)
27*76c59264Slogwang
28*76c59264Slogwang
29*76c59264Slogwang//
30*76c59264Slogwang// Fold subsequent offset terms into pre-existing offset used in
31*76c59264Slogwang// rte_pktmbuf_mtod_offset().
32*76c59264Slogwang//
33*76c59264Slogwang@disable paren@
34*76c59264Slogwangexpression M, O1, O2;
35*76c59264Slogwang@@
36*76c59264Slogwang(
37*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, char *, O1) + O2
38*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, char *, O1 + O2)
39*76c59264Slogwang|
40*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, char *, O1) - O2
41*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, char *, O1 - O2)
42*76c59264Slogwang|
43*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, unsigned char *, O1) + O2
44*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, unsigned char *, O1 + O2)
45*76c59264Slogwang|
46*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, unsigned char *, O1) - O2
47*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, unsigned char *, O1 - O2)
48*76c59264Slogwang|
49*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, uint8_t *, O1) + O2
50*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, uint8_t *, O1 + O2)
51*76c59264Slogwang|
52*76c59264Slogwang- rte_pktmbuf_mtod_offset(M, uint8_t *, O1) - O2
53*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, uint8_t *, O1 - O2)
54*76c59264Slogwang)
55*76c59264Slogwang
56*76c59264Slogwang
57*76c59264Slogwang//
58*76c59264Slogwang// Cleanup rules.  Fold in double casts, remove unnecessary parenthesis, etc.
59*76c59264Slogwang//
60*76c59264Slogwang@disable paren@
61*76c59264Slogwangexpression M, O;
62*76c59264Slogwangtype C, T;
63*76c59264Slogwang@@
64*76c59264Slogwang(
65*76c59264Slogwang- (C)rte_pktmbuf_mtod_offset(M, T, O)
66*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, C, O)
67*76c59264Slogwang|
68*76c59264Slogwang- (rte_pktmbuf_mtod_offset(M, T, O))
69*76c59264Slogwang+ rte_pktmbuf_mtod_offset(M, T, O)
70*76c59264Slogwang|
71*76c59264Slogwang- (C)rte_pktmbuf_mtod(M, T)
72*76c59264Slogwang+ rte_pktmbuf_mtod(M, C)
73*76c59264Slogwang|
74*76c59264Slogwang- (rte_pktmbuf_mtod(M, T))
75*76c59264Slogwang+ rte_pktmbuf_mtod(M, T)
76*76c59264Slogwang)
77