The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/tools/cocci/os_atomic_normalize.cocci

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // To apply, at the top of xnu.git:
    2 // $ spatch --max-width=120 --use-gitgrep --in-place --include-headers --sp-file tools/cocci/os_atomic_normalize.cocci -dir .
    3 //
    4 // coccinelle insists on adding a space for (void) casts which can be fixed with:
    5 // $ git grep -l '(void) os_atomic' | xargs -n1 sed -i '' -e 's/(void) os_atomic/(void)os_atomic/'
    6 
    7 @os_atomic@
    8 identifier fn =~ "^os_atomic";
    9 @@
   10 
   11 fn
   12 
   13 @script:ocaml unorig@
   14 fn << os_atomic.fn;
   15 new_fn;
   16 @@
   17 
   18 new_fn := make_ident (Str.global_replace (Str.regexp "_orig") "" fn)
   19 
   20 @@
   21 identifier os_atomic.fn;
   22 identifier unorig.new_fn;
   23 expression A, B, C;
   24 @@
   25 
   26 -(void)fn
   27 +new_fn
   28  (...)
   29 
   30 @@ expression E, F, m; @@
   31 
   32 (
   33 - os_atomic_add(E, 1, m)
   34 + os_atomic_inc(E, m)
   35 |
   36 - os_atomic_add_orig(E, 1, m)
   37 + os_atomic_inc_orig(E, m)
   38 |
   39 - os_atomic_sub(E, -1, m)
   40 + os_atomic_inc(E, m)
   41 |
   42 - os_atomic_sub_orig(E, -1, m)
   43 + os_atomic_inc_orig(E, m)
   44 |
   45 - os_atomic_add(E, -1, m)
   46 + os_atomic_dec(E, m)
   47 |
   48 - os_atomic_add_orig(E, -1, m)
   49 + os_atomic_dec_orig(E, m)
   50 |
   51 - os_atomic_sub(E, 1, m)
   52 + os_atomic_dec(E, m)
   53 |
   54 - os_atomic_sub_orig(E, 1, m)
   55 + os_atomic_dec_orig(E, m)
   56 |
   57 - os_atomic_add(E, -(F), m)
   58 + os_atomic_sub(E, F, m)
   59 |
   60 - os_atomic_add_orig(E, -(F), m)
   61 + os_atomic_sub_orig(E, F, m)
   62 |
   63 - os_atomic_add(E, -F, m)
   64 + os_atomic_sub(E, F, m)
   65 |
   66 - os_atomic_add_orig(E, -F, m)
   67 + os_atomic_sub_orig(E, F, m)
   68 |
   69 - os_atomic_sub(E, -(F), m)
   70 + os_atomic_add(E, F, m)
   71 |
   72 - os_atomic_sub_orig(E, -(F), m)
   73 + os_atomic_add_orig(E, F, m)
   74 |
   75 - os_atomic_sub(E, -F, m)
   76 + os_atomic_add(E, F, m)
   77 |
   78 - os_atomic_sub_orig(E, -F, m)
   79 + os_atomic_add_orig(E, F, m)
   80 |
   81 - os_atomic_and(E, ~(F), m)
   82 + os_atomic_andnot(E, F, m)
   83 |
   84 - os_atomic_and_orig(E, ~(F), m)
   85 + os_atomic_andnot_orig(E, F, m)
   86 |
   87 - os_atomic_and(E, ~F, m)
   88 + os_atomic_andnot(E, F, m)
   89 |
   90 - os_atomic_and_orig(E, ~F, m)
   91 + os_atomic_andnot_orig(E, F, m)
   92 )
   93 
   94 // vim:ft=diff:

Cache object: d1f72cb1287982518d1c359a4471fbb2


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.