qemu/scripts/coccinelle
Peter Maydell aadea887f4 scripts/coccinelle: New script to add ResetType to hold and exit phases
We pass a ResetType argument to the Resettable class enter phase
method, but we don't pass it to hold and exit, even though the
callsites have it readily available.  This means that if a device
cared about the ResetType it would need to record it in the enter
phase method to use later on.  We should pass the type to all three
of the phase methods to avoid having to do that.

This coccinelle script adds the ResetType argument to the hold and
exit phases of the Resettable interface.

The first part of the script (rules holdfn_assigned, holdfn_defined,
exitfn_assigned, exitfn_defined) update implementations of the
interface within device models, both to change the signature of their
method implementations and to pass on the reset type when they invoke
reset on some other device.

The second part of the script is various special cases:
 * method callsites in resettable_phase_hold(), resettable_phase_exit()
   and device_phases_reset()
 * updating the typedefs for the methods
 * isl_pmbus_vr.c has some code where one device's reset method directly
   calls the implementation of a different device's method

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Luc Michel <luc.michel@amd.com>
Message-id: 20240412160809.1260625-4-peter.maydell@linaro.org
2024-04-25 10:21:06 +01:00
..
cpu_restore_state.cocci target/*helper: don't check retaddr before calling cpu_restore_state 2017-12-27 17:20:44 -08:00
cpu-reset.cocci cpu: Use DeviceClass reset instead of a special CPUClass reset 2020-03-17 19:48:10 -04:00
err-bad-newline.cocci coccinelle/err-bad-newline: Fix for Python 3, and add patterns 2020-07-24 12:56:44 +02:00
error_propagate_null.cocci error: Remove NULL checks on error_propagate() calls 2016-06-20 16:38:13 +02:00
error-use-after-free.cocci scripts/coccinelle: add error-use-after-free.cocci 2020-04-04 14:14:09 +02:00
errp-guard.cocci scripts: Coccinelle script to use ERRP_GUARD() 2020-07-10 15:18:09 +02:00
exec_rw_const.cocci Avoid cpu_physical_memory_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
inplace-byteswaps.cocci coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls 2018-10-16 17:14:55 +01:00
memory-region-housekeeping.cocci softmmu/memory: Pass ram_flags to memory_region_init_ram_shared_nomigrate() 2021-06-15 20:27:38 +02:00
overflow_muldiv64.cocci
qobject.cocci qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
qom-parent-type.cocci qom: fix objects with improper parent type 2020-10-12 11:50:22 -04:00
remove_local_err.cocci error: Remove unnecessary local_err variables 2016-06-20 16:38:13 +02:00
remove_muldiv64.cocci
reset-type.cocci scripts/coccinelle: New script to add ResetType to hold and exit phases 2024-04-25 10:21:06 +01:00
return_directly.cocci cleanup: Tweak and re-run return_directly.cocci 2022-12-14 16:19:35 +01:00
round.cocci
simplify_muldiv64.cocci
swap_muldiv64.cocci
tcg_gen_extract.cocci qemu-iotests: convert pwd and $(pwd) to $PWD 2018-11-19 10:08:19 -06:00
timer-del-timer-free.cocci scripts/coccinelle: New script to remove unnecessary timer_del() calls 2021-01-08 15:13:38 +00:00
typecast.cocci coccinelle: add a script to remove useless casts 2016-09-15 15:32:22 +03:00
use-error_fatal.cocci Use error_fatal to simplify obvious fatal errors (again) 2018-10-19 14:51:34 +02:00
use-g_new-etc.cocci scripts/coccinelle: New use-g_new-etc.cocci 2022-03-21 15:44:44 +01:00