162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci///
362306a36Sopenharmony_ci/// Use resource_size function on resource object
462306a36Sopenharmony_ci/// instead of explicit computation.
562306a36Sopenharmony_ci///
662306a36Sopenharmony_ci//  Confidence: High
762306a36Sopenharmony_ci//  Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
862306a36Sopenharmony_ci//  Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
962306a36Sopenharmony_ci//  Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
1062306a36Sopenharmony_ci//  URL: https://coccinelle.gitlabpages.inria.fr/website
1162306a36Sopenharmony_ci//  Options:
1262306a36Sopenharmony_ci//
1362306a36Sopenharmony_ci//  Keywords: resource_size
1462306a36Sopenharmony_ci//  Version min: 2.6.27 resource_size
1562306a36Sopenharmony_ci//
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_civirtual context
1862306a36Sopenharmony_civirtual patch
1962306a36Sopenharmony_civirtual org
2062306a36Sopenharmony_civirtual report
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci//----------------------------------------------------------
2362306a36Sopenharmony_ci//  For context mode
2462306a36Sopenharmony_ci//----------------------------------------------------------
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci@r_context depends on context && !patch && !org@
2762306a36Sopenharmony_cistruct resource *res;
2862306a36Sopenharmony_ci@@
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci* (res->end - res->start) + 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci//----------------------------------------------------------
3362306a36Sopenharmony_ci//  For patch mode
3462306a36Sopenharmony_ci//----------------------------------------------------------
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci@r_patch depends on !context && patch && !org@
3762306a36Sopenharmony_cistruct resource *res;
3862306a36Sopenharmony_ci@@
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci- (res->end - res->start) + 1
4162306a36Sopenharmony_ci+ resource_size(res)
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci//----------------------------------------------------------
4462306a36Sopenharmony_ci//  For org mode
4562306a36Sopenharmony_ci//----------------------------------------------------------
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci@r_org depends on !context && !patch && (org || report)@
4962306a36Sopenharmony_cistruct resource *res;
5062306a36Sopenharmony_ciposition p;
5162306a36Sopenharmony_ci@@
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci (res->end@p - res->start) + 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci@rbad_org depends on !context && !patch && (org || report)@
5662306a36Sopenharmony_cistruct resource *res;
5762306a36Sopenharmony_ciposition p != r_org.p;
5862306a36Sopenharmony_ci@@
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci res->end@p - res->start
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci@script:python depends on org@
6362306a36Sopenharmony_cip << r_org.p;
6462306a36Sopenharmony_cix << r_org.res;
6562306a36Sopenharmony_ci@@
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cimsg="ERROR with %s" % (x)
6862306a36Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")")
6962306a36Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe)
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci@script:python depends on report@
7262306a36Sopenharmony_cip << r_org.p;
7362306a36Sopenharmony_cix << r_org.res;
7462306a36Sopenharmony_ci@@
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cimsg="ERROR: Missing resource_size with %s" % (x)
7762306a36Sopenharmony_cicoccilib.report.print_report(p[0], msg)
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci@script:python depends on org@
8062306a36Sopenharmony_cip << rbad_org.p;
8162306a36Sopenharmony_cix << rbad_org.res;
8262306a36Sopenharmony_ci@@
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_cimsg="WARNING with %s" % (x)
8562306a36Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")")
8662306a36Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe)
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci@script:python depends on report@
8962306a36Sopenharmony_cip << rbad_org.p;
9062306a36Sopenharmony_cix << rbad_org.res;
9162306a36Sopenharmony_ci@@
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cimsg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
9462306a36Sopenharmony_cicoccilib.report.print_report(p[0], msg)
95