Skip to content
  • Peter Maydell's avatar
    reset: Add RESET_TYPE_SNAPSHOT_LOAD · 631f46d4
    Peter Maydell authored
    
    
    Some devices and machines need to handle the reset before a vmsave
    snapshot is loaded differently -- the main user is the handling of
    RNG seed information, which does not want to put a new RNG seed into
    a ROM blob when we are doing a snapshot load.
    
    Currently this kind of reset handling is supported only for:
     * TYPE_MACHINE reset methods, which take a ShutdownCause argument
     * reset functions registered with qemu_register_reset_nosnapshotload
    
    To allow a three-phase-reset device to also distinguish "snapshot
    load" reset from the normal kind, add a new ResetType
    RESET_TYPE_SNAPSHOT_LOAD. All our existing reset methods ignore
    the reset type, so we don't need to update any device code.
    
    Add the enum type, and make qemu_devices_reset() use the
    right reset type for the ShutdownCause it is passed. This
    allows us to get rid of the device_reset_reason global we
    were using to implement qemu_register_reset_nosnapshotload().
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: default avatarLuc Michel <luc.michel@amd.com>
    Message-id: 20240412160809.1260625-7-peter.maydell@linaro.org
    631f46d4