Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2///
3/// Use resource_size function on resource object
4/// instead of explicit computation.
5///
6// Confidence: High
7// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
8// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
9// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
10// URL: https://coccinelle.gitlabpages.inria.fr/website
11// Options:
12//
13// Keywords: resource_size
14// Version min: 2.6.27 resource_size
15//
16
17virtual context
18virtual patch
19virtual org
20virtual report
21
22//----------------------------------------------------------
23// For context mode
24//----------------------------------------------------------
25
26@r_context depends on context && !patch && !org@
27struct resource *res;
28@@
29
30* (res->end - res->start) + 1
31
32//----------------------------------------------------------
33// For patch mode
34//----------------------------------------------------------
35
36@r_patch depends on !context && patch && !org@
37struct resource *res;
38@@
39
40- (res->end - res->start) + 1
41+ resource_size(res)
42
43//----------------------------------------------------------
44// For org mode
45//----------------------------------------------------------
46
47
48@r_org depends on !context && !patch && (org || report)@
49struct resource *res;
50position p;
51@@
52
53 (res->end@p - res->start) + 1
54
55@rbad_org depends on !context && !patch && (org || report)@
56struct resource *res;
57position p != r_org.p;
58@@
59
60 res->end@p - res->start
61
62@script:python depends on org@
63p << r_org.p;
64x << r_org.res;
65@@
66
67msg="ERROR with %s" % (x)
68msg_safe=msg.replace("[","@(").replace("]",")")
69coccilib.org.print_todo(p[0], msg_safe)
70
71@script:python depends on report@
72p << r_org.p;
73x << r_org.res;
74@@
75
76msg="ERROR: Missing resource_size with %s" % (x)
77coccilib.report.print_report(p[0], msg)
78
79@script:python depends on org@
80p << rbad_org.p;
81x << rbad_org.res;
82@@
83
84msg="WARNING with %s" % (x)
85msg_safe=msg.replace("[","@(").replace("]",")")
86coccilib.org.print_todo(p[0], msg_safe)
87
88@script:python depends on report@
89p << rbad_org.p;
90x << rbad_org.res;
91@@
92
93msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
94coccilib.report.print_report(p[0], msg)
1///
2/// Use resource_size function on resource object
3/// instead of explicit computation.
4///
5// Confidence: High
6// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2.
7// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2.
8// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. GPLv2.
9// URL: http://coccinelle.lip6.fr/
10// Options:
11//
12// Keywords: resource_size
13// Version min: 2.6.27 resource_size
14//
15
16virtual context
17virtual patch
18virtual org
19virtual report
20
21//----------------------------------------------------------
22// For context mode
23//----------------------------------------------------------
24
25@r_context depends on context && !patch && !org@
26struct resource *res;
27@@
28
29* (res->end - res->start) + 1
30
31//----------------------------------------------------------
32// For patch mode
33//----------------------------------------------------------
34
35@r_patch depends on !context && patch && !org@
36struct resource *res;
37@@
38
39- (res->end - res->start) + 1
40+ resource_size(res)
41
42//----------------------------------------------------------
43// For org mode
44//----------------------------------------------------------
45
46
47@r_org depends on !context && !patch && (org || report)@
48struct resource *res;
49position p;
50@@
51
52 (res->end@p - res->start) + 1
53
54@rbad_org depends on !context && !patch && (org || report)@
55struct resource *res;
56position p != r_org.p;
57@@
58
59 res->end@p - res->start
60
61@script:python depends on org@
62p << r_org.p;
63x << r_org.res;
64@@
65
66msg="ERROR with %s" % (x)
67msg_safe=msg.replace("[","@(").replace("]",")")
68coccilib.org.print_todo(p[0], msg_safe)
69
70@script:python depends on report@
71p << r_org.p;
72x << r_org.res;
73@@
74
75msg="ERROR: Missing resource_size with %s" % (x)
76coccilib.report.print_report(p[0], msg)
77
78@script:python depends on org@
79p << rbad_org.p;
80x << rbad_org.res;
81@@
82
83msg="WARNING with %s" % (x)
84msg_safe=msg.replace("[","@(").replace("]",")")
85coccilib.org.print_todo(p[0], msg_safe)
86
87@script:python depends on report@
88p << rbad_org.p;
89x << rbad_org.res;
90@@
91
92msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
93coccilib.report.print_report(p[0], msg)