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@@ 14expression 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@@ 40type T; 41const T *V; 42expression 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@@ 54expression E1, E2, E3, E4, E5; 55symbol 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// Remove useless cast 66@@ 67expression E1, E2, E3, E4, E5, E6; 68type T; 69@@ 70( 71- address_space_rw(E1, E2, E3, (T *)(E4), E5, E6) 72+ address_space_rw(E1, E2, E3, E4, E5, E6) 73| 74- address_space_read(E1, E2, E3, (T *)(E4), E5) 75+ address_space_read(E1, E2, E3, E4, E5) 76| 77- address_space_write(E1, E2, E3, (T *)(E4), E5) 78+ address_space_write(E1, E2, E3, E4, E5) 79| 80- address_space_write_rom(E1, E2, E3, (T *)(E4), E5) 81+ address_space_write_rom(E1, E2, E3, E4, E5) 82| 83 84- cpu_physical_memory_rw(E1, (T *)(E2), E3, E4) 85+ cpu_physical_memory_rw(E1, E2, E3, E4) 86| 87- cpu_physical_memory_read(E1, (T *)(E2), E3) 88+ cpu_physical_memory_read(E1, E2, E3) 89| 90- cpu_physical_memory_write(E1, (T *)(E2), E3) 91+ cpu_physical_memory_write(E1, E2, E3) 92| 93 94- dma_memory_read(E1, E2, (T *)(E3), E4) 95+ dma_memory_read(E1, E2, E3, E4) 96| 97- dma_memory_write(E1, E2, (T *)(E3), E4) 98+ dma_memory_write(E1, E2, E3, E4) 99) 100