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) 94