lkml.org 
[lkml]   [2010]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/4] Add scripts/smpl/resource_size.cocci
    Date
    This semantic patch replaces explicit computations
    of resource size by a call to resource_size.

    Signed-off-by: Nicolas Palix <npalix@diku.dk>
    ---
    scripts/smpl/resource_size.cocci | 101 ++++++++++++++++++++++++++++++++++++++
    1 files changed, 101 insertions(+), 0 deletions(-)
    create mode 100644 scripts/smpl/resource_size.cocci

    diff --git a/scripts/smpl/resource_size.cocci b/scripts/smpl/resource_size.cocci
    new file mode 100644
    index 0000000..e5e24ac
    --- /dev/null
    +++ b/scripts/smpl/resource_size.cocci
    @@ -0,0 +1,101 @@
    +///
    +/// Use resource_size function on resource object
    +/// instead of explicit computation.
    +///
    +/// The semantic patch that makes this change is available
    +/// in THISFILE.
    +///
    +/// More information about semantic patching is available at
    +/// http://coccinelle.lip6.fr/
    +///
    +// Confidence: High
    +// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2.
    +// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2.
    +// Copyright: (C) 2009, 2010 Gilles Muller, EMN. GPLv2.
    +// URL: http://coccinelle.lip6.fr/
    +// Options:
    +//
    +// Keywords: resource_size
    +// Version min: 2.6.27 resource_size
    +// Version max: *
    +//
    +
    +virtual context
    +virtual patch
    +virtual org
    +virtual report
    +
    +//----------------------------------------------------------
    +// For context mode
    +//----------------------------------------------------------
    +
    +@r_context depends on context && !patch && !org@
    +struct resource *res;
    +@@
    +
    +* (res->end - res->start) + 1
    +
    +//----------------------------------------------------------
    +// For patch mode
    +//----------------------------------------------------------
    +
    +@r_patch depends on !context && patch && !org@
    +struct resource *res;
    +@@
    +
    +- (res->end - res->start) + 1
    ++ resource_size(res)
    +
    +//----------------------------------------------------------
    +// For org mode
    +//----------------------------------------------------------
    +
    +
    +@r_org depends on !context && !patch && (org || report)@
    +struct resource *res;
    +position p;
    +@@
    +
    + (res->end@p - res->start) + 1
    +
    +@rbad_org depends on !context && !patch && (org || report)@
    +struct resource *res;
    +position p != r_org.p;
    +@@
    +
    + res->end@p - res->start
    +
    +@script:python depends on org@
    +p << r_org.p;
    +x << r_org.res;
    +@@
    +
    +msg="ERROR with %s" % (x)
    +msg_safe=msg.replace("[","@(").replace("]",")")
    +coccilib.org.print_todo(p[0], msg_safe)
    +
    +@script:python depends on report@
    +p << r_org.p;
    +x << r_org.res;
    +@@
    +
    +msg="ERROR: Missing resource_size with %s" % (x)
    +coccilib.report.print_report(p[0], msg)
    +
    +@script:python depends on org@
    +p << rbad_org.p;
    +x << rbad_org.res;
    +@@
    +
    +msg="WARNING with %s" % (x)
    +msg_safe=msg.replace("[","@(").replace("]",")")
    +coccilib.org.print_todo(p[0], msg_safe)
    +
    +@script:python depends on report@
    +p << rbad_org.p;
    +x << rbad_org.res;
    +@@
    +
    +msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
    +coccilib.report.print_report(p[0], msg)
    +
    --
    1.6.3.3


    \
     
     \ /
      Last update: 2010-04-26 23:15    [W:0.027 / U:63.860 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site