/* Usage: spatch \ --macro-file scripts/cocci-macro-file.h \ --sp-file scripts/coccinelle/exec_rw_const.cocci \ --keep-comments \ --in-place \ --dir . */ // Convert to boolean @@ expression E1, E2, E3, E4, E5; @@ ( - address_space_rw(E1, E2, E3, E4, E5, 0) + address_space_rw(E1, E2, E3, E4, E5, false) | - address_space_rw(E1, E2, E3, E4, E5, 1) + address_space_rw(E1, E2, E3, E4, E5, true) | - cpu_physical_memory_rw(E1, E2, E3, 0) + cpu_physical_memory_rw(E1, E2, E3, false) | - cpu_physical_memory_rw(E1, E2, E3, 1) + cpu_physical_memory_rw(E1, E2, E3, true) | - cpu_physical_memory_map(E1, E2, 0) + cpu_physical_memory_map(E1, E2, false) | - cpu_physical_memory_map(E1, E2, 1) + cpu_physical_memory_map(E1, E2, true) ) // Use address_space_write instead of casting to non-const @@ type T; const T *V; expression E1, E2, E3, E4; @@ ( - address_space_rw(E1, E2, E3, (T *)V, E4, 1) + address_space_write(E1, E2, E3, V, E4) | - address_space_rw(E1, E2, E3, (void *)V, E4, 1) + address_space_write(E1, E2, E3, V, E4) ) // Avoid uses of address_space_rw() with a constant is_write argument. @@ expression E1, E2, E3, E4, E5; symbol true, false; @@ ( - address_space_rw(E1, E2, E3, E4, E5, false) + address_space_read(E1, E2, E3, E4, E5) | - address_space_rw(E1, E2, E3, E4, E5, true) + address_space_write(E1, E2, E3, E4, E5) ) // Avoid uses of cpu_physical_memory_rw() with a constant is_write argument. @@ expression E1, E2, E3; @@ ( - cpu_physical_memory_rw(E1, E2, E3, false) + cpu_physical_memory_read(E1, E2, E3) | - cpu_physical_memory_rw(E1, E2, E3, true) + cpu_physical_memory_write(E1, E2, E3) ) // Remove useless cast @@ expression E1, E2, E3, E4, E5, E6; type T; @@ ( - address_space_rw(E1, E2, E3, (T *)(E4), E5, E6) + address_space_rw(E1, E2, E3, E4, E5, E6) | - address_space_read(E1, E2, E3, (T *)(E4), E5) + address_space_read(E1, E2, E3, E4, E5) | - address_space_write(E1, E2, E3, (T *)(E4), E5) + address_space_write(E1, E2, E3, E4, E5) | - address_space_write_rom(E1, E2, E3, (T *)(E4), E5) + address_space_write_rom(E1, E2, E3, E4, E5) | - cpu_physical_memory_rw(E1, (T *)(E2), E3, E4) + cpu_physical_memory_rw(E1, E2, E3, E4) | - cpu_physical_memory_read(E1, (T *)(E2), E3) + cpu_physical_memory_read(E1, E2, E3) | - cpu_physical_memory_write(E1, (T *)(E2), E3) + cpu_physical_memory_write(E1, E2, E3) | - dma_memory_read(E1, E2, (T *)(E3), E4) + dma_memory_read(E1, E2, E3, E4) | - dma_memory_write(E1, E2, (T *)(E3), E4) + dma_memory_write(E1, E2, E3, E4) )