On Mon, 01 Dec 2014, Francois Berenger wrote:
> On 12/01/2014 11:12 AM, Francois Berenger wrote:
>> Hello,
>>
>
> Instead of applying ...
>
>> Inside of applying any patch, I need to use coccinelle
>> in order to detect certain C files that match a given pattern
>> in a source code tree.
>>
>> Is it possible to use coccinelle for that, how?
>>
>
here is a simple (hopefuly correct) example of a scanner - that will look
for inbalanced use of spinlocks and bh disable/enable - it reports one
line per file that matches giving the name and line-numbers of the
potentially inballanced calls.
@r1@
identifier f;
expression E;
position p1,p2,p3;
@@
f(...) {
<...
(
spin_lock_bh(E)@p1;
...
spin_unlock(E)@p2;
...
local_bh_enable()@p3;
|
local_bh_disable()@p2;
...
spin_lock(E)@p3;
...
spin_unlock_bh(E)@p1;
)
...>
}
@script:python@
p1 << r1.p1;
p2 << r1.p2;
p3 << r1.p3;
@@
print "file:%s at lines %s %s %s" % (p1[0].file,p1[0].line, p2[0].line,
p3[0].line)
put this in a file called scan.cocci and running with the below command
gives me:
hofrat@debian:/usr/src/linux-next$ spatch --cocci-file /tmp/scan.cocci --dir
net/core/
HANDLING: net/core/datagram.c
HANDLING: net/core/netpoll.c
...
HANDLING: net/core/sock.c
file:net/core/sock.c at lines 2396 2406 2411
file:net/core/sock.c at lines 2346 2350 2355
...
thx!
hofrat
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci