xref: /qemu/scripts/coccinelle/exec_rw_const.cocci (revision b7cbebf2b9d7aa8854cfd6a45484e160244e9f48)
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// Use address_space_write instead of casting to non-const
13@@
14type T;
15const T *V;
16expression E1, E2, E3, E4;
17@@
18(
19- address_space_rw(E1, E2, E3, (T *)V, E4, 1)
20+ address_space_write(E1, E2, E3, V, E4)
21|
22- address_space_rw(E1, E2, E3, (void *)V, E4, 1)
23+ address_space_write(E1, E2, E3, V, E4)
24)
25
26// Remove useless cast
27@@
28expression E1, E2, E3, E4, E5, E6;
29type T;
30@@
31(
32- address_space_rw(E1, E2, E3, (T *)(E4), E5, E6)
33+ address_space_rw(E1, E2, E3, E4, E5, E6)
34|
35- address_space_read(E1, E2, E3, (T *)(E4), E5)
36+ address_space_read(E1, E2, E3, E4, E5)
37|
38- address_space_write(E1, E2, E3, (T *)(E4), E5)
39+ address_space_write(E1, E2, E3, E4, E5)
40|
41- address_space_write_rom(E1, E2, E3, (T *)(E4), E5)
42+ address_space_write_rom(E1, E2, E3, E4, E5)
43|
44
45- dma_memory_read(E1, E2, (T *)(E3), E4)
46+ dma_memory_read(E1, E2, E3, E4)
47|
48- dma_memory_write(E1, E2, (T *)(E3), E4)
49+ dma_memory_write(E1, E2, E3, E4)
50)
51