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