| /* | 
 |   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) | 
 | ) |