xref: /qemu/scripts/coccinelle/exec_rw_const.cocci (revision 1ccda935d4fcc82a4371dc23d660197b0a6b6951)
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// Use address_space_write instead of casting to non-const
25@@
26type T;
27const T *V;
28expression E1, E2, E3, E4;
29@@
30(
31- address_space_rw(E1, E2, E3, (T *)V, E4, 1)
32+ address_space_write(E1, E2, E3, V, E4)
33|
34- address_space_rw(E1, E2, E3, (void *)V, E4, 1)
35+ address_space_write(E1, E2, E3, V, E4)
36)
37
38// Remove useless cast
39@@
40expression E1, E2, E3, E4, E5, E6;
41type T;
42@@
43(
44- address_space_rw(E1, E2, E3, (T *)(E4), E5, E6)
45+ address_space_rw(E1, E2, E3, E4, E5, E6)
46|
47- address_space_read(E1, E2, E3, (T *)(E4), E5)
48+ address_space_read(E1, E2, E3, E4, E5)
49|
50- address_space_write(E1, E2, E3, (T *)(E4), E5)
51+ address_space_write(E1, E2, E3, E4, E5)
52|
53- address_space_write_rom(E1, E2, E3, (T *)(E4), E5)
54+ address_space_write_rom(E1, E2, E3, E4, E5)
55|
56
57- cpu_physical_memory_rw(E1, (T *)(E2), E3, E4)
58+ cpu_physical_memory_rw(E1, E2, E3, E4)
59|
60- cpu_physical_memory_read(E1, (T *)(E2), E3)
61+ cpu_physical_memory_read(E1, E2, E3)
62|
63- cpu_physical_memory_write(E1, (T *)(E2), E3)
64+ cpu_physical_memory_write(E1, E2, E3)
65|
66
67- dma_memory_read(E1, E2, (T *)(E3), E4)
68+ dma_memory_read(E1, E2, E3, E4)
69|
70- dma_memory_write(E1, E2, (T *)(E3), E4)
71+ dma_memory_write(E1, E2, E3, E4)
72)
73