cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

resource_size.cocci (2132B)


      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: http://coccinelle.lip6.fr/
     11//  Options:
     12//
     13//  Keywords: resource_size
     14//  Version min: 2.6.27 resource_size
     15//
     16
     17virtual context
     18virtual patch
     19virtual org
     20virtual report
     21
     22//----------------------------------------------------------
     23//  For context mode
     24//----------------------------------------------------------
     25
     26@r_context depends on context && !patch && !org@
     27struct 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@
     37struct 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)@
     49struct resource *res;
     50position p;
     51@@
     52
     53 (res->end@p - res->start) + 1
     54
     55@rbad_org depends on !context && !patch && (org || report)@
     56struct resource *res;
     57position p != r_org.p;
     58@@
     59
     60 res->end@p - res->start
     61
     62@script:python depends on org@
     63p << r_org.p;
     64x << r_org.res;
     65@@
     66
     67msg="ERROR with %s" % (x)
     68msg_safe=msg.replace("[","@(").replace("]",")")
     69coccilib.org.print_todo(p[0], msg_safe)
     70
     71@script:python depends on report@
     72p << r_org.p;
     73x << r_org.res;
     74@@
     75
     76msg="ERROR: Missing resource_size with %s" % (x)
     77coccilib.report.print_report(p[0], msg)
     78
     79@script:python depends on org@
     80p << rbad_org.p;
     81x << rbad_org.res;
     82@@
     83
     84msg="WARNING with %s" % (x)
     85msg_safe=msg.replace("[","@(").replace("]",")")
     86coccilib.org.print_todo(p[0], msg_safe)
     87
     88@script:python depends on report@
     89p << rbad_org.p;
     90x << rbad_org.res;
     91@@
     92
     93msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
     94coccilib.report.print_report(p[0], msg)