qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

exec_rw_const.cocci (2553B)


      1 /*
      2   Usage:
      3 
      4     spatch \
      5            --macro-file scripts/cocci-macro-file.h \
      6            --sp-file scripts/coccinelle/exec_rw_const.cocci \
      7            --keep-comments \
      8            --in-place \
      9            --dir .
     10 */
     11 
     12 // Convert to boolean
     13 @@
     14 expression E1, E2, E3, E4, E5;
     15 @@
     16 (
     17 - address_space_rw(E1, E2, E3, E4, E5, 0)
     18 + address_space_rw(E1, E2, E3, E4, E5, false)
     19 |
     20 - address_space_rw(E1, E2, E3, E4, E5, 1)
     21 + address_space_rw(E1, E2, E3, E4, E5, true)
     22 |
     23 
     24 - cpu_physical_memory_rw(E1, E2, E3, 0)
     25 + cpu_physical_memory_rw(E1, E2, E3, false)
     26 |
     27 - cpu_physical_memory_rw(E1, E2, E3, 1)
     28 + cpu_physical_memory_rw(E1, E2, E3, true)
     29 |
     30 
     31 - cpu_physical_memory_map(E1, E2, 0)
     32 + cpu_physical_memory_map(E1, E2, false)
     33 |
     34 - cpu_physical_memory_map(E1, E2, 1)
     35 + cpu_physical_memory_map(E1, E2, true)
     36 )
     37 
     38 // Use address_space_write instead of casting to non-const
     39 @@
     40 type T;
     41 const T *V;
     42 expression E1, E2, E3, E4;
     43 @@
     44 (
     45 - address_space_rw(E1, E2, E3, (T *)V, E4, 1)
     46 + address_space_write(E1, E2, E3, V, E4)
     47 |
     48 - address_space_rw(E1, E2, E3, (void *)V, E4, 1)
     49 + address_space_write(E1, E2, E3, V, E4)
     50 )
     51 
     52 // Avoid uses of address_space_rw() with a constant is_write argument.
     53 @@
     54 expression E1, E2, E3, E4, E5;
     55 symbol true, false;
     56 @@
     57 (
     58 - address_space_rw(E1, E2, E3, E4, E5, false)
     59 + address_space_read(E1, E2, E3, E4, E5)
     60 |
     61 - address_space_rw(E1, E2, E3, E4, E5, true)
     62 + address_space_write(E1, E2, E3, E4, E5)
     63 )
     64 
     65 // Avoid uses of cpu_physical_memory_rw() with a constant is_write argument.
     66 @@
     67 expression E1, E2, E3;
     68 @@
     69 (
     70 - cpu_physical_memory_rw(E1, E2, E3, false)
     71 + cpu_physical_memory_read(E1, E2, E3)
     72 |
     73 - cpu_physical_memory_rw(E1, E2, E3, true)
     74 + cpu_physical_memory_write(E1, E2, E3)
     75 )
     76 
     77 // Remove useless cast
     78 @@
     79 expression E1, E2, E3, E4, E5, E6;
     80 type T;
     81 @@
     82 (
     83 - address_space_rw(E1, E2, E3, (T *)(E4), E5, E6)
     84 + address_space_rw(E1, E2, E3, E4, E5, E6)
     85 |
     86 - address_space_read(E1, E2, E3, (T *)(E4), E5)
     87 + address_space_read(E1, E2, E3, E4, E5)
     88 |
     89 - address_space_write(E1, E2, E3, (T *)(E4), E5)
     90 + address_space_write(E1, E2, E3, E4, E5)
     91 |
     92 - address_space_write_rom(E1, E2, E3, (T *)(E4), E5)
     93 + address_space_write_rom(E1, E2, E3, E4, E5)
     94 |
     95 
     96 - cpu_physical_memory_rw(E1, (T *)(E2), E3, E4)
     97 + cpu_physical_memory_rw(E1, E2, E3, E4)
     98 |
     99 - cpu_physical_memory_read(E1, (T *)(E2), E3)
    100 + cpu_physical_memory_read(E1, E2, E3)
    101 |
    102 - cpu_physical_memory_write(E1, (T *)(E2), E3)
    103 + cpu_physical_memory_write(E1, E2, E3)
    104 |
    105 
    106 - dma_memory_read(E1, E2, (T *)(E3), E4)
    107 + dma_memory_read(E1, E2, E3, E4)
    108 |
    109 - dma_memory_write(E1, E2, (T *)(E3), E4)
    110 + dma_memory_write(E1, E2, E3, E4)
    111 )