summaryrefslogtreecommitdiffstats
path: root/qga
diff options
context:
space:
mode:
authorAlexander Ivanov2022-10-17 09:28:22 +0200
committerKonstantin Kostiuk2022-10-26 19:35:07 +0200
commite40762fcd6266450778f615e73d218e4100147b7 (patch)
tree6e9d51049fe80162996898100451ba8ef792210b /qga
parentqga: Add UFS freeze/thaw support for FreeBSD (diff)
downloadqemu-e40762fcd6266450778f615e73d218e4100147b7.tar.gz
qemu-e40762fcd6266450778f615e73d218e4100147b7.tar.xz
qemu-e40762fcd6266450778f615e73d218e4100147b7.zip
qga: Add shutdown/halt/reboot support for FreeBSD
Add appropriate shutdown command arguments to qmp_guest_shutdown() for FreeBSD. Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Diffstat (limited to 'qga')
-rw-r--r--qga/commands-posix.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 6875ea8888..b0b467ebdb 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -90,6 +90,10 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
const char *powerdown_flag = "-i5";
const char *halt_flag = "-i0";
const char *reboot_flag = "-i6";
+#elif defined(CONFIG_BSD)
+ const char *powerdown_flag = "-p";
+ const char *halt_flag = "-h";
+ const char *reboot_flag = "-r";
#else
const char *powerdown_flag = "-P";
const char *halt_flag = "-H";
@@ -120,6 +124,9 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
#ifdef CONFIG_SOLARIS
execl("/sbin/shutdown", "shutdown", shutdown_flag, "-g0", "-y",
"hypervisor initiated shutdown", (char *)NULL);
+#elif defined(CONFIG_BSD)
+ execl("/sbin/shutdown", "shutdown", shutdown_flag, "+0",
+ "hypervisor initiated shutdown", (char *)NULL);
#else
execl("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
"hypervisor initiated shutdown", (char *)NULL);