Browse Source
This removes the TARGET_I386 condition from the rtc-reset-reinjection command. This requires providing a QMP command stub for non-i386 target. This in turn requires moving the command out of misc-target.json, since that will trigger symbol poisoning errors when built from target independent code. Rather than putting the command into misc.json, it is proposed to create misc-$TARGET.json files to hold commands whose impl is conceptually only applicable to a single target. This gives an obvious docs hint to consumers that the command is only useful in relation a specific target, while misc.json is for commands applicable to 2 or more targets. The current impl of qmp_rtc_reset_reinject() is a no-op if the i386 RTC is disabled in Kconfig, or if the running machine type lack any RTC device. The stub impl for non-i386 targets retains this no-op behaviour. However, it is now reporting an Error mentioning this command is not available for current target. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-ID: <20250522190542.588267-2-pierrick.bouvier@linaro.org> Reviewed-by: Markus Armbruster <armbru@redhat.com>pull/285/head
committed by
Markus Armbruster
7 changed files with 40 additions and 18 deletions
@ -0,0 +1,24 @@ |
|||
# -*- Mode: Python -*- |
|||
# vim: filetype=python |
|||
# |
|||
# SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
## |
|||
# @rtc-reset-reinjection: |
|||
# |
|||
# This command will reset the RTC interrupt reinjection backlog. Can |
|||
# be used if another mechanism to synchronize guest time is in effect, |
|||
# for example QEMU guest agent's guest-set-time command. |
|||
# |
|||
# Use of this command is only applicable for x86 machines with an RTC, |
|||
# and on other machines will silently return without performing any |
|||
# action. |
|||
# |
|||
# Since: 2.1 |
|||
# |
|||
# .. qmp-example:: |
|||
# |
|||
# -> { "execute": "rtc-reset-reinjection" } |
|||
# <- { "return": {} } |
|||
## |
|||
{ 'command': 'rtc-reset-reinjection' } |
|||
@ -0,0 +1,12 @@ |
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|||
|
|||
#include "qemu/osdep.h" |
|||
#include "qapi/error.h" |
|||
#include "qapi/qapi-commands-misc-i386.h" |
|||
|
|||
void qmp_rtc_reset_reinjection(Error **errp) |
|||
{ |
|||
error_setg(errp, |
|||
"RTC interrupt reinjection backlog reset is not available for" |
|||
"this machine"); |
|||
} |
|||
Loading…
Reference in new issue