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 17 virtual context 18 virtual patch 19 virtual org 20 virtual report 21 22 //---------------------------------------------------------- 23 // For context mode 24 //---------------------------------------------------------- 25 26 @r_context depends on context && !patch && !org@ 27 struct 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@ 37 struct 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)@ 49 struct resource *res; 50 position p; 51 @@ 52 53 (res->end@p - res->start) + 1 54 55 @rbad_org depends on !context && !patch && (org || report)@ 56 struct resource *res; 57 position p != r_org.p; 58 @@ 59 60 res->end@p - res->start 61 62 @script:python depends on org@ 63 p << r_org.p; 64 x << r_org.res; 65 @@ 66 67 msg="ERROR with %s" % (x) 68 msg_safe=msg.replace("[","@(").replace("]",")") 69 coccilib.org.print_todo(p[0], msg_safe) 70 71 @script:python depends on report@ 72 p << r_org.p; 73 x << r_org.res; 74 @@ 75 76 msg="ERROR: Missing resource_size with %s" % (x) 77 coccilib.report.print_report(p[0], msg) 78 79 @script:python depends on org@ 80 p << rbad_org.p; 81 x << rbad_org.res; 82 @@ 83 84 msg="WARNING with %s" % (x) 85 msg_safe=msg.replace("[","@(").replace("]",")") 86 coccilib.org.print_todo(p[0], msg_safe) 87 88 @script:python depends on report@ 89 p << rbad_org.p; 90 x << rbad_org.res; 91 @@ 92 93 msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x) 94 coccilib.report.print_report(p[0], msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.