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/mcache_atomic_rewrite.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/mcache_atomic_rewrite.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 @@ expression E, F, A; @@
    8 
    9 (
   10 - atomic_add_16_ov(E, 1)
   11 + os_atomic_inc_orig(E, relaxed)
   12 |
   13 - atomic_add_16(E, 1)
   14 + os_atomic_inc(E, relaxed)
   15 |
   16 - atomic_add_32_ov(E, 1)
   17 + os_atomic_inc_orig(E, relaxed)
   18 |
   19 - atomic_add_32(E, 1)
   20 + os_atomic_inc(E, relaxed)
   21 |
   22 - atomic_add_64_ov(E, 1)
   23 + os_atomic_inc_orig(E, relaxed)
   24 |
   25 - atomic_add_64(E, 1)
   26 + os_atomic_inc(E, relaxed)
   27 |
   28 - atomic_add_16_ov(E, -1)
   29 + os_atomic_dec_orig(E, relaxed)
   30 |
   31 - atomic_add_16(E, -1)
   32 + os_atomic_dec(E, relaxed)
   33 |
   34 - atomic_add_32_ov(E, -1)
   35 + os_atomic_dec_orig(E, relaxed)
   36 |
   37 - atomic_add_32(E, -1)
   38 + os_atomic_dec(E, relaxed)
   39 |
   40 - atomic_add_64_ov(E, -1)
   41 + os_atomic_dec_orig(E, relaxed)
   42 |
   43 - atomic_add_64(E, -1)
   44 + os_atomic_dec(E, relaxed)
   45 |
   46 - atomic_add_16_ov(E, F)
   47 + os_atomic_add_orig(E, F, relaxed)
   48 |
   49 - atomic_add_16(E, F)
   50 + os_atomic_add(E, F, relaxed)
   51 |
   52 - atomic_add_32_ov(E, F)
   53 + os_atomic_add_orig(E, F, relaxed)
   54 |
   55 - atomic_add_32(E, F)
   56 + os_atomic_add(E, F, relaxed)
   57 |
   58 - atomic_add_64_ov(E, F)
   59 + os_atomic_add_orig(E, F, relaxed)
   60 |
   61 - atomic_add_64(E, F)
   62 + os_atomic_add(E, F, relaxed)
   63 |
   64 - atomic_test_set_32(A, E, F)
   65 + os_atomic_cmpxchg(A, E, F, acq_rel)
   66 |
   67 - atomic_test_set_64(A, E, F)
   68 + os_atomic_cmpxchg(A, E, F, acq_rel)
   69 |
   70 - atomic_test_set_ptr(A, E, F)
   71 + os_atomic_cmpxchg(A, E, F, acq_rel)
   72 |
   73 - atomic_set_32(E, F)
   74 + os_atomic_store(E, F, release)
   75 |
   76 - atomic_set_64(E, F)
   77 + os_atomic_store(E, F, release)
   78 |
   79 - atomic_set_ptr(E, F)
   80 + os_atomic_store(E, F, release)
   81 |
   82 - atomic_get_64(E, A)
   83 + E = os_atomic_load(A, relaxed)
   84 |
   85 - membar_sync()
   86 + os_atomic_thread_fence(seq_cst)
   87 |
   88 - atomic_or_8_ov(E, F)
   89 + os_atomic_or_orig(E, F, relaxed)
   90 |
   91 - atomic_or_16_ov(E, F)
   92 + os_atomic_or_orig(E, F, relaxed)
   93 |
   94 - atomic_or_32_ov(E, F)
   95 + os_atomic_or_orig(E, F, relaxed)
   96 |
   97 - atomic_or_8(E, F)
   98 + os_atomic_or(E, F, relaxed)
   99 |
  100 - atomic_or_16(E, F)
  101 + os_atomic_or(E, F, relaxed)
  102 |
  103 - atomic_or_32(E, F)
  104 + os_atomic_or(E, F, relaxed)
  105 |
  106 - atomic_and_8_ov(E, F)
  107 + os_atomic_and_orig(E, F, relaxed)
  108 |
  109 - atomic_and_16_ov(E, F)
  110 + os_atomic_and_orig(E, F, relaxed)
  111 |
  112 - atomic_and_32_ov(E, F)
  113 + os_atomic_and_orig(E, F, relaxed)
  114 |
  115 - atomic_and_8(E, F)
  116 + os_atomic_and(E, F, relaxed)
  117 |
  118 - atomic_and_16(E, F)
  119 + os_atomic_and(E, F, relaxed)
  120 |
  121 - atomic_and_32(E, F)
  122 + os_atomic_and(E, F, relaxed)
  123 |
  124 - atomic_bitset_8_ov(E, F)
  125 + os_atomic_or_orig(E, F, relaxed)
  126 |
  127 - atomic_bitset_16_ov(E, F)
  128 + os_atomic_or_orig(E, F, relaxed)
  129 |
  130 - atomic_bitset_32_ov(E, F)
  131 + os_atomic_or_orig(E, F, relaxed)
  132 |
  133 - atomic_bitset_8(E, F)
  134 + os_atomic_or(E, F, relaxed)
  135 |
  136 - atomic_bitset_16(E, F)
  137 + os_atomic_or(E, F, relaxed)
  138 |
  139 - atomic_bitset_32(E, F)
  140 + os_atomic_or(E, F, relaxed)
  141 |
  142 - atomic_bitclear_8_ov(E, F)
  143 + os_atomic_andnot_orig(E, F, relaxed)
  144 |
  145 - atomic_bitclear_16_ov(E, F)
  146 + os_atomic_andnot_orig(E, F, relaxed)
  147 |
  148 - atomic_bitclear_32_ov(E, F)
  149 + os_atomic_andnot_orig(E, F, relaxed)
  150 |
  151 - atomic_bitclear_8(E, F)
  152 + os_atomic_andnot(E, F, relaxed)
  153 |
  154 - atomic_bitclear_16(E, F)
  155 + os_atomic_andnot(E, F, relaxed)
  156 |
  157 - atomic_bitclear_32(E, F)
  158 + os_atomic_andnot(E, F, relaxed)
  159 )

Cache object: 2064c4515244daab0b6768fbac6ccacd


[ 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.